FastAPI-MCP 零配置网关:三步接入

发布时间:2026/9/14 8:12:53
FastAPI-MCP 零配置网关:三步接入 FastAPI-MCP 零配置网关三步接入【免费下载链接】fastapi_mcpExpose your FastAPI endpoints as Model Context Protocol (MCP) tools, with Auth!项目地址: https://gitcode.com/GitHub_Trending/fa/fastapi_mcp你手里有 users、orders、inventory 三个 FastAPI 服务现在要让 AI Agent 直接查询和调用它们。fastapi-mcp就是干这件事的它把 FastAPI 转 MCP一行工具描述代码都不用写相当于给你的现有 API 套了一层零配置 MCP 网关。这篇按这条部署链路走一遍从第一个工具跑通到生产上的细节。手写 MCP Server 和一行代码的区别MCPModel Context Protocol是大模型调用外部工具的开放协议服务端暴露一份工具清单客户端Cursor、Claude Desktop 这类按 schema 发现并调用它们。如果手写 Server你要做三件事逐个端点写描述、手写参数 schema、单独搭认证。fastapi-mcp 把这些都跳过了维度手写 MCP Serverfastapi-mcp工具生成逐个端点手写自动扫描 FastAPI 应用参数 schema手写 inputSchema直接复用 Pydantic 模型文档与描述手敲保留 Swagger 原有描述鉴权自己搭复用 FastAPIDepends()核心就一行FastApiMCP(app)。装包并跑通第一个工具安装依赖也支持 pippip install fastapi-mcp细节见安装指南uv add fastapi-mcp紧接着在已有app实例的文件里追加三行挂上 HTTP 传输from fastapi_mcp import FastApiMCP mcp FastApiMCP(app) mcp.mount_http()用uvicorn yourapp:app --port 8000启动后MCP 服务就在http://localhost:8000/mcp监听。客户端连上去你应该能看到自己的业务端点被列成工具参数描述和 Swagger 里一致。Q:上线后再加新端点工具会不会缺失A:挂载那一刻生成的是工具快照新增端点后要调mcp.setup_server()重新扫描说明见刷新文档。传输的两种挂法FastAPI-MCP 提供两种挂载对应 MCP 两代规范mcp.mount_http() # 默认路径 /mcp新版 Streamable HTTP 规范 mcp.mount_sse() # 默认路径 /sse旧规范兼容老客户端新项目推荐 HTTP因为 SSE 依赖长连接推送断线重连时客户端要重新建连服务端的会话状态管理也更弱HTTP 传输行为更接近无状态请求配合负载均衡更好处理。想挂到子路径就传一个APIRouterrouter APIRouter(prefix/api/v1) mcp.mount_http(router, mount_path/my-mcp) app.include_router(router)最终地址变成http://localhost:8000/api/v1/my-mcp。完整路由示例见 examples/06_custom_mcp_router_example.py两种传输的规范差异见传输文档。同进程集成还是拆独立网关最省事的做法是集成MCP 和业务 API 共用一个进程鉴权依赖与发布流水线都复用。三个服务这种场景下如果 Agent 只需要一个入口就拆出独立网关from fastapi import FastAPI mcp FastApiMCP(items_api) # 业务应用只作为工具来源 mcp_app FastAPI() mcp.mount_http(mcp_app) # 挂到另一个应用上两个进程分别起uvicorn main:items_api --port 8001 # 业务服务 uvicorn main:mcp_app --port 8000 # MCP 网关启动后 8001 是业务 API8000 是 MCP 网关独立形式的收益网关可以脱离业务服务独立扩缩容、重启网关进程本身不再暴露业务 APIAgent 只能走 MCP 这一层。完整可运行版本在 examples/04_separate_server_example.py更多部署形态见部署文档。客户端 JSON 怎么填鉴权头怎么传主流客户端的配置格式基本一致{ mcpServers: { fastapi-mcp: { url: http://mcp-gateway:8000/mcp } } }SSE 版把 url 换成/sse即可其余不动。端点上有Depends()鉴权时客户端得带上令牌。多数客户端不原生支持认证流程常见做法是用npx mcp-remote做桥接加--header参数把令牌透传过去也可以在FastApiMCP里传入AuthConfig让网关层直接拒掉未授权的请求。令牌透传写法看认证示例完整 OAuth 2 流程见认证文档。生产环境容易踩的坑加了端点记得setup_server()工具是快照生成的漏了重扫Agent 看不到新工具。负载均衡与会话HTTP 传输更适合多实例部署启用会话时按会话标识头把同一会话路由到同一实例SSE 长连接容易被 LB 的空闲超时掐断生产上能避就避。协议层HTTPS 交给反向代理终结网关前面配限流防止被恶意刷。Q:客户端只支持旧版 SSE 规范怎么办A:mount_http换成mount_sse其余配置不变。Q:多个后端服务需要服务发现吗A:目前静态配置网关启动时写死后端地址即可不同版本放到不同 URL 前缀下各挂一个独立网关。下一步就一件事挑一个在跑的 FastAPI 项目执行uv add fastapi-mcp在app旁边加上mcp FastApiMCP(app)和mcp.mount_http()把客户端指到http://localhost:8000/mcp验证工具列表。【免费下载链接】fastapi_mcpExpose your FastAPI endpoints as Model Context Protocol (MCP) tools, with Auth!项目地址: https://gitcode.com/GitHub_Trending/fa/fastapi_mcp创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询