FastAPI-MCP是什么
FastAPI-MCP 是将 FastAPI 应用的端点自动转换为符合模型上下文协议()的开源工具。具有零配置的特点,只需简单指向 FastAPI 应用可自动发现并转换所有端点为 MCP 工具,无需额外设置。通过保留 FastAPI 的请求和响应模型模式以及 Swagger 文档,FastAPI-MCP 确保了接口的完整性和易用性。 工具支持直接集成到 FastAPI 应用中,可以灵活地单独部署。用户可以通过 uv 或 pip 安装,通过简单的代码集成到 FastAPI 应用中。
FastAPI-MCP的主要功能
- 自动发现与转换:FastAPI-MCP 能自动发现 FastAPI 应用中的所有端点,将其转换为 MCP 工具。无需手动配置,可实现端点的自动识别和转换。
- 保留模式与文档:工具可以保留 FastAPI 的请求模型和响应模型的模式,保留所有端点的文档。文档与 Swagger 中的文档保持一致,方便开发者和用户理解和使用。
- 灵活部署:FastAPI-MCP 支持将 MCP 服务器直接挂载到 FastAPI 应用中,也可以单独部署。使开发者可以根据需求选择最适合的部署方式。
- 自定义工具命名:FastAPI-MCP 使用 FastAPI 路由中的
operation_id
作为 MCP 工具的名称。开发者可以通过显式定义operation_id
来指定更清晰、更直观的工具名称,避免自动生成的名称过于复杂。 - 筛选暴露的端点:开发者可以通过 OpenAPI 操作 ID 或标签来控制哪些 FastAPI 端点会被暴露为 MCP 工具。支持包含或排除特定的端点或标签,实现更精细的控制。
- 支持 SSE 和代理连接:FastAPI-MCP 支持通过服务器发送事件(SSE)直接连接到支持该协议的客户端(如 Cursor)。对于不支持 SSE 的客户端(如 Claude Desktop),可以通过
mcp-proxy
代理实现连接。 - 动态更新:如果在创建 MCP 服务器后添加了新的 FastAPI 端点,可以通过调用
setup_server()
方法来刷新 MCP 服务器,包含新添加的端点。
FastAPI-MCP的技术原理
- 利用 FastAPI 的 OpenAPI 规范:FastAPI-MCP 通过解析 FastAPI 应用的 OpenAPI 文档,自动提取接口的元数据,包括请求和响应模型、路由信息等。这些元数据被用来生成对应的 MCP 工具,确保转换的准确性和一致性。
- 反射式元数据捕获与动态路由注册:FastAPI-MCP 基于 FastAPI 的类型系统和反射机制,自动捕获接口的参数、响应模型及权限声明等元数据。通过动态路由注册,实时解析
APIRouter
对象并生成服务目录树。 - AST 语法树解析:FastAPI-MCP 使用抽象语法树(AST)解析技术,对
@app.get()
等装饰器进行静态分析,提取接口的元信息。使工具能自动发现 FastAPI 应用中的所有端点,将其转换为 MCP 工具。 - 异步任务编排:FastAPI-MCP 依赖 Starlette 的事件循环机制,实现接口调用链的实时监控和异步任务编排。使 MCP 服务器能高效地处理并发请求,与 FastAPI 的异步特性完美契合。
- 保留请求与响应模式:FastAPI-MCP 保留了 FastAPI 端点的请求与响应模式,以及 Swagger 文档。确保了 AI 模型在调用 API 时能获取到准确、一致的数据,提高了交互的可靠性和稳定性。
FastAPI-MCP的项目地址
FastAPI-MCP的应用场景
- 企业内部自动化:FastAPI-MCP 可以将企业内部的 FastAPI API 端点快速转换为 MCP 工具,供 AI 模型或其他自动化工具调用。
- AI 驱动的应用开发:在 AI 开发中,FastAPI-MCP 可以让 AI 模型直接调用后端服务的 API。
- 数据分析与处理:AI 代理可以通过 FastAPI-MCP 转换后的 MCP 工具直接访问数据处理端点,实现实时数据分析。
- 内容管理:AI 工具可以调用内容管理系统(CMS)的接口,高效完成内容创建与更新。
- 电子商务:在电商场景中,AI 助手可以通过 API 查询库存、下单或获取产品信息,提升用户体验。