实战|用FastAPI-MCP,几行代码打造高效MCP工具服务!
FastAPI-MCP是一个开源框架,能够将现有FastAPI接口快速转换为支持MCP协议的工具服务,无需重写API逻辑。它通过自动读取FastAPI的路由、模型和文档,生成符合MCP规范的工具集,支持LLM直接调用。主要特点包括:继承现有认证机制、极简配置、保留接口文档、灵活部署方式(可挂载或独立部署)。安装只需pip install fastapi-mcp,基础使用仅需两行代码即可完成转换。项
若你之前已经开发部署了大量 FastAPI 接口服务,打算让 LLM 调用这些已有的 API 服务来查询数据,执行任务。通常,需要将已有的 API 服务改写为支持 MCP 协议的服务:手写大量的“胶水代码”,定义工具(Tool)。工作繁琐,且容易出错。
如何快速将已有的 API 服务转换成 MCP 服务呢?
本文介绍一个开源项目:https://github.com/tadata-org/fastapi_mcp,几行代码就把现有 FastAPI 接口升级为支持 MCP 协议的工具服务,并保留原有的鉴权、数据校验和文档,极大降低了传统 API 与 AI 工作流之间的集成门槛,支持独立部署、SSE 流式传输、实时文档同步等功能。
一、什么是 FastAPI-MCP
-
GitHub: https://github.com/tadata-org/fastapi_mcp
-
官方文档: https://fastapi-mcp.tadata.com/

FastAPI-MCP 是一个能将现有的 FastAPI 接口(Endpoints)自动转换并暴露为模型上下文协议(Model Context Protocol)工具服务的框架。
这意味着,不需要为 LLM 重写任何 API 调用逻辑。FastAPI-MCP 会自动读取 FastAPI 应用的路由、Pydantic 模型、甚至是接口文档,然后生成完全符合 MCP 规范的工具集,让 LLM 可以直接理解和调用。
FastAPI-MCP 特性
-
🛡️自带认证:直接复用 FastAPI 中已有的安全依赖(Depends())。无论是 HTTPBearer 令牌认证还是复杂的 OAuth2 流程,都无需为 LLM 重复开发,安全性无缝继承。
-
✨零/极简配置:大多数情况下,需要两行代码就能完成所有设置,真正做到“即插即用”。
-
📚保留结构与文档:精确地将 Pydantic 模型和接口文档(docstrings)翻译成 LLM 能理解的工具输入/输出结构(Schema)和描述,保证了调用时的准确性。
-
🔧灵活部署:可以将 MCP 服务直接挂载到现有的 FastAPI 应用上,也可以将其作为独立服务分开部署。
-
⚡高效通信:通过 ASGI 接口直接与 FastAPI 应用通信,避免了从 MCP 服务到 API 服务的额外 HTTP 调用,延迟更低,效率更高。
二、安装步骤
安装 fastapi-mcp 包,使用 uv 工具或 pip 进行安装。
使用 uv (推荐):
uv add fastapi-mcp
使用 pip:
pip install fastapi-mcp
三、代码示例
1、基础用法
假设已经有了一个标准的 FastAPI 应用 app。现在,想让它所有的 API 都能被 LLM 调用。
-
FastApiMCP(app):自动完成了所有 API 的扫描和转换
-
mcp.mount_http():创建了一个新的接口(默认为 /mcp),这个接口就是 LLM 和应用沟通的桥梁。
from fastapi import FastAPI
from fastapi_mcp import FastApiMCP
# 已有的 FastAPI app
app = FastAPI()
# 1. 从你的 FastAPI app 创建一个 MCP 实例
mcp = FastApiMCP(app)
# 2. 将 MCP 服务挂载到你的 app 上
mcp.mount_http()
# 启动服务
if __name__ == "__main__":
import uvicorn
uvicorn.run(app, host="0.0.0.0", port=8000)
2、无缝集成现有认证
假设应用中有一个需要授权才能访问的接口。已有的FastAPI 应用代码如下:
from fastapi import Depends, FastAPI
from fastapi.security import HTTPBearer
app = FastAPI()
token_auth_scheme = HTTPBearer()
# 一个受保护的接口,必须提供有效的 Bearer Token
@app.get("/private")
async def private(token: str = Depends(token_auth_scheme)):
return {"message": f"Your token is: {token.credentials}"}
现在,如何让 LLM 在调用这个工具时也带上认证信息?使用 FastAPI-MCP,几乎不需要做任何额外的事:
from fastapi_mcp import FastApiMCP, AuthConfig
# ... (前面的 app 和 token_auth_scheme 定义)
# 创建 MCP 服务时,将 FastAPI 中已有的 Depends(token_auth_scheme) 传递给 AuthConfig
# 通过 AuthConfig 告诉 FastApiMCP 需要哪些认证依赖
mcp = FastApiMCP(
app,
name="Protected MCP",
auth_config=AuthConfig(
dependencies=[Depends(token_auth_scheme)], # 把认证依赖传进去
),
)
# 挂载服务
mcp.mount_http()
当 MCP 客户端尝试调用这个受保护的工具但未提供 Authorization 头时,FastAPI-MCP 会正确地返回 401 Unauthorized,从而触发客户端启动标准的 OAuth 流程,引导用户完成登录并获取Token,然后用这个 Token 再次调用工具。整个过程完全符合现代安全实践,而几乎没写任何额外的认证代码!
3、选择性暴露的 API
我们可能不想把所有的 API 都暴露给 LLM。FastAPI-MCP 同样提供了非常灵活的过滤机制,可以通过 operation_id 或 tags 来精确控制。这种灵活性使得管理和维护面向 LLM 的工具集变得异常轻松和安全。
# 仅暴露 operation_id 为 "get_item" 和 "list_items" 的接口
include_operations_mcp = FastApiMCP(
app,
name="Item API MCP - Included Operations",
include_operations=["get_item", "list_items"],
)
# 暴露除了带有 "search" 标签以外的所有接口
exclude_tags_mcp = FastApiMCP(
app,
name="Item API MCP - Excluded Tags",
exclude_tags=["search"],
)
# 挂载不同的 MCP 服务到不同的路径
include_operations_mcp.mount_http(mount_path="/include-operations-mcp")
exclude_tags_mcp.mount_http(mount_path="/exclude-tags-mcp")
以上是 FastAPI-MCP 项目介绍。该项目对 FastAPI 开发者十分友好,可以将已有的 API 服务快速高效地转换为 MCP 工具服务,从而将现有的业务能力赋能给大模型。
四、AI大模型学习路线
如果你对AI大模型入门感兴趣,那么你需要的话可以点击这里大模型重磅福利:入门进阶全套104G学习资源包免费分享!
这份完整版的大模型 AI 学习和面试资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

这是一份大模型从零基础到进阶的学习路线大纲全览,小伙伴们记得点个收藏!

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;
第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;
第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;
第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;
第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;
第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;
第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。
100套AI大模型商业化落地方案

大模型全套视频教程

200本大模型PDF书籍

👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;
• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;
• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;
• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。
LLM面试题合集

大模型产品经理资源合集

大模型项目实战合集

👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

为武汉地区的开发者提供学习、交流和合作的平台。社区聚集了众多技术爱好者和专业人士,涵盖了多个领域,包括人工智能、大数据、云计算、区块链等。社区定期举办技术分享、培训和活动,为开发者提供更多的学习和交流机会。
更多推荐



所有评论(0)