FastAPI-MCP是什么轻松实现FastAPI的AI集成

今天,我们来深入了解一款极其实用的工具——FastAPI MCP。如果你正在使用FastAPI构建API,并希望你的端点能够直接被AI模型(如GPT、Claude等)访问,那么本指南正是为你准备的。

FastAPI MCP是什么?

简而言之,FastAPI MCP 是一个零配置解决方案,它能自动将您的 FastAPI 端点作为 模型上下文协议 (MCP) 工具暴露出来。通过 MCP 兼容性,AI 模型可以以无缝、标准化的方式直接与您的 API 进行交互。

本质上,FastAPI MCP 充当了一座桥梁:它让您的 API 能够被各种 AI 模型发现和调用。想象一下,只需通过 Cursor 或 Claude Desktop 等工具,就能让 Claude 或 GPT 调用您的 API 端点来获取数据、处理信息或触发业务逻辑。这不仅强大,而且充满乐趣!

Alt

为什么选择 FastAPI MCP?

在开发AI驱动的应用程序时,越来越常见的一种场景是需要让大语言模型(LLM)与外部服务进行交互,例如:

  • 查询您的数据库

  • 调用计算服务

  • 访问内部工具

  • ……以及更多内容

传统上,这需要为每个AI集成构建自定义端点或编写专用适配器。而通过FastAPI MCP,只需几行代码就能让现有API直接对接AI模型——大幅节省开发时间和精力。

逐步指南:本地快速上手FastAPI MCP

第一步:准备Python环境

首先,确保已安装Python(推荐使用3.10及以上版本)。可通过以下命令检查Python版本:

python --version
# or
python3 --version

如果看到正确的版本号(例如 Python 3.10.x),说明你的环境已准备就绪。
Alt

第二步:安装所需依赖包

安装 FastAPI、Uvicorn 和 FastAPI MCP:

pip install fastapi uvicorn fastapi-mcp

第三步:创建一个简单的FastAPI应用

为确保兼容性并减少配置,从一个基础示例开始。新建一个名为 main.py 的文件,并添加以下内容:

from fastapi import FastAPI
from fastapi_mcp import FastApiMCP

app = FastAPI(title="Simple API")

@app.get("/hello", operation_id="say_hello")
async def hello():
    """A simple greeting endpoint"""
    return {"message": "Hello World"}

# Expose MCP server
mcp = FastApiMCP(app, name="Simple MCP Service")
mcp.mount()

if __name__ == "__main__":
    import uvicorn
    uvicorn.run(app, host="127.0.0.1", port=8000)

此示例包含一个返回问候语的单一 /hello 端点。

步骤4:运行并测试您的应用

现在启动你的服务器:

python main.py

uvicorn main:app --reload

您应该能看到FastAPI应用已在http://127.0.0.1:8000上运行。
图片

步骤5:探索MCP端点

在浏览器中打开 http://127.0.0.1:8000/mcp。
注意:与标准REST API不同,MCP端点采用服务器发送事件(SSE)技术,因此您将看到如下输出:

event: endpoint
data: /mcp/messages/?session_id=a543519a5f3848febfd4f40b5ad3b5c7

这意味着MCP服务器已启动并准备好接受AI客户端的连接。
图片

将FastAPI MCP连接到AI客户端

假设你想将FastAPI MCP连接到像Cursor这样的客户端。方法如下:

方法一:SSE(服务器发送事件)连接

大多数现代MCP客户端(Claude Desktop、Cursor、Windsurf等)都支持SSE。在客户端设置中,请使用类似以下配置:

{
  "mcpServers": {
    "fastapi-mcp": {
      "url": "http://localhost:8000/mcp"
    }
  }
}

例如,在Cursor中,进入设置 → “MCP” → “添加新的全局MCP服务器”,并将上述配置添加到您的mcp.json文件中。
Alt
当您的FastAPI MCP服务器运行后,AI集成开发环境将自动检测并启用新功能。
Alt

方法二:使用mcp-remote作为桥梁

如需认证支持或您的 MCP 客户端不支持 SSE,可以使用 mcp-remote 作为桥梁:

{
  "mcpServers": {
    "fastapi-mcp": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "http://localhost:8000/mcp",
        "8080"
      ]
    }
  }
}

实践应用:FastAPI MCP实战演示

当你配置好AI客户端与FastAPI MCP服务器通信后,只需简单询问——例如在Cursor的Agent标签页中输入:
“帮我调用/hello接口”。
AI就会像人类开发者一样运行MCP工具并返回接口结果。
图片

高级使用技巧

当你掌握了基础知识后,FastAPI MCP 为生产环境提供了强大的功能:

