当前位置: 首页 > news >正文

06 - MCP 模型上下文协议:统一 AI 工具的“Type-C 接口“

这是"从 LLM 到 Agent Skill"系列的第六篇。上一篇讲了 Tool 让模型能"调用"外部函数。但这里有个工程痛点——每个 AI 平台的工具接入方式都不一样。这一篇,我们聊聊正在改变这个局面的协议:MCP。


一、工具接入的"巴别塔"困境

让我们回到上一篇的场景:你写了一个get_weather函数,想让大模型能调用它。

然后你发现:

  • OpenAI要求的工具描述格式是这样的……

  • Anthropic(Claude)要求的格式是那样的……

  • Google Gemini又搞了一套自己的……

  • 国内的通义千问 / 文心一言 / DeepSeek也各有各的规范……

同一个get_weather,你需要写 5 套接入代码:

get_weather ├── openai_adapter.py # 适配 OpenAI 格式 ├── anthropic_adapter.py # 适配 Anthropic 格式 ├── gemini_adapter.py # 适配 Google 格式 ├── qwen_adapter.py # 适配通义千问格式 └── deepseek_adapter.py # 适配 DeepSeek 格式

这跟当年手机充电接口的情况一模一样——每个厂商都有自己的标准,出门要带一捆数据线。


二、MCP 是什么?

MCP(Model Context Protocol,模型上下文协议)就是来解决这个问题的。

MCP 是一套统一的工具接入标准协议。开发者按 MCP 规范写一次工具,该工具即可在所有支持 MCP 的 AI 平台上通用。

它由 Anthropic 在 2024 年底提出,目前正在快速获得社区和各大平台的支持。

2.1 一个直觉类比

手机充电接口的演变: ​ 过去:Micro-USB、Lightning、30-pin、磁吸……各搞各的 现在:Type-C 一统天下(至少在物理接口层面) ​ AI 工具的演变: ​ 过去:OpenAI Function、Anthropic Tool、Google Function……各搞各的 未来:MCP 一统天下

MCP 就是 AI 世界的"Type-C 接口"。


三、MCP 的核心架构

MCP 协议定义了三类角色:

┌──────────┐ MCP 协议 ┌──────────┐ │ │ ←──────────────→ │ │ │ MCP Host │ │ MCP Server│ │ (AI 客户端) │ │ (工具提供方)│ │ │ │ │ └──────────┘ └──────────┘ │ │ │ MCP 协议 │ 实现具体工具 │ │ ▼ ▼ ┌──────────┐ ┌──────────┐ │ MCP Client│ │ 天气 API │ │ (SDK) │ │ 文件系统 │ └──────────┘ │ 数据库 │ │ …… │ └──────────┘
角色是什么举例
MCP HostAI 应用本身Claude Desktop、VS Code + Claude、ChatGPT
MCP Client协议客户端,与 Server 通信内嵌在 Host 中的 SDK
MCP Server工具的提供方天气查询 Server、文件操作 Server、数据库 Server

3.1 通信方式

MCP 支持两种传输方式:

方式场景说明
stdio(标准输入输出)本地进程MCP Server 作为一个子进程运行,通过标准输入输出通信
HTTP + SSE远程服务MCP Server 作为远程 HTTP 服务,通过 Server-Sent Events 推送

四、MCP Server 的"工具暴露"

一个 MCP Server 启动后,会向 Host 暴露它拥有的工具列表。模型就能看到这些工具,并在需要时"调用"它们。

举个例子,一个天气 MCP Server 暴露的能力可能是:

{ "tools": [ { "name": "get_current_weather", "description": "获取指定城市的实时天气", "parameters": { "city": "城市名", "unit": "温度单位,celsius 或 fahrenheit" } }, { "name": "get_forecast", "description": "获取未来7天的天气预报", "parameters": { "city": "城市名", "days": "预报天数,1-7" } } ] }

这套描述是平台无关的。OpenAI、Anthropic、Google 都能消费同一份描述。


五、MCP 的生态现状

5.1 官方支持

平台MCP 支持情况
Claude Desktop原生支持
Claude Code原生支持
VS Code / Cursor通过插件支持
OpenAI2025 年宣布支持
Google Gemini跟进中
Continue / Cody社区集成中

5.2 社区 MCP Server 示例

社区已经涌现了大量开箱即用的 MCP Server:

  • 文件系统 Server:让 AI 读写本地文件

  • GitHub Server:让 AI 管理 Issue、PR、仓库

  • Postgres / SQLite Server:让 AI 直连数据库查询

  • Slack Server:让 AI 收发 Slack 消息

  • Puppeteer Server:让 AI 操控浏览器

  • 天气 / 地图 / 新闻 Server:各种实时数据

大部分 MCP Server 的安装只需要一行配置:

{ "mcpServers": { "weather": { "command": "npx", "args": ["-y", "@anthropic/mcp-server-weather"] } } }

六、MCP 的局限性

MCP 并不是完美的,目前有几个值得关注的问题:

6.1 协议仍处于早期

MCP 规范还在快速迭代中,API 可能发生 breaking change。目前生态还不够成熟。

