FastAPI-MCP 快速入门指南:构建你的第一个MCP服务器
FastAPI-MCP 快速入门指南:构建你的第一个MCP服务器
fastapi_mcp 一种零配置工具,用于自动将 FastAPI 端点公开为模型上下文协议 (MCP) 工具。 项目地址: https://gitcode.com/gh_mirrors/fa/fastapi_mcp
前言
FastAPI-MCP是一个基于FastAPI框架的MCP服务器实现方案,它允许开发者快速构建符合MCP协议的服务端应用。本文将带你从零开始,快速搭建一个基础MCP服务器,并了解如何与客户端进行连接。
环境准备
在开始之前,请确保你已经完成以下准备工作:
- 安装Python 3.7或更高版本
- 安装FastAPI和uvicorn(用于运行FastAPI应用)
- 安装fastapi_mcp包
创建基础MCP服务器
让我们从一个最简单的MCP服务器开始。以下是创建基础MCP服务器的完整代码示例:
from fastapi import FastAPI
from fastapi_mcp import FastApiMCP
# 创建FastAPI应用实例
app = FastAPI()
# 基于FastAPI应用创建MCP服务器
mcp = FastApiMCP(app)
# 将MCP服务器挂载到主应用
mcp.mount()
这段代码做了以下几件事:
- 创建了一个标准的FastAPI应用实例
- 使用FastApiMCP类将这个FastAPI应用包装成MCP服务器
- 通过mount()方法将MCP服务挂载到主应用上
运行MCP服务器
要运行这个MCP服务器,我们需要添加服务器启动代码。推荐使用uvicorn作为ASGI服务器:
if __name__ == "__main__":
import uvicorn
uvicorn.run(app, host="0.0.0.0", port=8000)
将上述代码保存为fastapi_mcp_server.py
,然后通过命令行运行:
python fastapi_mcp_server.py
服务器启动后,MCP服务将默认运行在http://localhost:8000/mcp
地址。
客户端连接配置
MCP服务器搭建完成后,我们需要配置客户端来连接它。根据客户端类型不同,有以下两种连接方式:
1. 直接SSE连接
对于支持SSE(Server-Sent Events)的MCP客户端,配置非常简单,只需提供MCP服务的URL即可。典型的配置如下:
{
"mcpServers": {
"fastapi-mcp": {
"url": "http://localhost:8000/mcp"
}
}
}
2. 通过mcp-remote连接
如果你的客户端不支持SSE,或者需要支持认证功能,可以使用mcp-remote作为桥接。配置示例如下:
{
"mcpServers": {
"fastapi-mcp": {
"command": "npx",
"args": [
"mcp-remote",
"http://localhost:8000/mcp",
"8080"
]
}
}
}
进阶使用建议
当你熟悉了基础用法后,可以考虑以下进阶功能:
- 自定义路由前缀:mount()方法支持prefix参数,可以自定义MCP服务的URL路径
- 认证集成:FastAPI-MCP可以与FastAPI的认证系统无缝集成
- 性能优化:对于高并发场景,可以调整uvicorn的工作进程数和线程数
- 日志记录:添加详细的日志记录,便于调试和监控
常见问题解答
Q: MCP服务启动后访问404错误怎么办? A: 请确保你已经正确调用了mount()方法,并且客户端配置的URL路径与服务端一致。
Q: 如何修改MCP服务的默认端口? A: 在uvicorn.run()方法中修改port参数即可。
Q: 生产环境部署有什么建议? A: 建议使用反向代理(如Nginx)配合uvicorn,并启用HTTPS加密连接。
总结
通过本文,你已经学会了如何使用FastAPI-MCP快速搭建一个MCP服务器,并配置客户端连接。FastAPI-MCP充分利用了FastAPI框架的优势,提供了简单易用的API,让开发者能够专注于业务逻辑的实现。
fastapi_mcp 一种零配置工具,用于自动将 FastAPI 端点公开为模型上下文协议 (MCP) 工具。 项目地址: https://gitcode.com/gh_mirrors/fa/fastapi_mcp