关于 FastAPI-MCP
FastAPI-MCP 可将 FastAPI 端点暴露为 MCP 工具,并复用应用中已有的认证依赖。它面向希望为现有 FastAPI 服务增加 MCP 能力的 Python 开发者,并以 ASGI 方式直接调用应用。
主要功能
- 01复用 FastAPI Depends() 实现认证与授权
- 02自动保留请求与响应模型的 schema
- 03保留端点的 Swagger 文档说明
- 04可挂载到同一应用或独立部署
- 05基于 ASGI 直接通信,无需额外 HTTP 调用
- 06零或少量配置即可运行
适用场景
- 01为现有 FastAPI 服务添加 MCP 工具接口
- 02在 MCP 端点上应用既有的权限控制
- 03将内部 API 以 MCP 工具形式提供给 Cursor 或 Claude 等客户端
MCP 相关
FastAPI-MCP 是一个 MCP 服务端扩展,将 FastAPI 路由转换为 MCP 工具,并在应用中挂载 /mcp 端点供 MCP 客户端连接。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
FastAPI-MCP
将 FastAPI 端点作为 Model Context Protocol(MCP)工具公开,并支持身份验证!
功能特性
-
内置身份验证,使用现有的 FastAPI 依赖项!
-
原生支持 FastAPI: 不只是另一个 OpenAPI -> MCP 转换器
-
零配置/最少配置——只需指定 FastAPI 应用即可使用
-
保留架构,包括请求模型和响应模型的架构
-
保留文档,所有端点的文档都会按 Swagger 中的原样保留
-
灵活部署——可将 MCP 服务挂载到同一应用,也可单独部署
-
ASGI 传输——直接使用 FastAPI 的 ASGI 接口,实现高效通信
托管解决方案
如果你更倾向于使用托管解决方案,请访问 tadata.com。
安装
我们推荐使用快速的 Python 包安装器 uv:
uv add fastapi-mcp
或者,你也可以使用 pip 安装:
pip install fastapi-mcp
基本用法
使用 FastAPI-MCP 最简单的方法,是直接在 FastAPI 应用中添加 MCP 服务:
from fastapi import FastAPI
from fastapi_mcp import FastApiMCP
app = FastAPI()
mcp = FastApiMCP(app)
# Mount the MCP server directly to your FastAPI app
mcp.mount()
就这样!自动生成的 MCP 服务现已可通过 https://app.base.url/mcp 访问。
文档、示例和高级用法
FastAPI-MCP 提供了全面的文档。此外,还可以查看 examples 目录,其中包含展示这些功能实际用法的代码示例。
FastAPI 优先的方法
FastAPI-MCP 被设计为 FastAPI 的原生扩展,而不只是一个从 API 生成 MCP 工具的转换器。这种方法有几个关键优势:
-
原生依赖项: 使用熟悉的 FastAPI
Depends()进行身份验证和授权,保护 MCP 端点 -
ASGI 传输: 通过 FastAPI 应用的 ASGI 接口直接通信,无需 MCP 通过 HTTP 调用你的 API
-
统一基础设施: FastAPI 应用无需与 MCP 服务分开运行(同时也支持单独部署)
这种设计理念确保了为现有 FastAPI 服务添加 MCP 功能时只需最少的改动。
开发与贡献
感谢您考虑为 FastAPI-MCP 做出贡献!我们欢迎社区成员提交 Issues 和创建 Pull Requests。
开始之前,请参阅我们的贡献指南。
社区
加入 MCParty Slack 社区,与其他 MCP 爱好者交流、提问并分享您使用 FastAPI-MCP 的经验。
要求
- Python 3.10+(推荐使用 3.12)
- uv
许可证
MIT 许可证。版权所有 (c) 2025 Tadata Inc.
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。