FastAPI-MCP 是一个 Python 库,旨在帮助开发者快速将现有的 FastAPI 应用转换为 Model Context Protocol (MCP) 服务器。它能够自动识别 FastAPI 应用中定义的 API 接口,并将这些接口作为工具(Tools)暴露给支持 MCP 协议的大型语言模型 (LLM) 客户端,从而使 LLM 能够通过标准化的方式调用您的后端服务。
主要功能点:
- 无须配置自动转换: 自动扫描 FastAPI 应用的 API 接口(基于 OpenAPI 标准),并将它们转化为 MCP 工具定义,无需手动编写 MCP 工具描述。
- 保留接口信息: 转换过程会保留 FastAPI 接口的参数、请求体、响应模型等信息,用于生成详细的 MCP 工具描述,供 LLM 理解和使用。
- 保留文档说明: 接口的 summary 和 description 等文档信息也会被提取,增强工具描述的易读性。
- 灵活部署: 可以将 MCP 服务器直接挂载到您的现有 FastAPI 应用,或部署为一个完全独立的 MCP 服务器。
- 接口过滤: 支持根据 operation ID 或 tag 过滤需要暴露为 MCP 工具的接口。
安装步骤:
要使用 FastAPI-MCP,您需要先安装它。推荐使用 'uv' 或 'pip' 包管理器:
- 推荐使用 uv 安装:
uv add fastapi-mcp - 或者使用 pip 安装:
请确保您的 Python 环境已安装 FastAPI。pip install fastapi-mcp
服务器配置(供 MCP 客户端连接):
MCP 服务器启动后,默认监听在您挂载它时指定的路径下。您需要在支持 MCP 协议的客户端(如 Cursor, Claude Desktop 等)中配置连接信息。
- 如果客户端支持 SSE 协议: FastAPI-MCP 默认通过 SSE 协议通信。直接将 MCP 服务器的 URL 配置到您的客户端即可。例如,如果您将 MCP 服务器挂载在 FastAPI 应用的默认端口 8000 下的 '/mcp' 路径,客户端配置的服务器地址通常是 'http://127.0.0.1:8000/mcp'。
- 如果客户端只支持 Stdio 协议: 您可以使用 'mcp-proxy' 工具作为中介。'mcp-proxy' 可以将 Stdio 协议转换为 SSE 协议。在这种情况下,您的 MCP 客户端配置需要指向 'mcp-proxy',并且告知 'mcp-proxy' 您的 FastAPI-MCP SSE 服务器地址 ('http://127.0.0.1:8000/mcp')。具体的 'command' 和 'args' 配置格式请参考您的 MCP 客户端文档。
基本使用方法:
将 MCP 服务器集成到您的 FastAPI 应用非常简单:
- 在您的 FastAPI 应用代码中,导入 'FastApiMCP' 类。
- 创建 'FastApiMCP' 的实例,将您的 'FastAPI' 应用实例作为参数传入。可选参数包括 MCP 服务器的 'name'(名称)、'description'(描述)以及原始 FastAPI 应用的 'base_url'(基础 URL,强烈推荐设置,用于 MCP 服务器知道如何调用原始 API 接口)。
- 调用创建的 'FastApiMCP' 实例的 '.mount()' 方法,将其作为路由挂载到您的 FastAPI 应用。默认挂载路径是 '/mcp'。
完成以上步骤后,运行您的 FastAPI 应用(例如使用 'uvicorn'),MCP 服务器将自动在指定的路径下启动,并开始监听来自 MCP 客户端的请求,LLM 客户端即可发现并调用您暴露的 API 工具。
信息
分类
开发者工具