第18章-MCP

第 18 章:MCP

使用 Model Context Protocol 标准化连接外部工具、资源和 Prompt,让 AI 应用与能力提供方解耦。

前言

Tool Calling 解决单个应用如何把 Java 能力提供给模型。能力越来越多、由不同进程或团队维护时,需要统一的发现和调用协议。MCP 定义了 Client 与 Server 之间交换能力的标准方式。

一、MCP 是什么

MCP 是面向 AI 应用上下文和工具连接的协议。它规定双方如何初始化、协商能力、列出工具或资源、发起调用并返回结果。

text 复制代码
AI Application → MCP Client ⇄ MCP Server → Tools / Resources / Prompts

协议统一的是通信方式,不负责判断业务结果是否正确。

二、为什么需要 MCP

  • 工具实现与 AI 应用解耦;
  • 不同语言和进程可以按协议互通;
  • Client 可以动态发现 Server 能力;
  • 同一 MCP Server 可以服务多个 AI 应用;
  • 工具、资源和 Prompt 有统一描述方式。

如果能力只在一个简单应用内部使用,直接 Tool Calling 可能更简单。MCP 不是所有项目的必选项。

三、MCP Client

Client 负责:

  • 建立和维护连接;
  • 初始化并协商协议能力;
  • 获取工具、资源和 Prompt 列表;
  • 发送调用请求;
  • 把返回结果交给 ChatClient 或 Agent。

在 Spring AI 中,MCP Client 暴露的工具可以适配为模型可调用的 ToolCallback。

四、MCP Server

Server 负责把真实能力按协议暴露出来:

text 复制代码
工具描述 / 参数 Schema
    ↓
接收调用请求
    ↓
认证、校验、执行
    ↓
标准化返回结果

Server 仍然必须执行权限、参数和业务校验,不能因为请求来自 MCP Client 就默认可信。

五、Tools、Resources 与 Prompts

能力 作用
Tools 可执行操作或查询
Resources 可读取的数据或内容
Prompts 可复用的提示模板

不是所有 Server 都必须实现全部能力。Client 应以协商结果为准。

六、传输方式

MCP 可以使用本地进程标准输入输出或基于网络的传输。选择取决于部署方式:

  • 本地 stdio:适合桌面工具和同机子进程;
  • 网络传输:适合远程共享服务,但需要更严格的认证、TLS 和访问控制。

不要把仅绑定本机的 Server 无保护地暴露到公网。

七、Spring AI 中的基本接入思路

text 复制代码
配置 MCP Client
    ↓
连接一个或多个 Server
    ↓
发现 ToolCallback
    ↓
注册给 ChatClient
    ↓
模型选择并调用工具

Starter、配置属性和具体 API 会随版本变化,项目必须使用同一版本的官方示例,不能混用早期实验接口。

八、MCP 与普通 Tool Calling 的关系

Tool Calling 是模型与工具之间的交互机制;MCP 是应用发现和连接外部能力的协议。MCP Server 暴露的工具最终仍可进入 Tool Calling 流程。

text 复制代码
Tool Calling:模型如何提出工具调用
MCP:工具从哪里发现、怎样跨进程调用

九、连接多个 Server

多个 Server 可能出现同名工具。应用应设置命名空间、白名单或显式映射,避免模型选错。

只向模型暴露当前业务需要的能力,不要把所有已连接 Server 的工具无条件注册。

十、安全边界

  • 审核 Server 来源和代码;
  • 限制文件、网络和命令权限;
  • 使用认证和加密传输;
  • 工具按最小权限运行;
  • 高风险操作要求用户确认;
  • 记录调用人、参数摘要和结果;
  • 对返回资源执行大小和内容限制;
  • 防范工具描述和资源中的 Prompt Injection。

MCP 提高连接便利性,也扩大了攻击面。

十一、失败与可用性

需要处理连接失败、能力列表变化、Server 超时、工具执行失败和协议版本差异。远程能力不应拖垮整个 AI 服务,应设置超时、隔离和降级策略。

十二、从 API 进入源码

text 复制代码
MCP Client AutoConfiguration
    ↓
Client Session / Transport
    ↓ listTools()
MCP Tool Callback Provider
    ↓
ChatClient tools

阅读时关注连接生命周期、能力刷新、工具名映射、参数 Schema 和异常转换。

十三、常见误区

  • MCP 是新的大模型:它是连接协议。
  • 使用 MCP 后不需要 Tool Calling:MCP 工具仍通过模型工具调用机制使用。
  • 已连接 Server 的工具都安全:Server 是外部信任边界。
  • MCP 自动解决权限:认证授权仍属于应用和 Server。
  • 工具越多 Agent 越强:过多能力会增加误选和安全风险。

十四、本章总结

MCP 把 AI 应用与能力提供方解耦,统一工具、资源和 Prompt 的发现与调用。生产使用的核心不是"连上 Server",而是能力治理、最小权限和稳定性。

完整源码

text 复制代码
源码地址:待补充
对应章节:chapter-18-mcp

参考资料

下一章:Agent

下一章将组合模型、工具、Memory 和执行循环,理解 Agent 如何围绕目标持续决策与行动。

相关推荐
SEO_juper几秒前
Go 站点地图生成器:从首页爬全站,一键生成 sitemap.xml
xml·开发语言·人工智能·golang·node.js·seo·外贸独立站
长弓三石2 分钟前
Spring Boot 4.1 + AgentScope:企业级 Agent 平台的 MCP 双向集成实战
人工智能·spring boot·后端·harness·开源智能体
乌恩大侠1 小时前
从 5G 通信到厘米级感知:基于 NVIDIA Aerial、SRS 与 UL-TDOA 构建 6G 无线定位实验平台
人工智能·5g·电信大模型
广州灵眸科技有限公司8 小时前
4G 模组开机自连 systemd 服务方案:基于灵眸科技EAI1106--Core-T
运维·服务器·科技
云和数据.ChenGuang8 小时前
Python 重写(Override)深度解析:从 MRO 到 super() 的完整机制
java·开发语言·人工智能·python·langchain·1024程序员节
西西木科技丨Shopify开发机构8 小时前
CalDigit TS4案例:AI产品图的Shopify整站接入与验收
人工智能·shopify·独立站
2601_965448879 小时前
AI视频制作:做系列节气民俗视频音色不统一,AI 音色克隆省事的方法
人工智能·机器学习·音视频
美狐美颜SDK开放平台9 小时前
视频美颜SDK试用DEMO阶段应该测试什么?直播APP接入实操指南
开发语言·人工智能·深度学习·音视频·美颜sdk·直播美颜sdk·第三方美颜sdk
HRaitest9 小时前
秋招技术岗招聘提效:三类 AI 招聘方案的技术底层与选型逻辑
大数据·人工智能·求职招聘·ai-native
天远数科9 小时前
零信任架构实战:基于天远企业股权变更构建自动化商业银行对公授信存续期股权异动与资产抽逃预警网关
运维·人工智能·架构·自动化