了解何为模型MCP协议

举报
码乐 发表于 2025/11/29 00:02:38 2025/11/29
【摘要】 1 简介本文从MCP 设计思想和实现原理的进行分析。MCP(Model Context Protocol,模型上下文协议)是由 Anthropic 公司于 2024 年 11 月推出的开源协议标准。它旨在解决大型语言模型(LLM)与外部工具、数据源(如文件系统、数据库、API 等)之间的集成难题。它不是一种具体的工具,而是 AI 生态中的“通用接口”,类似于“AI 应用的 USB-C 接口...

1 简介

本文从MCP 设计思想和实现原理的进行分析。MCP(Model Context Protocol,模型上下文协议)是由 Anthropic 公司于 2024 年 11 月推出的开源协议标准。

它旨在解决大型语言模型(LLM)与外部工具、数据源(如文件系统、数据库、API 等)之间的集成难题。它不是一种具体的工具,而是 AI 生态中的“通用接口”,类似于“AI 应用的 USB-C 接口”。

它允许 LLM 安全、可控地访问和操作外部资源,从而从“被动思考者”转向“主动执行者”。以下是对 MCP 设计思想和实现原理的深入剖析。

2 设计思想:

  • 统一性、安全性和扩展性

MCP 的核心设计思想源于 AI 代理(Agent)开发的痛点:

传统 Function Calling(如 OpenAI 的工具调用)依赖应用层预定义工具,导致扩展性差、代码碎片化,且难以跨模型兼容。

MCP 则采用模型主导的调用方式(model-driven invocation),让 LLM 基于上下文自主推理决定调用哪个工具、参数和时机,这体现了 Agent 思维的核心——自主性和适应性

  • 统一性(Standardization):

MCP 提供标准化协议,避免为每个数据源编写自定义适配器。无论连接文件系统还是第三方 API,都通过统一的客户端-服务器架构实现“即插即用”。

这类似于 HTTP 协议在 Web 中的作用:开发者无需重复造轮子,只需构建 MCP 服务器即可扩展 LLM 能力。

  • 安全性(Security):

MCP 强调“最小权限原则”和加密传输(基于 WebSocket)。服务器端控制访问范围(如只读文件、认证令牌),防止敏感数据(如 API 密钥)泄露。

协议支持 Scopes(作用域)机制,允许细粒度授权,例如只允许 AI 读取特定目录而非整个系统。

  • 扩展性(Scalability):

MCP 支持三种核心功能——Tools(工具执行,如运行脚本)、Resources(资源查询,如文件内容)和 Prompts(提示模板),可动态扩展。

设计时考虑了异步通信和状态管理,适用于实时交互场景。Anthropic 的黑客松实验(如控制 3D 打印机或实现“记忆功能”)验证了其潜力,推动社区构建 3000+ 开源 MCP 服务器。

这些思想使 MCP 成为 AI 生态的“事实标准”,类似于当年 OpenAI API 的影响力:一旦形成网络效应,后续迭代可快速修复缺陷。

4. 实现原理:

  • 客户端-服务器架构与协议流程

MCP 的实现基于WebSocket 通信的客户端-服务器模型,协议消息采用 JSON 格式,确保跨平台兼容。

核心组件包括 MCP Client(集成在 LLM 应用中,如 Claude Desktop 或 Cursor IDE)、MCP Server(暴露外部资源的桥接器)和 MCP Host(LLM 模型本身)。

  • 架构概述:

MCP Client:作为中介,负责与 LLM 和 Server 通信。支持多服务器连接(MultiServerMCPClient),每个会话无状态(stateless),工具调用后自动清理资源。

MCP Server:轻量级服务端,实现 Tools/Resources/Prompts 接口。例如,一个文件系统 MCP Server 可暴露 read_file(path) 工具,LLM 调用时 Server 执行实际操作并返回结果。

MCP Host:LLM(如 Claude)通过 Client 发送请求,接收响应后融入上下文。

  • 协议流程(生命周期):

初始化:Client 连接 Server,建立 WebSocket 会话,协商认证(OAuth 或 API Key)。
发现(Discovery):LLM 查询可用 Tools/Resources(如列出文件列表)。
调用(Invocation):LLM 自主生成 JSON 请求,

例如:

  text{
    "type": "tool_call",
    "tool": "read_file",
    "params": {"path": "/game/assets/player.json"}
  }

Server 执行并返回结果(如文件内容)。

响应与迭代:LLM 基于结果继续推理,支持异步回调。整个过程透明:LLM 无需知晓底层实现细节。
清理:会话结束,释放资源。

4 小结

异步与并行:支持多工具并发调用,适用于复杂任务。

错误处理:标准化异常格式(如 {“error”: “Permission Denied”}),便于调试。

SDK 支持:Anthropic 提供 Python/JS SDK(如 mcp 库),社区有 LangChain 适配器,便于集成。

与传统工具的区别:Function Calling 是“应用驱动”(预定义工具),MCP 是“模型驱动”(LLM 决策),更灵活,但需 LLM 支持(如 Claude 4 的 interleaved thinking)。

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。