
FastAPI-MCP
将你的 FastAPI 端点作为模型上下文协议 (MCP) 工具暴露出来,并自带认证!
[](https://pypi.org/project/fastapi-mcp/)
[](https://pypi.org/project/fastapi-mcp/)
[](#)
[](https://github.com/tadata-org/fastapi_mcp/actions/workflows/ci.yml)
[](https://codecov.io/gh/tadata-org/fastapi_mcp)

特性
- 内置认证:使用你现有的 FastAPI 依赖项!
- FastAPI 原生:不仅仅是另一个 OpenAPI -> MCP 转换器。
- 零/最少配置:只需指向你的 FastAPI 应用即可工作。
- 保留模式:完整保留请求模型和响应模型的模式定义。
- 保留文档:保留所有端点的文档,与 Swagger 中完全一致。
- 灵活部署:可将 MCP 服务器挂载到同一应用,或单独部署。
- ASGI 传输:直接使用 FastAPI 的 ASGI 接口进行高效通信。
托管解决方案
如果你更喜欢托管的解决方案,请查看 tadata.com。
安装
我们推荐使用 uv,一个快速的 Python 包安装器:
uv add fastapi-mcp
或者,你也可以使用 pip 安装:
pip install fastapi-mcp
基本用法
使用 FastAPI-MCP 最简单的方式是直接将 MCP 服务器添加到你的 FastAPI 应用中:
from fastapi import FastAPI
from fastapi_mcp import FastApiMCP
app = FastAPI()
mcp = FastApiMCP(app)
# 将 MCP 服务器直接挂载到你的 FastAPI 应用上
mcp.mount()
搞定!你自动生成的 MCP 服务器现在可以通过 https://app.base.url/mcp 访问。
文档、示例与高级用法
FastAPI-MCP 提供了全面的文档。此外,可以查看示例目录中的代码示例,了解这些特性的实际应用。
FastAPI 优先的设计理念
FastAPI-MCP 被设计为 FastAPI 的原生扩展,而不仅仅是一个从你的 API 生成 MCP 工具的转换器。这种方法提供了几个关键优势:
- 原生依赖项:使用熟悉的 FastAPI
Depends() 来保护你的 MCP 端点,实现认证和授权。
- ASGI 传输:直接使用 FastAPI 应用的 ASGI 接口进行通信,无需 MCP 向你的 API 发起 HTTP 调用。
- 统一的基础设施:你的 FastAPI 应用无需与 MCP 服务器分开运行(当然也支持单独部署)。
这种设计理念确保了在为你现有的 FastAPI 服务添加 MCP 功能时,摩擦最小。
开发与贡献
感谢你考虑为 FastAPI-MCP 做贡献!我们鼓励社区提交 Issue 和创建 Pull Request。
在开始之前,请阅读我们的贡献指南。
社区
加入 MCParty Slack 社区,与其他 MCP 爱好者交流、提问并分享你使用 FastAPI-MCP 的经验。
要求
- Python 3.10+ (推荐 3.12)
- uv
许可证
MIT 许可证。版权所有 (c) 2025 Tadata Inc.