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