MCP协议核心解析:标准化AI工具调用的设计与实践

一、MCP 解决的两个根本问题

大模型有两个结构性缺陷:训练数据有截止日期(如 GPT-3.5 Turbo 截止 2021 年 9 月),以及无法主动与外部系统交互------不能调用 API、查询数据库、执行状态变更操作。

MCP(Model Context Protocol)是 Anthropic 在 2024 年推出的开放协议,专门为解决这两个问题而设计。它在大模型与外部数据源、服务之间建立了标准化的通信通道,让静态的语言模型具备动态调用外部能力的基础设施。


二、MCP 的三个核心组件

MCP 架构由三个角色组成,各自职责清晰:

MCP Server 是能力提供方。每个 Server 封装一类资源或服务(本地文件系统、数据库、远程 API 等),通过 MCP 协议对外暴露工具列表。类比 HTTP 服务:Server 封装业务逻辑,通过协议提供访问入口。

MCP Client 是协议翻译层。负责将 MCP 协议的消息格式转换为 Host 应用可以理解的内容。类比各语言的 HTTP Client 库(Java 的 HttpClient、Python 的 requests),Client 屏蔽了协议细节,让 Host 专注于业务逻辑。

MCP Host 是使用方。任何集成了 MCP Client 的应用都可以作为 Host,例如 Claude Desktop、Cursor、Cline(VS Code 插件)。Host 负责将 Server 提供的工具列表格式化为 LLM 可理解的 prompt,接收 LLM 返回的 tool_calls 指令,再调用对应的 MCP Server 执行操作。

整个调用链路:Host 从 Server 获取工具列表 → 将工具列表注入 LLM prompt → LLM 返回 tool_calls JSON → Host 调用 Server 执行 → 返回结果给 LLM。


三、传输方式与消息格式

传输层有两种模式:

  • STDIO:用于本地资源,MCP Server 作为子进程运行,通过标准输入输出通信。延迟低,适合访问本地文件系统、本地数据库等场景。
  • SSE / Streamable HTTP:用于远程服务,通过 HTTP 长连接传输。MCP 协议 2025-03-26 版本起推荐用 Streamable HTTP 替代 SSE。

消息格式采用 JSON-RPC 2.0,定义三种消息类型:

  • request:Client 发给 Server 的操作请求,包含唯一 id、方法名(如 tools/call)和参数。
  • response:Server 返回给 Client 的结果,包含与 request 相同的 id 及处理结果或错误信息。
  • notification:单向通知,无需回应,通常由 Server 发给 Client,用于事件推送。

JSON-RPC 2.0 的优势在于语言无关、规范清晰、易于调试,这也是 MCP 能快速获得多语言生态支持的原因之一。


四、MCP vs Function Call:标准化的价值

Function Calling 是 OpenAI 提出的机制,允许开发者定义函数供 LLM 调用。两者目标相同,但实现层面有本质差异:

维度 Function Call MCP
标准化程度 各模型平台自定义,实现不统一 开放协议,跨模型、跨平台通用
集成方式 每个模型平台单独对接 一次实现,多处复用
生态复用 无法跨平台共享 开源 Server 可直接复用
上下文保持 单次调用 支持跨应用/服务保持上下文

MCP 的类比是 USB Type-C:不同设备(模型)和不同外设(服务)通过同一标准接口互联。Function Call 则类似各厂商自定义的私有接口------功能相同,但无法互换。

OpenAI 后来也宣布支持 MCP,印证了统一标准的价值。


五、本地 MCP Server 配置实践

以 Claude Desktop 接入本地文件系统 MCP Server 为例,展示完整配置流程。

前置条件:安装 Node.js 环境。

配置文件claude_desktop_config.json):

json 复制代码
{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "/Users/username/Desktop",
        "/Users/username/Downloads"
      ]
    }
  }
}

username 替换为本机用户名,配置允许 MCP Server 访问桌面和下载文件夹。

操作路径:Claude Desktop → Settings → Developer → Edit Config → 写入上述配置 → 重启应用。

重启后点击锤子图标可查看 Server 提供的工具列表(list_allowed_directoriesget_file_infocreate_directory 等)。

使用示例:在 Claude Desktop 输入「把桌面上的所有图片移到新文件夹 picture」,LLM 会自动识别可用工具,依次调用文件系统操作完成任务。执行过程中会请求权限授权,需手动允许。


六、对测试工程师的实际意义

MCP 对测试开发工程师的价值在于低成本接入大模型能力:

从零训练或微调一个测试专用模型需要大量算力、人力和时间,并非个人或小团队能承担的。但开发一个 MCP Server,将测试服务、测试数据、测试工具暴露给大模型,成本极低------只需掌握 MCP Server 的开发方式。

具体场景:将接口测试框架封装为 MCP Server,让 LLM 直接调用执行测试;将测试数据库接入 MCP,让 LLM 查询历史缺陷数据辅助分析;将 CI/CD 系统接入 MCP,让 LLM 触发构建和部署流程。

现有支持 MCP 的 Host(Claude Desktop、Cursor、Cline 等)可以直接复用,无需重复开发 Host 层,专注于 Server 侧的业务封装即可。

相关推荐
LONGZETECH1 小时前
实测职业教育无人机仿真教学软件:架构、功能与落地全解析
人工智能·架构·无人机·无人机仿真教学软件·无人机教学软件·无人机仿真软件
ryrhhhh1 小时前
矩阵跃动自研技术:小陌GEO动态监测算法,30分钟快速适配大模型更新
人工智能·算法·矩阵
const_qiu1 小时前
P0+P1+P2 分层测试策略方法论
人工智能
guoji77881 小时前
Gemini 3.1 Pro 评估科学:超越基准测试的硬核能力测评方法论
大数据·人工智能
zzh940771 小时前
Gemini 3.1 Pro 工程化部署优势解析:架构革新如何成就国内高可用访问
人工智能
AustinCyy1 小时前
【论文笔记】Guiding Generative Storytelling with Knowledge Graphs
论文阅读·人工智能·知识图谱
柯儿的天空1 小时前
【OpenClaw 全面解析:从零到精通】第 014 篇:OpenClaw 云端部署实战——阿里云、腾讯云与 Docker 部署全指南
人工智能·阿里云·docker·云计算·aigc·腾讯云·ai写作
AC赳赳老秦1 小时前
使用OpenClaw tavily-search技能高效撰写工作报告:以人工智能在医疗行业的应用为例
运维·人工智能·python·flask·自动化·deepseek·openclaw
2301_766558651 小时前
国产自研AI搜索优化引擎:小陌GEO+龙虾机器人,全域大模型占位实战解析
人工智能·机器人
智算菩萨1 小时前
【Generative AI For Autonomous Driving】5 生成式AI在自动驾驶中的六大应用场景:从数据合成到智慧交通
论文阅读·人工智能·机器学习·ai·自动驾驶·感知