三步搭出零配置MCP网关:FastAPI分布式部署实战

发布时间:2026/9/14 13:49:44

三步搭出零配置MCP网关:FastAPI分布式部署实战 三步搭出零配置MCP网关FastAPI分布式部署实战【免费下载链接】fastapi_mcpExpose your FastAPI endpoints as Model Context Protocol (MCP) tools, with Auth!项目地址: https://gitcode.com/GitHub_Trending/fa/fastapi_mcp3 个 FastAPI 服务0 行胶水代码FastAPI-MCP 会把每个端点自动转成 MCP 工具把整套服务暴露成零配置的 MCP 网关接管微服务通信的最后一公里。下面从装包到独立网关本地跑通全程照着做即可。5分钟跑通第一个MCP网关先确认环境Python 3.8 以上FastAPI 0.100.0 以上。装包一条命令uv add fastapi-mcp # 或 pip install fastapi-mcp然后是完整的最小可运行示例from fastapi import FastAPI from fastapi_mcp import FastApiMCP app FastAPI(title商品服务) app.get(/items/{item_id}) async def read_item(item_id: int, q: str | None None): return {item_id: item_id, q: q} mcp FastApiMCP(app) # 读完 OpenAPI端点逐个变成 MCP 工具 mcp.mount_http() # 挂到默认路径 /mcp if __name__ __main__: import uvicorn uvicorn.run(app, host0.0.0.0, port8000)启动后用 MCP Inspector 验证另开终端执行npx modelcontextprotocol/inspector地址填http://127.0.0.1:8000/mcpTools 面板点 List Tools能看到read_item就说明链路通了。从写完FastApiMCP(app)那一刻起所有接口都已是 MCP 工具你一行包装代码都不用写。MCP网关在系统里的位置三种部署模式对比部署模式做法适合场景单进程内嵌mount_http()不传参网关与业务同进程单服务、快速验证独立网关FastApiMCP(业务app)后mount_http(mcp_app)挂到新建的空应用上聚合多个业务服务业务 HTTP 接口不再直接对外多实例 负载均衡独立网关起多份前面挂负载均衡器生产环境高可用独立模式有两个值得注意的细节。第一默认情况下网关进程内通过 ASGI 直接调用业务应用的路由不走网络往返所以分开部署指的是分开两个 FastAPI 应用、分开两份配置而不是必须拆成两台机器。第二业务应用的原始 HTTP 接口不会随网关一起暴露出去外部只能经 MCP 协议访问。完整写法见 独立部署示例。需要真正跨机器调用远端服务时给FastApiMCP传一个设置了base_url的httpx.AsyncClient调用就会走真实网络。SSE还是HTTP一张表选明白对比项mount_http()mount_sse()协议规范MCP Streamable HTTP最新SSE旧版默认挂载路径/mcp/sse会话管理支持可选会话连接处理更健壮长连接事件流适合客户端新版客户端或mcp-remote桥接只支持 SSE 的旧客户端新项目直接选 HTTP只有需要兼容旧客户端时才上 SSE。挂载路径也可以自定义挂到APIRouter上时mount_path会接在 router 的 prefix 后面from fastapi import APIRouter router APIRouter(prefix/api/v1) mcp.mount_http(router, mount_path/my-mcp) # 最终路径 /api/v1/my-mcp app.include_router(router)客户端怎么接两套JSON配置主流 MCP 客户端Claude Desktop、Cursor、Windsurf 等用同一套mcpServers格式只改 URL。HTTP 传输{ mcpServers: { fastapi-mcp: { url: http://localhost:8000/mcp } } }SSE 传输把 URL 换成/sse{ mcpServers: { fastapi-mcp: { url: http://localhost:8000/sse } } }客户端只支持 stdio、或需要走 OAuth 流程时用npx mcp-remote做桥接具体写法见 快速入门 里的 mcp-remote 一节。MCP网关生产部署检查清单启用 OAuth 认证构造AuthConfig传入FastApiMCP字段含义见 认证文档网关默认会把authorization头转发给业务接口token 透传写法参考 Token 透传示例前置 HTTPS 终结把 TLS 交给网关前面的反向代理网关实例之间走内网配置请求限流在负载均衡器或反向代理层按来源限流挡住异常放大接入指标与日志Prometheus 采集网关指标日志格式复用examples/shared/setup.py里的setup_logging()处理会话粘连HTTP 传输按会话管理连接多实例部署时给负载均衡器开启粘滞路由容易踩的坑4个常见误区误区mount 之后再补端点以为会自动注册。工具列表在FastApiMCP(...)构造时一次性生成之后不会跟着路由表更新。正解把端点定义全部放在构造调用之前确需后补的调用mcp.setup_server()重建见 工具重注册示例。误区以为网关能自动发现远端微服务。它只读取你传入的那个应用默认还是进程内调用。正解跨机器时在构造参数里注入带base_url的httpx.AsyncClient。误区客户端 URL 与挂载路径不一致。HTTP 默认/mcp、SSE 默认/sse走APIRouter时 prefix 也是路径的一部分。正解客户端url填完整最终路径与网关日志里打印的监听路径逐字对齐。误区慢接口照跑不误。内置 HTTP 客户端超时偏短长耗时接口会被掐断。正解注入自定义客户端调超时见 超时配置示例。继续深入快速入门从零到客户端连通的完整流程含 mcp-remote 用法认证配置AuthConfig字段与 OAuth 代理的完整说明部署指南更多生产部署场景贡献指南想给项目提代码从这里找入口如果网关已经接上客户端下一步建议读 工具命名规范给多个服务统一一套工具命名卡住的问题先翻 FAQ。【免费下载链接】fastapi_mcpExpose your FastAPI endpoints as Model Context Protocol (MCP) tools, with Auth!项目地址: https://gitcode.com/GitHub_Trending/fa/fastapi_mcp创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/9/14 13:49:44

