2026/5/24 5:42:57
网站建设
项目流程
建设机械网站咨询,哈尔滨公共资源交易中心官网,wordpress网址的域名怎么改,门户网站的细分模式有一、基础概念
1.mcp是什么 模型上下文协议,实现LLM应用与外部数据源和工具之间的无缝集成 2.mcp消息交换协议 JSON-RPC 2.0 好处:使用JSON作为数据格式,兼容各种编程语言、简单易用、轻量灵活 3.通信模式
(1)STDIO 模式 STDIO是一种基于标准输入(stdin)和标准输出(std…一、基础概念1.mcp是什么模型上下文协议,实现LLM应用与外部数据源和工具之间的无缝集成2.mcp消息交换协议JSON-RPC 2.0好处:使用JSON作为数据格式,兼容各种编程语言、简单易用、轻量灵活3.通信模式(1)STDIO 模式STDIO是一种基于标准输入(stdin)和标准输出(stdout)的本地通信方式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 ID2.请求发送: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__ == "__