唐巧的博客

理解 MCP -读《这就是 MCP》

字数统计: 830阅读时长: 2 min
2025/10/21

一、序言

最近读完了一本讲解 MCP 实现原理的书:《这就是 MCP》,它帮助我更好地理解了 MCP,以下是一些笔记。

二、什么是 MCP

MCP 的全称是 Model Context Protocol,之所以叫这个名字,是因为它可以成为大模型调用外部工具的协议,让大模型能够补充自己的上下文(即 Context)。

在没有 MCP 之前,每个大模型都在为自己扩展调用外部工具的能力,最常见的能力就是调用搜索引擎。但是这就会造成一个麻烦:每个大模型都需要自己开发一遍调用工具(重复造轮子),而且由于协议不开放,第三方开发者无法为大模型提供更多工具。

在有了 MCP 之后,整个开发流程变成了:

  • 大模型都适配 MCP 协议
  • 各种工具都适配 MCP 协议

这样,一个新的工具出来,立刻可以为所有大模型可用,而一个新的大模型也可以立刻调用市面上公开的 MCP(下图)。

有人把这个比作 “AI 时代的 HTTP 协议”,我是比较认同的。

三、MCP 的实现细节

3.1 角色

不同于 HTTP协议的浏览器 / 服务器(B/S)架构,MCP 的协议多了一个 “主机” 的角色,一共包含三个角色,分别是:主机,客户端,服务器。

主机:创建和管理多个客户端。负责鉴权相关工作。负责多个客户端内容的聚合,

客户端:一个客户端是一个进程,负责与对应的 MCP 服务器交互数据,管理会话的状态。

服务器:为客户端提供服务。可以部署成本地服务或远程服务。

3.2 协议

MCP 使用 JSON-RPC 作为客户端与服务器通信的基础。

当服务器部署在本地的时候,它允许客户端用 stdio 的方式来传输 JSON 编码的数据。

当服务器部署在远程的时候,它使用 HTTP 来传输 JSON。

鉴权方面, 基于 stdio 传输实现的服务器直接从环境变量中读取授权凭证,而基于 HTTP 协议的服务器,基于 OAuth 2.1 实现授权。

四、如何开发 MCP

开发 SDK:MCP 支持任意语言开发 MCP 服务器,我们可以使用官方提供的 SDK 快速生成代码框架。

调试工具:官方提供的调试工具名为 MCP Inspector,用它连接对应 MCP 之后就可以在面板中调试功能。

发布 MCP:我们可以把开发好的服务发布到 MCP 市场上面供开发者检索到。

MCP 市场。市面上比较有名的市场包括:

五、MCP 的问题

MCP 发布才一年时间,所以还有很多细节未来需要完善,包括:

  • 协议对多模态内容支持不够友好
  • 鉴权机制不完善,很多 MCP 服务还未支持 25 年 3 月引入的 OAuth 鉴权协议
  • 安全防护能力弱。攻击者可以构造恶意的 MCP 服务来诱导用户执行恶意命令,从而实现信息窃取,执行恶意命令等攻击。

以上。

CATALOG
  1. 1. 一、序言
  2. 2. 二、什么是 MCP
  3. 3. 三、MCP 的实现细节
    1. 3.1. 3.1 角色
    2. 3.2. 3.2 协议
  4. 4. 四、如何开发 MCP
  5. 5. 五、MCP 的问题