MCP:为什么 AI 世界需要统一的工具协议?
本章导读上一章我们介绍了 Tool Calling工具调用。它让大语言模型第一次拥有了与现实世界交互的能力。例如查询天气搜索互联网执行 Python查询数据库控制浏览器。这些能力让 AI 从一个只会聊天的模型逐渐变成一个能够完成任务的 Agent。但是当社区中越来越多工具出现之后一个新的问题开始暴露出来。如果每个 AI 平台都要重新开发一套工具接口会发生什么这正是 MCPModel Context Protocol诞生的原因。11.1 Tool Calling 已经很好了为什么还需要 MCP我们还是以一个例子作为开始。假设你开发了一个天气查询工具。(其实也是大多数兄弟tool calling的开始…)它提供一个简单的接口查询天气城市现在你希望它能够被不同的大模型使用。例如ChatGPTClaudeGeminiMinMaxQwen理论上它们都可以调用这个天气接口。但是现实却不是这样。每个平台都有自己的工具调用格式。例如以下仅为示意,不代表最新的交互协议ChatGPT↓Function Calling↓你的天气工具Claude↓Tool Use↓你的天气工具Gemini↓Function Declaration↓你的天气工具虽然最终调用的是同一个天气 API但每个平台都有自己的接口规范、参数格式和通信方式。于是一个非常尴尬的问题出现了。如果你想同时支持五个平台就需要分别适配五套接口。这就像我们前些年的手机充电器一样安卓一种接口苹果一种接口Micro USB 一种接口Type-C 又是一种接口。明明都是充电却没有统一标准。11.2 Tool Calling 的局限在哪里上一章我们提到Tool Calling 的本质是模型告诉程序“我需要调用这个工具。”例如{“tool”: “weather”,“city”: “北京”}程序收到之后会按下面的流程进行操作调用天气 API↓获得天气数据↓再交给 LLM整个流程没有任何问题。但是问题在于 Tool Calling 更像是模型厂商提供的一种能力而不是一种统一标准。例如OpenAI有自己的 Function Calling。Anthropic有自己的 Tool Use。Google有自己的 Function Declaration。不同平台之间Tool 定义不同参数格式不同返回格式不同通信方式不同。这意味着工具开发者需要不断重复开发适配层。11.3 MCP 想解决什么问题MCP 并没有发明一种新的工具,它只是定义了一套协议。它真正解决的是如何让工具只开发一次就能够被所有支持 MCP 的 AI 使用。可以把 MCP 理解成AI 与工具之间的一种通用语言。注意这里的语言并不是自然语言而是一套约定好的通信协议。只要Agent 能按照 MCP调用工具也能按照 MCP实现那么它们就可以互相通信而不需要关心对方是谁。11.4 MCP 是 AI 世界的 USB?还是举个例子.假设你买了一把无线鼠标。以前不同品牌都有自己的接收器。后来USB 成为了统一标准。于是无论罗技、雷蛇、戴尔、都可以直接插在你的电脑上。电脑并不需要知道,这是哪家公司生产的鼠标。因为 USB 已经规定好了通信方式。不过这里有一点需要特别强调。网上很多文章都会说MCP 是 AI 世界的 USB。这个比喻虽然便于理解但并不完全准确。USB 是一种硬件接口标准解决的是设备之间的物理连接问题。而 MCP 是一种应用层通信协议解决的是 AI 与工具之间如何交换能力、请求和结果的问题。因此更准确的类比应该是MCP 其实更像 HTTP协议或者数据库连接协议而不是 USB 接口。11.5 MCP 架构长什么样我们来看一张简化后的架构图。AI Agent │ ▼ MCP Client客户端 │ MCP 通信协议 │ ▼ MCP Server服务端 ┌────────┼────────┐ ▼ ▼ ▼ 浏览器 数据库 Git这里第一次出现了两个新的角色, MCP Client和MCP Server.最早,我们很容易混淆它们。但是,其实它们的职责其实非常明确。11.6 MCP Client 是什么Client其实就是主动发起请求的一方。它通常是LLM或者Agent,比如Claude DesktopOpenClawCursorClaude CodeCodex这些 AI 应用都可以充当 MCP Client。它们负责连接 MCP Server获取工具列表调用工具获取返回结果。可以理解为Client 等于使用工具的人。11.7 MCP Server 是什么Server 则相反。它负责提供能力。比如,一个 Git MCP Server。它可以提供查看 Commit创建 Branch提交代码。一个数据库 MCP Server。它可以提供查询数据修改数据执行 SQL。一个浏览器 MCP Server。它可以提供打开网页点击按钮获取页面内容。所以Server则是提供工具能力的一方。一个 Server 可以提供多个 Tool而一个 Client 也可以同时连接多个 Server。11.8 MCP 的一次完整调用流程简单了解了 MCP 的整体架构之后我们再来看一次真实的调用过程。很多人第一次接触 MCP 时会有一种误解是不是 Claude 或 ChatGPT 直接调用了我的 C# 方法实际上并不是。整个调用过程始终遵循模型负责决策程序负责执行的原则。下面以一个天气查询工具为例看看一次完整的 MCP 调用过程。假设我们开发了一个 MCP Server其中提供了一个查询天气的 ToolQueryWeather(city)用户向 AI 提出问题武汉今天的天气怎么样整个系统会经历下面几个步骤。┌──────────────────────────────────────────┐│ 用户输入 ││ “武汉今天的天气怎么样” │└──────────────────┬───────────────────────┘│▼┌──────────────────────────────────────────┐│ LLM 分析用户意图 ││ 判断需要调用 QueryWeather Tool │└──────────────────┬───────────────────────┘│▼┌──────────────────────────────────────────┐│ MCP Client ││ 向 MCP Server 发送 tools/call 请求 │└──────────────────┬───────────────────────┘│▼┌──────────────────────────────────────────┐│ MCP Server ││ 执行 QueryWeather(“武汉”) │└──────────────────┬───────────────────────┘│▼┌──────────────────────────────────────────┐│ 返回结果 ││ 晴天30℃东南风三级 │└──────────────────┬───────────────────────┘│▼┌──────────────────────────────────────────┐│ LLM 根据工具结果组织自然语言 │└──────────────────┬───────────────────────┘│▼回复最终答案整个过程中大模型始终没有直接执行任何代码。它只完成了两件事情判断是否需要调用工具根据工具返回的数据生成最终回复。真正执行查询天气的是 MCP Server。因此可以说MCP 负责连接工具LLM 负责理解语言两者各司其职。