选择性公开端点

您可能不希望所有端点都向AI开放。FastAPI MCP允许您精确控制哪些端点可被访问:

# Only expose specific operations
mcp = FastApiMCP(app, include_operations=["say_hello", "get_user_info"])

# Exclude certain operations
mcp = FastApiMCP(app, exclude_operations=["delete_user", "update_settings"])

# Expose only endpoints with specific tags
mcp = FastApiMCP(app, include_tags=["public", "read_only"])

# Exclude endpoints with specific tags
mcp = FastApiMCP(app, exclude_tags=["admin", "sensitive"])

添加身份验证

为确保您的MCP端点安全,可利用FastAPI依赖项:

from fastapi import FastAPI, Depends, Security
from fastapi.security import APIKeyHeader

api_key_header = APIKeyHeader(name="X-API-Key")

async def verify_api_key(api_key: str = Security(api_key_header)):
    if api_key != "your-secret-key":
        raise HTTPException(status_code=403, detail="Invalid API key")
    return api_key

mcp = FastApiMCP(app, mcp_dependencies=[Depends(verify_api_key)])
mcp.mount()

现在,每次MCP调用都需要在请求头中包含有效的API密钥。

自定义响应处理

您可能希望包含元数据或自定义发送给AI的响应:

async def response_processor(request, response, response_data):
    response_data["processed_by"] = "custom_processor"
    response_data["timestamp"] = datetime.now().isoformat()
    return response_data

mcp = FastApiMCP(app, response_processor=response_processor)
mcp.mount()

独立部署

对于复杂配置,您可能希望将 MCP 服务器与主 API 分开托管:

# api_app.py
from fastapi import FastAPI
api_app = FastAPI()

# mcp_app.py
from fastapi import FastAPI
from fastapi_mcp import FastApiMCP
from api_app import api_app

mcp_app = FastAPI()
mcp = FastApiMCP(api_app)
mcp.mount(mcp_app)

根据需要独立部署 api_app 和 mcp_app。

安全最佳实践

在使用FastAPI MCP时:

  1. 仅暴露安全、只读的端点——避免危险操作如 DELETE 和 PUT。

  2. 在适当情况下要求身份验证。

  3. 使用 Pydantic 模型进行严格的参数验证。

  4. 考虑对响应中的敏感数据进行过滤或屏蔽处理。

结语

开始使用FastAPI MCP非常简单。只需极少的工作量,您就能将现有API转化为AI可访问的接口,无需重写代码或花费时间定制适配器。
核心步骤如下:

  1. 安装Python

  2. 安装依赖项(fastapi、uvicorn 和 fastapi-mcp)

  3. 创建一个 FastAPI 应用

  4. 只需几行代码即可添加 MCP 支持

  5. 从您喜欢的AI集成开发环境或工具连接并测试

如需了解更多功能及最新特性,请参阅 GitHub 上的 FastAPI MCP 官方文档

其他推荐的MCP服务器

Apidog MCP 服务 可让您将 Apidog 的 API 文档提供给 Cursor 等 AI 驱动的集成开发环境,以及其他支持 MCP 协议的工具。该服务支持多种应用场景:既可以连接您 Apidog 项目中已记录的 API,也能访问公开发布的 API 文档,甚至支持使用 OpenAPI/Swagger 规范文件。

🎬 视频内容
Alt
点击跳转视频

安装过程极其简单——只需确保已安装Node.js(18或更高版本)。根据您的使用场景选择合适的配置方式。对于私有化部署,您还可以添加自定义API基础URL。通过Apidog MCP Server,开发者能利用AI助手从API文档生成代码、修改代码、搜索API文档等,这些功能都将显著提升开发效率。

实际使用时,您只需告知AI助手想对API文档执行什么操作(例如:“根据API文档为/users端点生成所有MVC代码”),AI就能理解并完成任务。这在团队协作环境中尤为宝贵,能确保所有开发者都基于统一规范的API文档源进行工作。

.com/watch?v=lw046MO5POY)

安装过程极其简单——只需确保已安装Node.js(18或更高版本)。根据您的使用场景选择合适的配置方式。对于私有化部署,您还可以添加自定义API基础URL。通过Apidog MCP Server,开发者能利用AI助手从API文档生成代码、修改代码、搜索API文档等,这些功能都将显著提升开发效率。

实际使用时,您只需告知AI助手想对API文档执行什么操作(例如:“根据API文档为/users端点生成所有MVC代码”),AI就能理解并完成任务。这在团队协作环境中尤为宝贵,能确保所有开发者都基于统一规范的API文档源进行工作。

Alt

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

九十分115

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值