6.2 安全考量

MCP Server 本质上是在本地执行的外部程序。如果安装了来源不明的 MCP Server,它可能有权限读取你的文件、访问你的网络。需要像对待 npm 包一样审慎。

6.3 不是所有平台都跟进了

虽然 OpenAI 和 Google 表达了支持,但实际的集成深度和进度各不相同。MCP 成为真正通用的标准还需要时间。


七、MCP 和 Tool 的关系

回到上一篇的内容:

  • Tool是单个函数(get_weather

  • MCP是工具的包装和传输标准(怎么描述、怎么发现、怎么调用、怎么返回)

打个比方:

概念类比
Tool一个 App(比如微信)
MCP应用商店的接口标准(App 怎么上架、怎么下载、怎么更新)

同样的 Tool,可以用 MCP 协议来发布,也可以用 OpenAI 原生格式来对接。MCP 的价值在于一套描述到处跑


八、总结

  1. 不同 AI 平台的工具接入规范不同,导致同一个工具需要写多套适配代码。

  2. MCP 是统一的工具接入标准协议,类比 Type-C——一次开发,多处通用。

  3. MCP 定义了 Host-Client-Server 三层架构,支持 stdio 和 HTTP 两种通信方式。

  4. MCP 生态正在快速成长,但协议仍处早期,安全和成熟度需要关注。

下一篇,我们将工具调用 + 自主决策结合起来,聊聊 AI 应用的终极形态——Agent(智能体)


本系列文章:

  1. LLM 大语言模型

  2. Token 与 Tokenizer

  3. Context 与 Context Window

  4. Prompt 提示词

  5. Tool 工具调用

  6. MCP 模型上下文协议← 你在这里

  7. Agent 智能体(待发布)

  8. Agent Skill(待发布)

http://www.jsqmd.com/news/900404/

相关文章:

  • 从CS231N作业到你的实验:Tiny-ImageNet数据集完整使用指南(含预处理与可视化)
  • 2026年智慧工地系统推荐榜单:工地人脸识别/塔吊防碰撞/AI视频巡检/扬尘监测/实名制考勤/车辆道闸/升降机监控/劳务管理平台全解析 - 品牌企业推荐师(官方)
  • 微信AI机器人终极指南:打造智能群聊助手的完整教程
  • G1舞蹈开发三步曲:从预设到强化学习
  • 【限时解密】头部咨询公司内部禁用的ChatGPT决策辅助工具黑名单:12个触发监管红线的操作模式
  • CUSUM控制图在Python金融风控中的应用:如何用它监测交易策略的失效?
  • DSM在零延迟仿真中的异常行为分析与解决方案
  • MIT-BIH ECG信号预处理避坑指南:中值滤波窗大小设置与边界失真处理实战
  • 品牌设计全案使用后交付偏差先分阶段确认验收标准
  • 告别命令行恐惧:Windows 10/11 下 SRA Toolkit 安装与配置保姆级图文教程
  • ChatGPT生日派对创意避坑指南:87%新手踩中的3类提示陷阱及权威修复路径
  • 4J36板材怎么选?国内主流厂家盘点,助您快速匹配优质供应商 - 品牌2025
  • Text to SQL准确率为什么上不去?三个核心难点
  • Mac IDEA 2026.1 Java开发痛点与智能化方案
  • 别再踩坑了!Ubuntu 20.04上TensorRT 8.x的deb安装保姆级避坑指南
  • 量子溢出检测电路在生物医学图像处理中的应用与Qiskit实现
  • 032、图像分类模型部署后精度下降?预处理管线一致性、归一化对齐与推理加速方案
  • Zotero 结合 Codex 打造智能学术工作流实战
  • 通过curl命令快速诊断taotoken api连接与认证问题的排查方法
  • Linux内核里dma_map_sg()怎么把零散内存‘粘’成连续IOVA?一个SMMUv3驱动的实战解析
  • 2026年 宝钢镀锌HC850/1180DHD+Z吉帕钢测评:超强车身用钢的行业标杆与选购推荐 - 品牌企业推荐师(官方)
  • Java高级全套教程(八)——微信支付超详细实战详解
  • Windows 10资源管理器CPU占用100%?别急着重装,用ProcessExplorer和‘干净启动’揪出真凶Network List Service
  • 2026年第二季度温州全屋定制直销厂家选择指南:品质与设计的双重考量 - 2026年企业资讯
  • 仅限前500名开放:ChatGPT视频脚本写作「反模板」训练营(含独家「人设温度值」校准表)
  • 企业级 Multi-Agent 灰度发布:金丝雀部署+流量切分的实操指南
  • RAG系列:#5 RAG中的11种分块策略
  • 【绝密工作流】高管私藏的ChatGPT目标校准术:融合PDCA×GTD×神经反馈原理,实测目标达成率提升63.7%
  • 2026年现阶段,如何选择浴室柜定制厂家?深度解析与品牌聚焦 - 2026年企业资讯
  • 告别Flask和Django!用Streamlit+Plotly,5分钟把你的Python数据分析结果变成网页应用