news 2026/4/18 7:35:23

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/4/17 2:02:07

免费且完全开源的金融平台,金融数据集软件openbb

首个免费且完全开源的金融平台 repo:https://github.com/OpenBB-finance/OpenBB 手册:https://docs.openbb.co/odp/python/quickstart agent:https://github.com/OpenBB-finance/agents-for-openbb 提供股票、期权、加密货币、外汇、宏观经济、固定收…

作者头像 李华
网站建设 2026/4/18 5:43:33

计算机18个专业避坑指南:谁是毕业即高薪的“宝藏”,谁是天坑?

一次搞懂计算机类18个本科专业方向的区别,谁是“宝藏”谁是“天坑”? 随着科技进步的日新月异,互联网在日常生活中所扮演的角色越来越重要。数字化、信息化的时代里,计算机类专业无疑是当今高考最热门且最具发展前景的志愿填报方…

作者头像 李华
网站建设 2026/4/18 3:50:41

利用云服务器自带的快照功能

一、灾备核心指标:明确 RTO 与 RPO 目标​云服务器灾备的核心是平衡业务连续性与成本,需先定义两大关键指标:恢复时间目标(RTO)与恢复点目标(RPO)。RTO 指故障后业务恢复的最长可接受时间&#…

作者头像 李华
网站建设 2026/4/18 3:47:42

从一场千人共赴的准业主家宴,看这家房企前置化社区运营底气!

2026年2月2日,西安,寒冬未褪。有一家房企,却做了一件很“超前”的事,温暖了人心。 还未开盘,就把准业主们聚到了一起,举办了一场五星级规格的千人家宴。当别人都在抢营销热度时,这家房企已经开…

作者头像 李华