智能体落地办公场景:从套件架构到工程化实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/14 13:49:44

MATLAB实现滚动轴承故障诊断:快速谱峭度与包络谱分析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/14 14:34:51

进动目标微多普勒仿真:散射点建模与MATLAB实现

简介:在雷达信号处理中,多普勒效应描述运动目标的频率偏移,而微多普勒效应可揭示目标自身旋转、振动等微小动态特征,对于区分旋转部件与静止结构等场景具有重要价值。这份MATLAB程序聚焦动目标散射点的进动仿真,基于点…

2026/9/14 14:34:51

uC/OS-II上下文切换原理与Cortex-M3汇编实现解析

1. 为什么从第 4 篇开始讲上下文切换——它才是 uC/OS-II 真正的“心跳” 你翻过 uC/OS-II 的源码目录,大概率会先被 os_core.c 和 os_task.c 吸引——毕竟任务创建、删除、挂起这些 API 名字直白,调用逻辑也容易跟踪。但真正让这个系统“活起来”的…

2026/9/14 14:34:51

基于Web的数据库管理工具DBViewer:架构设计与实践

1. 项目思路与整体架构设计DBViewer这个项目,一句话概括就是:把数据库管理工具从桌面客户端搬进浏览器,让所有人通过一个网址就能完成建连、查表、写SQL、看结果集这些日常操作。做这个事的起因并不复杂,团队里DBA和研发日常用的工…

2026/9/14 14:29:50

Android仿B站项目源码解析:从架构设计到列表优化实战

简介:仿哔哩哔哩B站的安卓客户端源码学习包,面向希望在真实项目中进阶的Android初中级开发者,也适合准备移动端面试或毕设项目的读者。源码围绕B站典型业务场景展开,覆盖MVP架构、RecyclerView列表适配与复用、自定义View绘制交互…

2026/9/14 2:17:50

拯救者Y7000黑屏故障排查与维修实战指南

1. 项目概述:一台黑屏的拯救者Y7000,到底卡在哪一步? 联想拯救者Y7000系列笔记本,从2018年第一代搭载i5-8300H开始,到后来的i7-9750H、i7-10750H、i5-11400H,再到2023年款的R7-7840HS,它始终是学…

2026/9/14 0:03:22

KCF目标跟踪算法与OTB工程实现:毕业设计实战解析

简介:这是一份基于KCF核相关滤波算法、融合尺度池与抗遮挡处理的目标检测跟踪MATLAB完整源码,主要面向计算机相关专业准备毕业设计、课程设计或期末大作业的学生,也适合需要项目实战练习的初学者。源码在OTB数据集上完成验证,能够…

2026/9/14 0:03:22

语音情感识别实战:Keras实现LSTM、CNN、SVM与MLP多模型对比

简介:面向语音情感识别入门与进阶开发者,这份基于Keras的项目源码完整实现了LSTM、CNN、SVM、MLP四种模型,兼容Python3.8与Keras/TensorFlow2环境。压缩包内含49个文件,大小约70.31MB,主体包括Python脚本、yaml/json配…

2026/9/14 11:59:31

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/14 13:53:59

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/14 11:22:57

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码