FastAPI-MCP

FastAPI-MCP – 一键将 FastAPI 转换为 MCP 服务器的开源工具

FastAPI-MCP

FastAPI-MCP 是一个开源工具,旨在将 FastAPI 应用中的端点自动转换为符合模型上下文协议(MCP)。这一工具具备零配置的优势,只需简单地指向 FastAPI 应用,即可自动识别并转换所有端点为 MCP 工具,无需额外的设置。通过保留 FastAPI 的请求和响应模型以及 Swagger 文档,FastAPI-MCP 确保了接口的完整性和用户友好性。

FastAPI-MCP是什么

FastAPI-MCP 是一个旨在将 FastAPI 应用的端点自动转换为符合模型上下文协议(MCP)的开源工具。其最大特点是零配置:用户仅需简单指向 FastAPI 应用,工具便能自动发现并转换所有端点为 MCP 工具,省去繁琐的设置过程。FastAPI-MCP 保留了 FastAPI 的请求及响应模型模式,并维护 Swagger 文档的完整性,确保了接口的可用性与易用性。该工具不仅可以灵活集成到 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 的类型系统和反射机制,FastAPI-MCP 自动捕获接口的参数、响应模型及权限声明等元数据,并通过动态路由注册实时解析 APIRouter 对象,生成服务目录树。
  • AST 语法树解析:FastAPI-MCP 运用抽象语法树(AST)解析技术,进行静态分析,提取接口的元信息,从而能自动发现 FastAPI 应用中的所有端点,并将其转换为 MCP 工具。
  • 异步任务编排:依赖 Starlette 的循环机制,FastAPI-MCP 实现接口调用链的实时监控和异步任务编排,确保 MCP 服务器能高效处理并发请求,与 FastAPI 的异步特性完美结合。
  • 保留请求与响应模式:该工具保留了 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 查询库存、下单或获取产品信息,以提升用户体验。

常见问题

  • FastAPI-MCP 是否易于安装和配置? 是的,FastAPI-MCP 设计为零配置,用户只需简单指向 FastAPI 应用即可自动转换端点。
  • 能否自定义暴露的端点? 是的,开发者可以通过 OpenAPI 操作 ID 或标签来控制暴露的端点,实现精细化管理。
  • 如何更新 MCP 服务器以包含新端点? 用户可以通过调用 setup_server() 方法来刷新 MCP 服务器,从而包括新添加的 FastAPI 端点。
阅读原文
© 版权声明
Trae官网

相关文章

Trae官网

暂无评论

暂无评论...