项目简介
FastAPI-MCP 是一个为 FastAPI 框架设计的扩展库,旨在帮助开发者轻松地将现有的 FastAPI 应用转换为 Model Context Protocol (MCP) 服务器。通过 FastAPI-MCP,您可以零配置地将 FastAPI 应用中的所有 API 接口自动转换为 MCP 工具,从而让 LLM (如 Claude) 能够直接调用您的 API 功能。
主要功能点
- 无缝集成 FastAPI: 直接将 MCP 服务器挂载到现有的 FastAPI 应用中,无需复杂的配置。
- 零配置: 自动发现并转换 FastAPI 应用中的所有 endpoints 为 MCP 工具,即装即用。
- 自动工具发现: 自动将 FastAPI endpoints 转换为 MCP 工具,无需手动定义。
- Schema 保留: 完整保留 FastAPI endpoint 的请求模型和响应模型 Schema 信息,确保 LLM 客户端能够正确理解 API 接口。
- 文档继承: 保留 FastAPI endpoint 的文档信息,包括 Swagger 文档中的描述,为 LLM 提供丰富的工具使用说明。
- 可扩展性: 支持添加自定义 MCP 工具,与自动生成的工具并存,满足更灵活的应用场景。
安装步骤
推荐使用 'uv' (更快的 Python 包安装工具) 或者 'pip' 进行安装。
使用 uv 安装 (推荐):
uv add fastapi-mcp
使用 pip 安装:
pip install fastapi-mcp
服务器配置
MCP 服务器配置 (JSON 格式) 主要用于告知 MCP 客户端如何启动和连接到您的 FastAPI-MCP 服务器。以下是一个示例配置,您可以根据您的实际情况进行调整。
{ "server name": "My FastAPI MCP Server", "command": "uvicorn", "args": [ "examples.simple_integration:app", "--reload", "--host", "0.0.0.0", "--port", "8000" ], "description": "Example FastAPI MCP server exposing API endpoints as tools." }
配置参数说明:
- '"server name"': MCP 服务器的名称,可以自定义,用于在 MCP 客户端中识别您的服务器。
- '"command"': 启动 FastAPI-MCP 服务器的命令,通常是 'uvicorn' (或其他 ASGI 服务器,如 'hypercorn')。
- '"args"': 传递给启动命令的参数列表。
- '"examples.simple_integration:app"': 指定 FastAPI 应用的入口点。这里假设您的 FastAPI 应用在 'examples/simple_integration.py' 文件中,并且 app 实例名为 'app'。请根据您的实际文件路径和应用实例名进行修改。
- '"--reload"': 开启热重载,方便开发时修改代码自动重启服务器。生产环境建议移除。
- '"--host", "0.0.0.0"': 指定服务器监听的 IP 地址为 '0.0.0.0',表示监听所有网络接口,允许外部访问。
- '"--port", "8000"': 指定服务器监听的端口为 '8000'。请确保端口未被占用,并根据需要修改。
- '"description"': MCP 服务器的描述信息,可以自定义,用于在 MCP 客户端中提供更详细的服务器说明。
注意: 请确保您的环境中已安装 'uvicorn' (或您选择的 ASGI 服务器) 以及 FastAPI-MCP 依赖的其他库。
基本使用方法
-
创建 FastAPI 应用: 首先,您需要有一个基于 FastAPI 框架构建的 API 应用。如果您还没有,可以参考 'examples/simple_integration.py' 创建一个简单的示例应用。
-
集成 FastAPI-MCP: 在您的 FastAPI 应用中,导入 'fastapi_mcp' 的 'add_mcp_server' 函数,并将其添加到您的 app 实例中。指定挂载路径 ('mount_path') 和服务器名称 ('name') 等参数。
from fastapi import FastAPI from fastapi_mcp import add_mcp_server app = FastAPI() # ... 您的 FastAPI endpoints ... add_mcp_server( app, mount_path="/mcp", name="My API MCP Server", base_url="http://localhost:8000" # 请根据实际情况修改 base_url ) -
启动 FastAPI 应用: 使用 'uvicorn' 或其他 ASGI 服务器启动您的 FastAPI 应用。
uvicorn examples.simple_integration:app --reload --host 0.0.0.0 --port 8000 -
连接 MCP 客户端: 在支持 MCP 协议的 LLM 客户端 (如 Claude) 中,配置 MCP 服务器的 URL (例如 'http://localhost:8000/mcp'),客户端将自动发现并加载 FastAPI-MCP 服务器提供的工具。
通过以上步骤,您就可以将现有的 FastAPI 应用快速转换为 MCP 服务器,并利用 LLM 客户端调用您的 API 功能,构建强大的 LLM 应用。
信息
分类
开发者工具