MCP快速入门(for Java)

什么是MCP

Model Control Protocol(MCP)是由AI研究机构Anthropic在2024年11月首次提出的新型协议规范,旨在解决大语言模型LLM应用中的上下文管理难题,MCP 标准化了如何将上下文和工具集成到 AI 应用程序的生态系统中。作为LLM交互领域的创新标准,MCP协议在发布后短短一年内已进行了多次更新,最近一次更新是在2025-03-26(Key Changes - Model Context Protocol),包含 添加了一个基于 OAuth 2.1 的全面的授权框架 等内容变更:

协议定义与核心价值

MCP是一套开放式的通信协议,它通过标准化:

  1. 上下文结构化表示(JSON Schema)
  2. 多轮对话状态跟踪机制
  3. 模型控制指令集

使开发者能够精准控制LLM的上下文窗口,解决传统对话系统中存在的:

  • 上下文丢失(Context Bleeding)
  • 指令冲突
  • 长文本处理低效等痛点

成熟度

目前MCP已被Claude系列模型原生支持,并在Llama 3、Mistral等开源模型中实现兼容。行业分析显示,超过43%的企业级LLM应用已开始采用MCP作为首选上下文管理方案(数据来源:2024 ML Stack调查报告)。

MCP的目标对象

刚开始接触MCP的开发者可能会进入一个误区,以为有了MCP后,LLM是不是可以直接调用MCP Server的能力(API)了,其实并不是,LLM实际上是无法感知MCP的存在的。

MCP(Model Control Protocol)的核心目标对象是LLM应用开发者,而不是LLM(大语言模型)本身。要理解这一点,我们需要明确LLM和LLM应用的区别:  

1. LLM vs. LLM应用

  • LLM(大语言模型):指底层的大模型(如GPT-4、Claude、Llama等),它们负责接收输入并生成文本输出,但本身不具备复杂的状态管理或上下文控制能力。  
  • LLM应用:指基于LLM构建的完整系统,如聊天机器人、AI助手、代码生成工具等。这些应用需要管理多轮对话、维护上下文、处理用户指令,并可能集成外部数据或API。  

2. 为什么LLM不能直接使用MCP

LLM本身是“无状态”的——它们仅对当前输入做出响应,而不会自动记住之前的交互。MCP的作用是让LLM应用能更高效地管理上下文,例如:

  • 维护对话历史(避免超出模型的上下文窗口限制)  
  • 动态调整提示词(prompt),确保LLM获得正确的背景信息  
  • 控制模型行为(如切换模式、调整生成参数)  

MCP协议定义了一套标准化的接口,让LLM应用能以结构化的方式与LLM交互,而不是让LLM自己去解析或执行这些逻辑。  

MCP作为外部协议而非模型内置机制,还有两大更关键原因:

  1. 训练成本问题:若MCP逻辑固化到LLM中,协议每次更新都需重新训练模型,带来极高的计算和迭代成本;

  2. 安全与权限挑战:若LLM直接通过MCP调用三方应用,权限管理(如数据访问、API鉴权)将难以控制,增加滥用风险。

因此,MCP设计为应用层协议,由外部系统管理上下文和资源,既保持LLM的通用性,又避免强耦合带来的运维负担。

3. MCP的目标用户

MCP主要面向:

  • LLM应用开发者:需要构建复杂对话系统或AI代理的工程师  
  • AI平台架构师:设计LLM基础设施,优化上下文管理和推理效率  
  • 企业级AI解决方案:需要稳定、可扩展的LLM交互协议  

简而言之,MCP不是让LLM自己“学会”管理上下文,而是为LLM应用提供一套标准化的控制机制,使开发者能更高效地构建可靠的AI系统。

MCP的主要角色和架构

MCP最核心的两个角色就是MCP客户端MCP服务端。参见:Model Context Protocol (MCP) :: Spring AI Reference

MCP Client

MCP 客户端是模型上下文协议 (MCP) 架构中的关键组件,负责建立和管理与 MCP 服务器的连接。对,你没听错,MCP体系中,客户端才是最复杂的,而且通常这个客户端也是由服务端应用(也就是前面说的LLM应用)来“使用”

它实现了协议的客户端功能,处理以下操作:

  • 协议版本协商以确保与服务器的兼容性
  • 能力协商以确定可用功能
  • 消息传输和 JSON-RPC 通信
  • 工具发现和执行
  • 资源访问和管理
  • 提示系统交互
  • 可选功能:
    • 根部管理
    • 采样支持
  • 同步和异步操作
  • 通信选择:
    • 基于 Stdio 的传输,用于基于进程的通信
    • 基于  SSE 客户端传输

你可以看到,通常是MCP客户端在“调用” LLM 和 MCP服务端 

MCP Server

MCP 服务器是模型上下文协议 (MCP) 架构中的基础组件,为客户端提供:

  • 资源:上下文和数据,供用户或 AI 模型使用。它们通常是 只读的,AI 模型可以读取资源数据,但不会直接修改或执行它们,所以一般是指数据库查询。
  • 提示:为用户提供模板化的消息和工作流程
  • 工具:AI模型执行的功能。它们通常是 动态的、有副作用的(如修改数据、发送消息、触发操作),所以一般是指AI调用

它实现了协议的服务器端,负责:

  • 服务器端协议操作实现

    • 工具曝光和发现

    • 基于 URI 访问的资源管理

    • 及时提供和处理模板

    • 与客户进行能力谈判

    • 结构化日志记录和通知

  • 并发客户端连接管理

  • 同步和异步 API 支持

  • 通信实施:

    • 基于 Stdio 的传输,用于基于

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值