MCP系列(一)什么是MCP?
MCP 是什么:从 USB-C 到 AI 的「万能接口」哲学
MCP(Model Context Protocol,模型上下文协议) 是Anthropic于2024年11月推出的AI跨系统交互标准,专为解决LLM(大语言模型)的「数字失语症」——让AI既能安全调用外部工具(如实时天气API、本地文件系统),又能避免数据泄露或滥用。它本质是AI世界的「USB-C协议」:通过标准化的「请求-响应-通知」格式(如context_request
强制携带权限声明),让不同厂商的LLM(如Claude、GPT-4o)和工具(如 cursor、ClaudeDesktop、5ire)无需适配私有协议,就能像「U盘插入电脑」一样即插即用。
就像USB-C让手机、电脑、打印机用同一接口通信,MCP定义了AI的「数字握手规则」:
-
统一语法:所有工具必须按
mcp_schema_v3
格式暴露能力(如天气工具的name
、parameters
、description
),LLM通过capability_negotiation
动态协商权限(比如只允许查询上海天气,禁止获取用户定位); -
安全隔离:内置「宪法AI」审查每个工具调用(如阻止「用病历数据优化保险定价」的请求),敏感操作需「用户+模型+工具」三方授权,避免AI越权;
-
即插即用:开发者只需按协议编写工具(如用Python实现
tools/call
接口),无需关心LLM是云端还是本地部署,5ire客户端能自动发现并调用符合MCP的工具,就像电脑自动识别新U盘。
MCP与Function Calling: 从「模型专属」到「协议共生」
先给出几个基本概念
Function Calling(函数调用)
-
本质:大模型基座的「能力适配器」,允许模型通过结构化指令调用外部工具(如 API、数据库)。
-
问题:非标准化 —— 不同模型(如 GPT-4o、DeepSeek)的函数调用协议(参数格式、触发逻辑、返回结构)存在差异。 例:GPT-4o 要求函数参数为
JSON object
,DeepSeek 可能要求key-value字符串
,导致同一功能(如天气查询)需为每个模型单独开发。
MCP(Model-API Communication Protocol,模型 - API 通信协议)
-
目标:定义跨模型的标准化交互语言,解决「函数调用协议碎片化」问题。
-
核心设计:
-
统一请求 / 响应格式(如强制使用
mcp_schema_v1
的 JSON 结构); -
标准化函数元数据(
name
/description
/parameters
); -
错误处理协议(如
MCPErrorCode
枚举)。
-
AI Agent(智能体)
-
定位:MCP 生态的「超级用户」,通过「意图解析→MCP 函数调用→结果整合」闭环自主完成复杂任务。
-
优势:MCP 让 Agent 摆脱对单一模型的依赖,实现「一次开发,多模型运行」。
以GPT-4o和DeepSeek为例,看看FuctionCall实现的差异,以及MCP如何跨模型
维度 | GPT-4o 函数调用(非 MCP) | DeepSeek 函数调用(非 MCP) | MCP 标准协议(统一后) |
---|---|---|---|
触发指令 | function_call: {"name": "...", ...} | tools: [{"name": "...", "parameters": ...}] | mcp_action: {"function": "...", ...} |
参数格式 | 严格 JSON 对象 | 允许 JSON 或键值对字符串 | 强制 JSON Schema(含type/enum校验) |
返回结构 | 直接返回 API 结果 | 包裹result字段({"result": ...}) | 统一mcp_response(含status/data/error) |
错误处理 | 模型自定义错误码(如1001) | 无统一错误格式 | 标准化MCP_ERROR_*枚举(如INVALID_PARAM) |
MCP Client/Server 架构
详见 Introduction - Model Context Protocol
如何开发 / 使用 MCP
MCP 的官网提供了详尽的文档和 SDK,开发者只需遵循这些资源即可轻松实现 MCP。
-
Model Context Protocol 介绍
-
MCP Server 开发
-
MCP Client 开发