相关新闻

C++几何计算实战:从欧几里得距离到三角形周长求解的精度与工程实践

C++几何计算实战:从欧几里得距离到三角形周长求解的精度与工程实践

1. 项目概述与核心价值最近在洛谷上刷题,看到P5735这道题,题目要求计算三角形周长。乍一看,这题简单得有点“侮辱智商”——不就是输入三个点的坐标,然后求三条边的长度再相加吗?很多新手可能直接上手就写,…

2026/10/13 20:09:55 阅读更多 →
从奶嘴到围兜:硅胶如何守护宝宝的每一刻

从奶嘴到围兜:硅胶如何守护宝宝的每一刻

之前我们聊过硅胶制品的炼胶、镭雕、喷涂等工艺。今天,我们把目光转向一个特殊的应用领域——母婴用品。从宝宝嘴里含的奶嘴,到吃饭时戴的围兜,再到缓解长牙不适的牙胶,以及孕妈妈安睡必备的孕妇枕卡扣——硅胶正悄悄守护着妈妈和…

2026/10/13 20:10:07 阅读更多 →
大麦网抢票终极指南:5分钟快速上手Python自动化抢票脚本

大麦网抢票终极指南:5分钟快速上手Python自动化抢票脚本

大麦网抢票终极指南:5分钟快速上手Python自动化抢票脚本 【免费下载链接】DamaiHelper 大麦网演唱会演出抢票脚本。 项目地址: https://gitcode.com/gh_mirrors/dama/DamaiHelper 还在为抢不到演唱会门票而烦恼吗?每次看到心仪歌手的演唱会&#…

2026/10/13 21:12:08 阅读更多 →

最新新闻

AI安全落地的运营现实:从技术展示到人机协同的2026前瞻

AI安全落地的运营现实:从技术展示到人机协同的2026前瞻

