news 2026/5/1 9:51:37

MCP和FastMCP的使用

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
MCP和FastMCP的使用

一、基础概念

1.mcp是什么

  • 模型上下文协议,实现LLM应用与外部数据源和工具之间的无缝集成

2.mcp消息交换协议

  • JSON-RPC 2.0
  • 好处:使用JSON作为数据格式,兼容各种编程语言、简单易用、轻量灵活

3.通信模式

(1)STDIO 模式

  1. STDIO是一种基于标准输入(stdin)和标准输出(stdout)的本地通信方式
  2. MCP客户端启动一个子进程(MCP Server),通过stdin和stdout交换JSON-RPC消息实现通信

(2)SSE 模式

        1.概念
  • SSE是一种基于HTTP协议的通信技术,允许Server主动实时向Client推送消息
        2.特点
  • 单向(仅Server →Client),严格的说,是一种HTTP Post(Client->Server) + HTTP SSE(Server->Client)的伪双工通信模式
  • 基于HTTP协议
  • 适合实时消息推送场景
        3.通信过程
  • 1.连接建立:Client首先请求建立SSE连接,Server“同意”后生成并推送唯一的Session ID
  • 2.请求发送:Client通过HTTP POST发送JSON-RPC2.0请求
  • 3.请求接收确认:Server接收请求后立即返回202(Accepted)状态码,表示已接受请求
  • 4.异步处理:Server应用框架会自动处理请求,根据请求中的参数,决定调用某个工具或资源
  • 5.结果推送:处理完成后,Server通过SSE通道推送JSON-RPC2.0响应,
  • 6.结果匹配:Client的SSE连接侦听接收到数据流后,会根据RequestID将接收到的响应与之前的请求匹配
  • 7.连接断开:在Client完成所有请求后,断开SSE连接,会话结束
        4.存在问题
  • 需要维护两个独立的连接端点
  • 有较高的连接可靠性要求。一旦SSE连接断开,Client无法自动恢复,需要重新建立新连接,导致上下文丢失
  • Server必须为每个Client维持一个高可用长连接,对可用性和伸缩性提出挑战
  • 强制所有Server向Client的消息都经由SSE单向推送,缺乏灵活性

(3)StreamableHTTP模式

        1.StreamableHTTP特性
  • 允许无状态的Server存在,不依赖长连接。有更好的部署灵活性与扩展能力
  • 对Server中间件的兼容性更好,只需要支持HTTP即可,无需做SSE处理
  • 允许根据自身需要开启SSE响应或长连接,保留了现有规范SSE模式的优势

二、FastMCP环境搭建

1.安装包

#安装包 pip install "mcp[cli]"

2.简单示例

# 导入这个包才能使用Inspector from mcp.server.fastmcp import FastMCP # 生产导入包 #from fastmcp import FastMCP mcp = FastMCP("Math") @mcp.tool() def add(a: int, b: int) -> int: """Add two numbers""" return a + b @mcp.tool() def multiply(a: int, b: int) -> int: """Multiply two numbers""" return a * b if __name__ == "__main__": mcp.run(transport="stdio")

3.Inspector方式启动

mcp dev server.py(python文件名) 如果是http模式,需要先启动服务端

4.官方网址

FastMCP框架网址: https://gofastmcp.com/servers/tools#advanced-metadata-with-field

三、通信模式代码示例

1.stdio模式

(1)服务端代码

from fastmcp import FastMCP mcp = FastMCP("Math") @mcp.tool() def add(a: int, b: int) -> int: """Add two numbers""" return a + b @mcp.tool() def multiply(a: int, b: int) -> int: """Multiply two numbers""" return a * b if __name__ == "__
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 5:49:04

Java遇上AI:JBoltAI框架让智能开发更简单

在科技飞速发展的今天,人工智能(AI)已经渗透到我们生活的方方面面。而对于广大的Java开发者来说,如何利用自己熟悉的Java语言,搭上AI这趟快车,成为了一个值得探讨的话题。今天,我们就来聊聊JBol…

作者头像 李华
网站建设 2026/5/1 8:15:03

Django+vue音乐热度数据分析及音乐推荐系统

标题:Djangovue音乐热度数据分析及音乐推荐系统文档介绍:绪论1.1研究背景与意义在数字化时代,音乐作为一种重要的文化娱乐形式,已经渗透到人们生活的方方面面。随着网络技术的快速发展,音乐资源日益丰富,音…

作者头像 李华
网站建设 2026/5/1 4:53:24

火山引擎记忆库Memo发布

火山引擎记忆库Memo(官方名称为火山引擎记忆库 Mem0)已于2026年2月2日正式发布,这是火山引擎推出的AI应用记忆系统托管服务,旨在为智能应用提供长期记忆能力,解决大模型"上下文窗口局限"和"会话记忆清零…

作者头像 李华
网站建设 2026/5/1 4:53:00

数据库性能优化

一、优化核心思路:分层递进策略优化层次优化手段预期收益实施难度SQL与索引​慢查询分析、索引优化性能提升50%-90%低(见效快)架构设计​分库分表、读写分离提升数倍至数十倍中(需改造)参数配置​内存分配、连接池调优…

作者头像 李华
网站建设 2026/5/1 4:53:51

【收藏】一文搞懂LLM、RAG、Agent、MCP的关系,AI技术路线不再迷茫!

文章解析了AI四大核心概念的关系:LLM是基础智商,RAG解决知识过时问题,Agent实现主动思考,MCP打通外部工具调用。四者协同使AI从对话玩具进化为能解决问题的数字员工,通过投资分析实例展示了它们如何配合完成复杂任务&a…

作者头像 李华