✅一行代码集成—— 直接在 FastAPI 挂载 MCP 服务器,无需改动现有代码
✅自动发现 API—— 无需额外配置,所有端点自动转换为 MCP 工具
✅保留 API 文档—— 你的 Swagger 文档可在 MCP 生态中直接访问
✅支持自定义扩展—— 允许额外定义 MCP 工具,增强 API 能力
你的 FastAPI 应用,从此不仅能被传统客户端调用,还能变身智能 API 服务器,供 AI 代理工具高效交互!
你可以通过pip或uv进行安装:
# 使用 uv(推荐)
uv add fastapi-mcp
# 或使用 pip
pip install fastapi-mcp假设你已经有一个FastAPI应用,现在**只需一行代码**,就能让它支持MCP:
fromfastapiimportFastAPI
fromfastapi_mcpimportadd_mcp_server
# 创建 FastAPI 应用
app = FastAPI()
# 挂载 MCP 服务器
add_mcp_server(
app, # FastAPI 应用
mount_path="/mcp", # MCP 服务器路径
name="My API MCP", # MCP 服务器名称
)这样,你的 MCP 服务器就可以通过https://your-app.com/mcp访问了!?
FastAPI-MCP 还支持自定义 API 配置,比如:
?启用完整 JSON Schema,适配不同的 LLM 工具
?显示所有可能的响应模式,让 API 更直观
?手动扩展 MCP 工具,增强交互能力
示例代码:
fromfastapiimportFastAPI
fromfastapi_mcpimportadd_mcp_server
app = FastAPI()
# 创建 MCP 服务器并启用高级配置
mcp_server = add_mcp_server(
app,
mount_path="/mcp",
name="My API MCP",
describe_all_responses=True, # 显示所有可能的响应模式
describe_full_response_schema=True# 提供完整 JSON Schema
)
# 额外添加一个 MCP 工具(获取服务器时间)
@mcp_server.tool()
asyncdefget_server_time() ->str:
"""获取服务器当前时间"""
fromdatetimeimportdatetime
returndatetime.now().isoformat()这样,你的 MCP 服务器不仅支持 API 自动转换,还能扩展自定义 AI 工具!
FastAPI-MCP 支持SSE(Server-Sent Events)和mcp-proxy两种方式,轻松对接 AI 工具:
http://localhost:8000/mcp)如果 MCP 客户端不支持 SSE(如 Claude Desktop),可以使用mcp-proxy代理:
uvtoolinstallmcp-proxy
在claude_desktop_config.json中添加 MCP 代理配置:
Windows
{
"mcpServers":{
"my-api-mcp-proxy":{
"command":"mcp-proxy",
"args":["http://127.0.0.1:8000/mcp"]
}
}
}MacOS
{
"mcpServers":{
"my-api-mcp-proxy":{
"command":"/Full/Path/To/Your/Executable/mcp-proxy",
"args":["http://127.0.0.1:8000/mcp"]
}
}
}找到mcp-proxy的路径:
whichmcp-proxy
Claude Desktop 将自动发现并对接所有 API 端点!?
FastAPI-MCP 让你的FastAPI 应用无缝集成 MCP 生态,只需一行代码,就能让 API 端点自动转换为 AI 代理工具可用的 MCP 工具,同时还保留 Swagger 文档。
适用于:
✅ 想让 FastAPI自动暴露 API的开发者
✅ 需要与AI 代理(Claude / Cursor)交互的场景
✅ 希望零配置即可对接 MCP 生态的项目
| 欢迎光临 链载Ai (https://www.lianzai.com/) | Powered by Discuz! X3.5 |