每年初春,安全圈的人就开始盯着一件事:那场年度国际安全大会的议题清单。前几年大家关注的是“AI安全能力又多酷”,而2025年那届之后,风向明显变了,越来越多从会场回来的同行在复盘里写的是“AI安全工具到底怎么放进我…

2026/10/14 20:57:32 阅读更多 →
Hive实战:电商订单数据的建表、分区与导入详解

Hive实战:电商订单数据的建表、分区与导入详解

1. 项目背景与实战场景设定1.1 这个系列到底在做什么先交代一下背景。上一篇文章里,我们完成了模拟项目的数据采集与环境校验,包括确认Hive服务正常启动、hdfs上已经存在原始日志目录等工作。那篇文章的核心结论就一句话:数据已经在分布式文件…

2026/10/14 20:57:32 阅读更多 →
技能管理不是抽象概念:如何定义可落地的技术能力体系

技能管理不是抽象概念:如何定义可落地的技术能力体系

我无法根据当前输入生成符合要求的博文。原因如下:项目标题 "skills" 过于宽泛、无实质指向:它既非具体技术方案(如“用Python实现PDF批量水印”),也非明确应用场景(如“小红书爆款封面图批量生成…

2026/10/14 20:57:32 阅读更多 →
Relay 后端 API 服务包 @openjiuwen/relay-api-server:模块化 Provider 架构与接入实践

Relay 后端 API 服务包 @openjiuwen/relay-api-server:模块化 Provider 架构与接入实践

人工智能AI Agent多智能体后端前端 【免费下载链接】relay Relay 是一个多智能体协作平台,通过统一的界面进行协作开发、代码审查、任务管理,将多个 AI Agent 组织成一个真正的团队。 项目地址: https://gitcode.com/openJiuwen/relay 点击查…

2026/10/14 20:57:32 阅读更多 →
跨境电商多仓发货规则配置:降低拆单率,节省海外仓物流成本

跨境电商多仓发货规则配置:降低拆单率,节省海外仓物流成本

我做这行也算有些年头了。跨境卖家的利润,很多时候不是赚出来的,而是省出来的。尤其是多仓发货规则这件事,表面看只是后台几个下拉框,实际却直接决定你每个订单的运费是50块还是150块。我见过太多卖家把几个仓库全部勾选之后就再也…

2026/10/14 20:57:32 阅读更多 →
MATLAB数据插值实战:从空间散点到图像重采样的方法选型与参数调优

MATLAB数据插值实战:从空间散点到图像重采样的方法选型与参数调优

1. 从一张“有洞”的深度图说起:为什么插值不是“填空题”而是“推理题”很多人第一次接触MATLAB数据插值,是在处理一张深度相机拍出来的深度图时——图上大片区域是NaN,也就是无效值。直觉反应是“把空的地方填上不就行了”,于是…

2026/10/14 20:56:30 阅读更多 →

日新闻

AnyPS5通用适配层设计:兼容性与性能的工程取舍

AnyPS5通用适配层设计:兼容性与性能的工程取舍

1. 从"AnyPS5"这个名字说起:它到底想解决什么问题第一次看到"AnyPS5"这个标题,我脑子里冒出来的第一个念头是:这大概率是一个围绕"跨平台运行"或者"通用适配"做文章的项目。名字里的"Any"…

2026/10/14 0:00:41 阅读更多 →
Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

1. 项目概述:Flutter跨平台二手交易应用开发作为一名长期从事移动应用开发的工程师,我最近完成了一个基于Flutter框架的二手物品交易平台项目。这个项目最吸引我的地方在于它完美结合了Flutter的跨平台优势与HarmonyOS的生态特性,实现了"…

2026/10/14 0:00:41 阅读更多 →
DFS算法解决飞机降落调度问题实战

DFS算法解决飞机降落调度问题实战

1. 项目背景与核心思路飞机降落问题是一个经典的调度优化场景,也是算法竞赛和面试中的高频题目。这个题目要求我们合理安排多架飞机的降落顺序和时间,确保所有飞机都能安全着陆而不发生冲突。在实际航空管制中,这类问题直接关系到飞行安全和机…

2026/10/14 0:00:41 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/14 3:30:28 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/14 16:30:29 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 22:01:27 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 7:53:34 阅读更多 →