news 2026/5/16 3:02:12

SpringAI MCP模型上下文协议(七)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
SpringAI MCP模型上下文协议(七)

MCP介绍与原理

MCP(Model Context Protocol,模型上下文协议)是 Anthropic 于 2024 年 11 月推出的开放标准,旨在为大型语言模型(LLMs)提供统一接口,以便连接和调用外部数据源和工具。

目前,各大 LLM 平台(如 Deepseek、ChatGPT、Claude)普遍支持 Function Calling,允许模型在需要时调用特定函数(如访问网络、查询数据库等)来扩展能力。

MCP的核心是对大模型调用外部工具建立一个标准化流程。MCP基于 Function Calling,进一步定义了从请求构建、发送、执行到结果返回的标准化流程。通过 MCP,模型可以以统一方式与各种外部工具和数据源交互,极大提升了跨平台兼容性和 AI 应用开发效率。

MCP 与 Function Calling 的区别和联系如下:

Function Calling :是 LLM 内部定义的一组函数,通过 JSON schema 让 LLM知道有哪些功能能调用。
MCP:在 Function Calling 基础上,进一步标准化了函数调用的完整流程,包括请求的构建、发送、执行以及结果的返回。
简单来说,MCP 是对 Function Calling 的扩展与升级,实现了更高层次的抽象和更强的可扩展性。可以将 MCP 理解为 AI 世界里的“USB-C标准”,为模型接入各种数据源和工具提供了统一接口,确保连接便捷且安全。

MCP 遵循客户端-服务器架构,角色主要包含三部分:

MCP Host
运行 LLM(如 Claude、ChatGPT、Deepseek)的实体节点,如果使用的LLM为线上模型,可以忽略这部分。

MCP Client
运行着与大模型对话的客户端(可能会使用工具)叫做MCP Client。其与 MCP Server 保持 1:1 连接,负责解析模型请求,如果使用工具会将请求转发到对应 MCP Server。

MCP Server
实际运行外部工具(如访问文件系统、发送邮件、查询日历)的服务端叫做MCP Server。负责处理请求并将结果返回给 Client。

MCP Cilent与MCP Server之间有两种通信机制:Stdio(标准输入/输出)和SSE(Server-Sent-Event,服务器发送事件),两种机制介绍如下:

Stdio(标准输入/输出):当服务器和客户端同时运行在本机时,可以使用Stdio机制。
SSE(Server-Sent-Event):当服务器部署在远程服务器上,客户端通过HTTP 请求发送消息使用这种方式。

MCP Java SDK 架构

上图中,McpClient处理客户端操作,McpServer管理服务端操作,两者都使用McpSession进行通信管理。传输层(Mcp Transport)负责处理JSON-RPC 消息的序列化和反序列化,支持三种传输实现:STDIO、Spring MVC SSE、Spring WebFlux SSE,三者区别如下:

STDIO:基于进程间的标准输入/输出(STDIO)传输,支持单进程,同步交互处理消息。适用于MCP 服务端和客户端都在同一节点上集成。
Spring MVC SSE(HTTP SSE):基于Spring MVC的SSE传输,支持Servlet线程池,阻塞式处理消息。适用于普通的Web应用。
Spring WebFlux SSE:官方建议方式。基于Spring WebFlux的反应式SSE,支持高并发、低延迟,响应式处理消息。适用于高并发的web微服务。

对于以上不同的传输方式,Spring AI 提供了多个启动器(starter),简化MCP在SpringBoot中的使用。

*客户端Starter:

spring-ai-starter-mcp-client:支持 STDIO 与 HTTP-SSE。

spring-ai-starter-mcp-client-webflux:基于 WebFlux 的 SSE 客户端实现。

* **服务端Starter:**

spring-ai-starter-mcp-server:支持 STDIO 传输。

spring-ai-starter-mcp-server-webmvc:基于 Spring MVC 的 SSE 服务端实现。

spring-ai-starter-mcp-server-webflux:基于 WebFlux 的 SSE 服务端实现。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/16 3:02:09

从peg/rampart看现代API网关的配置即代码与DSL驱动架构

1. 项目概述:从“peg/rampart”看现代API网关的架构哲学如果你在微服务架构里摸爬滚打过几年,肯定对API网关这个概念不陌生。它就像是整个分布式系统的“前台”和“保安”,所有外部请求都得先经过它,由它来负责路由、认证、限流、…

作者头像 李华
网站建设 2026/5/16 3:01:28

基于MCP协议与Playwright的AI浏览器自动化实战指南

1. 项目概述:一个连接浏览器与AI的“智能副驾”最近在折腾AI应用开发,特别是想让大语言模型(LLM)能像真人一样操作网页、获取实时信息,而不是只能对着训练时“冻结”的知识库空谈。这让我找到了一个非常有意思的项目&a…

作者头像 李华
网站建设 2026/5/16 2:59:19

基于STM32F103C8T与FreeJoy打造高性价比模拟飞行控制面板

1. 硬件选型与准备 想要打造一款高性价比的模拟飞行控制面板,硬件选型是关键的第一步。STM32F103C8T6作为一款性价比极高的ARM Cortex-M3内核微控制器,价格通常在10-20元之间,性能却足够应对大多数模拟飞行控制需求。我实测过市面上常见的几种…

作者头像 李华
网站建设 2026/5/16 2:58:43

ARM Cortex-M处理器仿真与Iris组件深度解析

1. ARM Cortex-M系列处理器仿真技术概述在嵌入式系统开发领域,处理器仿真技术已经成为不可或缺的工具链环节。作为ARM架构中专门面向微控制器市场的产品线,Cortex-M系列处理器凭借其优异的能效比和实时性能,广泛应用于物联网终端、工业控制和…

作者头像 李华
网站建设 2026/5/16 2:58:37

LT6110远程电压补偿技术原理与应用

1. 远程负载电压补偿技术解析在工业自动化、数据中心等分布式供电系统中,工程师们经常面临一个经典难题:当电源与负载之间存在较长距离时,导线电阻导致的电压下降会显著影响负载端的供电质量。这种现象的本质是欧姆定律(VIR&#…

作者头像 李华
网站建设 2026/5/16 2:58:04

ARM调试机制中的不可预测行为分析与应对策略

1. ARM调试机制概述与不可预测行为背景在嵌入式系统开发领域,ARM架构处理器凭借其优异的能效比和丰富的调试功能,已成为各类嵌入式设备的首选。调试功能作为开发过程中不可或缺的工具链组成部分,其行为可预测性直接关系到系统调试的效率和可靠…

作者头像 李华