使用fastapi-mcp改造fastapi服务为MCP服务供智能体使用案例
“ 使用MCP协议就可以解耦智能体和工具的开发,使得其可配置。”对智能体来说除了大模型之外,最重要的就是其工具;在之前的开发过程中,使用函数作为智能体的工具,但由于每家模型服务商的标准都不一样,因此开发起来相对比较麻烦,并且无法标准化;因此才有了MCP(模型上下文协议)的出现,目的就是统一智能体工具的开发,其作用就类似于USB接口。通过MCP协议就可以把智能体开发和工具开发完全拆分开来,智能体是智
“ 使用MCP协议就可以解耦智能体和工具的开发,使得其可配置。”
对智能体来说除了大模型之外,最重要的就是其工具;在之前的开发过程中,使用函数作为智能体的工具,但由于每家模型服务商的标准都不一样,因此开发起来相对比较麻烦,并且无法标准化;因此才有了MCP(模型上下文协议)的出现,目的就是统一智能体工具的开发,其作用就类似于USB接口。
通过MCP协议就可以把智能体开发和工具开发完全拆分开来,智能体是智能体,工具是工具;在需要的时候,直接把工具加入到智能体中即可使用,通过可插拔的方式,可以达到快速改造智能体功能的目的。
如果再把提示词和记忆模块做成动态可配置,那么就可以通过配置的方式,快速搭建不同功能的智能体
fastapi-mcp改造fastapi项目
什么是fastapi-mcp?
-
FastAPI-MCP是一个基于python FastAPI框架开发的开源项目,可以自动识别并暴露FastAPI接口为MCP工具
-
拥有FastAPI框架的所有优点,如异步高并发、独立远程部署、OpenAPI文档
-
提供SSE、mcp-remote接入方式,支持设置授权访问,适配各种支持MCP协议客户端
-
FastAPI-MCP开源地址:https://github.com/tadata-org/fastapi_mcp,原理图如下所示:

其实说了那么多,简单来说就是fastapi-mcp可以和fastapi无缝集成,直接把你的fastapi项目变成MCP服务,通过工具调用的方式动态集成到智能体中。
fastapi-mcp的主要功能:
- 自动发现与转换
:自动扫描FastAPI应用中的所有端点,转换为MCP工具格式,无需手动注册
- 文档完整性保留
:完整继承Swagger文档描述和参数校验规则,确保AI调用准确性
- 灵活部署模式
:支持挂载到原应用或独立部署,适配不同架构需求
- 智能端点筛选
:通过operation_id或标签控制暴露的接口范围
- 动态热更新
:运行时可刷新服务目录,自动包含新增端点
- 多协议支持
:原生兼容SSE协议,通过mcp-proxy适配非SSE客户端
如何运行fastapi-mcp?
fastapi-mcp的安装方式有两种,一种是使用uv,另一种是使用传统的pip。
# 使用uvuv add fastapi-mcp#使用pippip install fastapi-mcp
fastapi-mcp的挂载方式:
from fastapi import FastAPIfrom fastapi_mcp import FastApiMCPapp = FastAPI()mcp = FastApiMCP(app,# 可选参数name="My API MCP")# 将 MCP 服务器直接挂载到 FastAPI 应用mcp.mount()if __name__ == "__main__":uvicorn.run("index:app", host="0.0.0.0", port=8000, reload=True)
启动之后就可以通过http://localhost:8000/mcp访问mcp服务;当然,在fastapi服务中,可能你并不需要把所有的接口都暴露成mcp服务,因此你可以使用不同的参数来控制暴露的接口:
自定义暴露的端点
from fastapi import FastAPIfrom fastapi_mcp import FastApiMCPapp = FastAPI()# 只包含特定操作mcp = FastApiMCP(app,include_operations=["get_user", "create_user"])# 排除特定操作mcp = FastApiMCP(app,exclude_operations=["delete_user"])# 只包含具有特定标签的操作mcp = FastApiMCP(app,include_tags=["users", "public"])# 排除具有特定标签的操作mcp = FastApiMCP(app,exclude_tags=["admin", "internal"])# 结合操作 ID 和标签(包含模式)mcp = FastApiMCP(app,include_operations=["user_login"],include_tags=["public"])mcp.mount()
关于过滤的注意事项:
-
不能同时使用
include_operations和exclude_operations -
不能同时使用
include_tags和exclude_tags -
可以结合操作过滤和标签过滤(例如,使用
include_operations和include_tags) -
当结合过滤器时,将采用贪婪方法。匹配任一条件的端点将被包含
然后你就可以使用支持mcp服务的客户端连接mcp服务,如claude,cherry studio等等;只需要在这些工具的配置文件中加入以下配置:
# windows{"mcpServers": {"my-api-mcp-proxy": {"command": "mcp-proxy","args": ["http://127.0.0.1:8000/mcp"]}}}# macos{"mcpServers": {"my-api-mcp-proxy": {"command": "你自己安装的mcp-proxy路径 可以使用which mcp-proxy命令查找","args": ["http://127.0.0.1:8000/mcp"]}}}
总之,在智能体的开发中,使用MCP协议,可以把智能体的开发和工具的开发隔离开来,只需要按照标准的MCP协议开发即可;在智能体中就可以使用插拔的方式调用需要的工具。
如何学习AI大模型 ?
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。【保证100%免费】🆓
这份完整版的 AI 大模型学习资料已经上传CSDN,朋友们如果需要可以扫描下方二维码&点击下方CSDN官方认证链接免费领取 【保证100%免费】
读者福利: 👉👉CSDN大礼包:《最新AI大模型学习资源包》免费分享 👈👈
(👆👆👆安全链接,放心点击)
对于0基础小白入门:
如果你是零基础小白,想快速入门大模型是可以考虑的。
一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以根据这些资料规划好学习计划和方向。
要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。
对于从来没有接触过AI大模型的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。(全套教程文末领取哈)
很多朋友都不喜欢晦涩的文字,我也为大家准备了视频教程,每个章节都是当前板块的精华浓缩。

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。(全套教程文末领取哈)

光学理论是没用的,要学会跟着一起做,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战项目来学习。(全套教程文末领取哈)
随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。(全套教程文末领取哈)
截至目前大模型已经超过200个,在大模型纵横的时代,不仅大模型技术越来越卷,就连大模型相关的岗位和面试也开始越来越卷了。为了让大家更容易上车大模型算法赛道,我总结了大模型常考的面试题。(全套教程文末领取哈)
只要你是真心想学AI大模型,我这份资料就可以无偿分享给你学习,我国在这方面的相关人才比较紧缺,大模型行业确实也需要更多的有志之士加入进来,我也真心希望帮助大家学好这门技术,如果日后有什么学习上的问题,欢迎找我交流,有技术上面的问题,我是很愿意去帮助大家的!
这份资料由我和鲁为民博士共同整理,鲁为民博士先后获得了北京清华大学学士和美国加州理工学院博士学位,在包括IEEE Transactions等学术期刊和诸多国际会议上发表了超过50篇学术论文、取得了多项美国和中国发明专利,同时还斩获了吴文俊人工智能科学技术奖。目前我正在和鲁博士共同进行人工智能的研究。
资料内容涵盖了从入门到进阶的各类视频教程和实战项目,无论你是小白还是有些技术基础的,这份资料都绝对能帮助你提升薪资待遇,转行大模型岗位。


这份完整版的 AI 大模型学习资料已经上传CSDN,朋友们如果需要可以扫描下方二维码&点击下方CSDN官方认证链接免费领取 【保证100%免费】
(👆👆👆安全链接,放心点击)
更多推荐


所有评论(0)