MCP协议:AI时代的HTTP,你必须懂
📢 本文是《Java开发者玩转AI Agent》专栏第3篇,免费阅读
前言
如果你是Web开发者,你一定知道HTTP协议。
没有HTTP,就没有今天的互联网。
2026年,AI领域也有一个类似的协议正在成为标准:MCP(Model Context Protocol)。
不懂MCP,就像20年前不懂HTTP一样,你会被时代甩开。
一、MCP是什么?
1.1 一句话解释
MCP是Anthropic公司推出的协议,用来标准化AI模型和外部工具之间的通信。
1.2 类比理解
| 概念 | Web时代 | AI时代 |
|---|---|---|
| 协议 | HTTP | MCP |
| 服务器 | Web Server | MCP Server |
| 客户端 | 浏览器 | AI模型 |
| 资源 | 网页 | 工具、数据、服务 |
| 请求 | HTTP Request | Tool Call |
| 响应 | HTTP Response | Tool Result |
MCP就是AI时代的HTTP。
二、为什么需要MCP?
2.1 没有MCP之前
每个AI模型对接工具都要单独开发:
ChatGPT ←→ 天气API(定制开发)
ChatGPT ←→ 数据库(定制开发)
ChatGPT ←→ 邮件系统(定制开发)
DeepSeek ←→ 天气API(重新开发)
DeepSeek ←→ 数据库(重新开发)
DeepSeek ←→ 邮件系统(重新开发)
问题:
- 每个模型都要单独对接
- 工具开发者要适配多个模型
- 重复劳动,效率低下
2.2 有了MCP之后
┌─────────────┐
│ MCP Server │
│ (天气服务) │
└──────┬──────┘
│
┌───────────┼───────────┐
│ │ │
▼ ▼ ▼
ChatGPT DeepSeek Claude
好处:
- 工具开发者只需实现一次MCP Server
- 所有支持MCP的模型都能调用
- 标准化、可复用、生态繁荣
三、MCP的核心概念
3.1 MCP Server
提供工具和资源的服务端。
// 一个简单的MCP Server示例
public class WeatherMcpServer {
// 提供"查询天气"工具
@Tool("get_weather")
public String getWeather(@Param("city") String city) {
// 调用天气API
return "北京今天晴,25°C";
}
// 提供"天气数据"资源
@Resource("weather://today")
public String getTodayWeather() {
return "全国天气概况...";
}
}
3.2 MCP Client
调用MCP Server的客户端,通常是AI模型或Agent框架。
3.3 三大核心能力
| 能力 | 说明 | 示例 |
|---|---|---|
| Tools(工具) | AI可以调用的函数 | 查天气、发邮件、查数据库 |
| Resources(资源) | AI可以读取的数据 | 文件内容、数据库记录 |
| Prompts(提示词) | 预定义的提示词模板 | 代码Review模板、翻译模板 |
四、MCP vs 传统API
| 对比项 | 传统API | MCP |
|---|---|---|
| 发现方式 | 需要文档 | 自描述 |
| 调用方式 | 写代码调用 | AI直接调用 |
| 参数说明 | 看文档 | 模型自动理解 |
| 错误处理 | 自定义 | 标准化 |
| 生态 | 各自为战 | 统一标准 |
举个例子:
传统API调用天气服务:
// 1. 看文档了解API地址和参数
// 2. 写代码构造请求
// 3. 处理响应和错误
HttpResponse response = HttpClient.get("https://api.weather.com/v1?city=北京");
WeatherData data = parseResponse(response);
MCP调用天气服务:
用户:"北京今天天气怎么样?"
AI:自动调用 weather.get_weather(city="北京")
AI:"北京今天晴,25°C,适合外出。"
开发者只需要实现MCP Server,AI自动知道怎么调用。
五、MCP的技术架构
┌─────────────────────────────────────────────────┐
│ MCP Client │
│ (AI模型/Agent框架) │
└──────────────────────┬──────────────────────────┘
│
│ JSON-RPC 2.0
│
┌──────────────────────▼──────────────────────────┐
│ MCP Server │
├─────────────────────────────────────────────────┤
│ ┌───────────┐ ┌───────────┐ ┌───────────┐ │
│ │ Tools │ │ Resources │ │ Prompts │ │
│ │ (工具) │ │ (资源) │ │ (提示词) │ │
│ └───────────┘ └───────────┘ └───────────┘ │
└─────────────────────────────────────────────────┘
│
▼
┌───────────────┐
│ 外部服务/数据 │
│ (API/DB/文件) │
└───────────────┘
通信协议
MCP使用JSON-RPC 2.0,支持两种传输方式:
- stdio:本地进程通信
- HTTP + SSE:远程服务通信
六、MCP的实际应用
6.1 已经支持MCP的产品
| 产品 | 公司 | 支持程度 |
|---|---|---|
| Claude Desktop | Anthropic | 完整支持 |
| Cursor | Cursor Inc | 完整支持 |
| VS Code | Microsoft | 支持中 |
| IntelliJ IDEA | JetBrains | 插件支持 |
6.2 现有的MCP Server
GitHub上已经有大量现成的MCP Server:
| 服务器 | 功能 |
|---|---|
| filesystem | 文件读写 |
| postgres/mysql | 数据库操作 |
| github | GitHub操作 |
| slack | Slack消息 |
| google-drive | Google文档 |
| puppeteer | 浏览器自动化 |
这意味着:你不需要从零开始,站在巨人肩膀上就行。
七、Java开发者的机会
7.1 为什么Java适合做MCP Server?
- 企业级应用多:很多内部系统都是Java写的
- 生态完善:Spring Boot、MyBatis等框架成熟
- 性能可靠:高并发、稳定性要求高的场景
7.2 你能做什么?
-
把现有系统封装成MCP Server
- 老旧系统 → AI可调用的服务
- 数据库 → AI可查询的资源
-
开发通用MCP Server
- 发布到开源社区
- 提供付费版本
-
为企业搭建MCP网关
- 统一管理MCP Server
- 权限控制、监控、日志
八、一个简单的例子
8.1 需求
让AI能查询公司员工信息。
8.2 实现MCP Server
@Component
public class EmployeeMcpServer {
@Autowired
private EmployeeMapper employeeMapper;
@Tool("查询员工信息")
public Employee getEmployee(@Param("工号") String employeeId) {
return employeeMapper.selectById(employeeId);
}
@Tool("搜索员工")
public List<Employee> searchEmployees(@Param("关键词") String keyword) {
return employeeMapper.search(keyword);
}
@Resource("员工总数")
public int getTotalCount() {
return employeeMapper.count();
}
}
8.3 AI调用效果
用户:"帮我查一下工号A001的员工信息"
AI:调用 get_employee(employeeId="A001")
AI:"工号A001是张三,Java高级工程师,入职时间2020年..."
用户:"搜索一下会Python的员工"
AI:调用 search_employees(keyword="Python")
AI:"找到3位会Python的员工:..."
九、学习路线
第1步:理解MCP概念(本文)
↓
第2步:使用现成的MCP Server
↓
第3步:用Java实现简单的MCP Server
↓
第4步:把现有系统封装成MCP Server
↓
第5步:设计企业级MCP架构
十、下一篇预告
下一篇,我会讲解:RAG是什么?为什么企业都在用
- RAG解决了什么问题?
- RAG的原理是什么?
- 为什么RAG是企业AI落地的关键?
总结
MCP = AI时代的HTTP
- 标准化AI模型和工具的通信
- 一次开发,所有AI都能调用
- Java开发者有天然优势
现在学MCP,就像20年前学HTTP一样,是明智的选择。
💬 你对MCP有什么疑问?欢迎评论区交流
📌 关注我,带你从Java开发者转型AI工程师
标签 :#MCP <#Model> Context Protocol <#AI> Agent <#Java> <#Anthropic> <#2026技术趋势>