📖 本章预览
本章为预览版本,展示部分核心内容。完整内容包含详细源码解析、实战代码和面试要点,加入知识星球即可解锁全部章节。
第14章 MCP 协议:一个标准打通所有 AI 工具生态
14.1 从 Function Calling 到 MCP:为什么需要协议
上一章讲了 Function Calling,LLM 可以调用你注册的函数。但有个问题:每个 AI 框架的工具注册方式都不一样。你在 Spring AI 里写的工具,LangChain 用不了;你在 OpenAI 注册的函数,换到通义千问又要改格式。
MCP(Model Context Protocol)解决的就是这个问题:定义一个统一的协议标准,让工具提供方只需要实现一次,所有支持 MCP 的 AI 应用都能直接用。
没有 MCP 的世界:
工具A → 适配 Spring AI 格式
工具A → 适配 LangChain 格式
工具A → 适配 OpenAI 格式
(每个工具要适配 N 个框架,N×M 的组合爆炸)
有了 MCP 的世界:
工具A → 实现 MCP Server(一次)
Spring AI → MCP Client ─┐
LangChain → MCP Client ─┤── 都能调用工具A
OpenAI → MCP Client ─┘
(每个工具实现一次,每个框架实现一次,N+M)
14.1.1 MCP 架构全景
┌─────────────────────────────────────────────────────┐
│ 你的 AI 应用 │
│ ┌─────────────┐ │
│ │ ChatModel │ │
│ │ (LLM 调用) │ │
│ └──────┬──────┘ │
│ │ Function Calling │
│ ┌──────▼──────┐ │
│ │ MCP Client │ ← Spring AI 内置 │
│ └──────┬──────┘ │
└─────────┼───────────────────────────────────────────┘
│ JSON-RPC 2.0(stdio / SSE / HTTP)
│
┌─────▼─────┐ ┌─────────────┐ ┌─────────────┐
│ MCP Server │ │ MCP Server │ │ MCP Server │
│ 文件系统 │ │ 数据库查询 │ │ 企业内部API │
└───────────┘ └─────────────┘ └─────────────┘
14.1.2 MCP 的三种能力
| 能力 | 说明 | 类比 |
|---|---|---|
| Tools | 可调用的函数 | Function Calling 的标准化版本 |
| Resources | 可读取的数据源 | 类似 REST API 的 GET |
| Prompts | 预定义的 Prompt 模板 | 可复用的提示词库 |
14.1.3 MCP 通信方式
三种传输方式:
1. stdio(标准输入输出)
应用 ←→ 子进程(通过 stdin/stdout 通信)
适用:本地工具,如文件系统、命令行工具
2. SSE(Server-Sent Events)
应用 ←→ HTTP 长连接
适用:远程服务,需要流式推送
3. HTTP(Streamable HTTP)
应用 ←→ 标准 HTTP 请求
适用:无状态的远程服务
14.2 实战一:接入社区 MCP Server
MCP 生态已经有大量现成的 Server,直接拿来用。
14.2.1 接入文件系统 MCP Server
// .kiro/settings/mcp.json 或项目配置
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/你的目录"],
"disabled": false
}
}
}
这个 Server 提供了文件读写、目录列表等工具,LLM 可以直接操作文件系统。
14.2.2 在 Spring AI 中编程接入 MCP Server
/**
* 通过 stdio 方式连接 MCP Server
* MCP Server 作为子进程启动,通过标准输入输出通信
🔒 解锁完整内容
本章剩余内容需要解锁后查看
以上仅为本章部分预览内容,完整内容包含更多深度源码解析、实战代码和面试要点。
加入知识星球你将获得:
- ✅ 全部 26 章完整内容 + 持续更新
- ✅ 配套源码 + 实战项目
- ✅ 一对一答疑 + 面试辅导
- ✅ 简历优化 + 内推机会
📚 本章完整目录
以下为本章完整目录结构,加入知识星球即可解锁全部内容。