MCP协议AI时代的HTTP

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,支持两种传输方式:

  1. stdio:本地进程通信
  2. 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?

  1. 企业级应用多:很多内部系统都是Java写的
  2. 生态完善:Spring Boot、MyBatis等框架成熟
  3. 性能可靠:高并发、稳定性要求高的场景

7.2 你能做什么?

  1. 把现有系统封装成MCP Server

    • 老旧系统 → AI可调用的服务
    • 数据库 → AI可查询的资源
  2. 开发通用MCP Server

    • 发布到开源社区
    • 提供付费版本
  3. 为企业搭建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技术趋势>

相关推荐
AI Coder 码农王2 分钟前
AgentScope Java v2 第5课,两个注解背后的调用链
人工智能
Bode_20023 分钟前
美的集团数智化创新‌
大数据·人工智能
kaixin_啊啊5 分钟前
【零基础学AI】第 19 章课后练习与答案
人工智能
A小码哥6 分钟前
RAG 召回差?先改切片和重排
人工智能
JAI科研6 分钟前
把一个 Qwen3.8的聊天模型改造成 JEV 决策模型
人工智能·语言模型·自然语言处理·chatgpt·transformer·vllm·sglang
瓶瓶持续学习中9 分钟前
空间智能与物理AI:国内厂商如何与英伟达协同发展
大数据·人工智能·信息可视化·架构
阿乔外贸日记11 分钟前
外贸风控|美国市场7大类欺诈模式解析与风控框架
大数据·人工智能·物联网·microsoft·智能手机
金融小师妹16 分钟前
时间序列分析:历次联储利率调整与政策周期变化研究
大数据·人工智能·逻辑回归
水如烟18 分钟前
孤能子视角:算账要算到存续------脱锚环境下的能效判据层上移:安全与发展、认知与伦理,是存续层能效的两个对位轴
人工智能
tellmewhoisi20 分钟前
深度学习24:PyTorch:Sequential构建模型
人工智能·pytorch·深度学习