【MCP | 模型上下文协议】
MCP(ModelContextProtocol)是Anthropic推出的标准化协议,旨在实现大型语言模型与外部工具的安全高效交互。它支持三种传输方式:标准输入输出(简单本地调试)、服务器发送事件SSE(已弃用)和可流式HTTP(双向通信)。SpringAI可通过引入依赖和配置yaml/json文件来调用MCP服务器,支持外部文件读取或直接配置参数。MCP解决了AI工具间的互操作性问题,被誉为&
摘要:
本文旨在帮助新手快速了解MCP,MCP是Anthropic推出的标准化协议,旨在实现大型语言模型与外部工具的安全高效交互。它支持三种传输方式:标准输入输出(简单本地调试)、服务器发送事件SSE(已弃用)和可流式HTTP(双向通信)。SpringAI可通过引入依赖和配置yaml/json文件来调用MCP服务器,支持外部文件读取或直接配置参数。MCP解决了AI工具间的互操作性问题,被誉为"AI界的USB-C接口"。
一,MCP定义
MCP 即 Model Context Protocol,模型上下文协议,是由 Anthropic 公司于 2024 年 11 月推出并开源的一项创新标准。
1,MCP优势
MCP 旨在实现大型语言模型与外部数据源、工具和服务之间的标准化、安全和高效交互,类似于 AI 界的 “USB-C 端口”。它定义了一套通用的消息格式和交互流程,让 AI 模型能够以统一的方式与各种外部工具进行 “对话”,打破了不同 AI 模型和工具之间的壁垒。
2,MCP与Tools
MCP可以理解为一些公共独立部署的web服务与多个AI应用对接所需要遵守的协议,解决AI应用的Tools开发工作量以及单个AI应用的“信息孤岛问题”
二,MCP的三种传输方式
1,标准输入输出(stdio)
这是最基础的传输方式,使用标准输入(stdin)和标准输出(stdout)进行通信,类似于 Python 的 subprocess.Popen,然后通过 write/read stdout 来实现。其实现简单,无需额外网络配置,适合本地调试和 CLI 工具开发,以及简单的进程间通信,但适用场景有限。
2,服务器发送事件(SSE,已弃用)
SSE 模式利用 HTTP 长连接实现服务器向客户端的单向实时通信,它通过 HTTP POST 请求实现客户端到服务器通信,同时支持服务器到客户端流式传输。该方式适合大量客户端连接但只需服务器推送的场景,例如服务器需要向客户端实时推送消息通知等。
3,可流式 HTTP(Streamable HTTP)
可流式 HTTP 模式提供了更灵活的 HTTP 双向通信能力,是一种有状态的实现方式,能够感知中断。它不像 SSE 那样必须一直保持连接,客户端和服务器可以随时相互发送消息,支持双向流式传输,适合需要双向互动和更复杂通信的远程场景,如复杂的 Web 应用程序中客户端与服务器之间的频繁交互
三,Spring AI调用公共MCP_Server
1,引入依赖(sse/stdio)
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-starter-mcp-client-webflux</artifactId>
</dependency>
2,配置yaml文件
(1)外部json文件读取(推荐)
spring:
ai:
mcp:
client:
enabled: true
request-timeout: 60000
stdio:
servers-configuration: mcp-servers-config.json
(2)直接配置在yaml文件
spring:
ai:
mcp:
client:
enabled: true
request-timeout: 60000
stdio:
connections:
server1:
command: "cmd"
args:
- "/c"
- "npx"
- "-y"
.......
env:
API_KEY: sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
更多推荐
所有评论(0)