什么是 MCP? 为什么 MCP 这么热门? MCP 的好处在哪?
2025年3月3日
在 Anthropic 于 2024 年的 11 月开源了 Model Context Protocol (MCP) 这个协定后,MCP 这个词一直是 AI 应用界中讨论度非常高的词。然而这个协定是什么? 什么是基于 MCP 的伺服器? 为什么现在各大 AI 工具都开始串接起 MCP 伺服器?
关于这些问题,让我们在这篇贴文一起讨论。
什么是 Model Context Protocol (MCP)?
如果我们把 MCP 的三个字分别拆开来看,他们分别代表:
- Model 模型,也就是大家熟知的 AI 模型,例如 GPT 模型、Claude 模型
- Context 脉络,也就是提供给模型的额外资料
- Protocol 协定,也就是一个通用的标准
而把这三个字连在一起,MCP 就是指让模型能够轻易对接到外部资料的一种协定。相信这时你可能会问,MCP 是能让模型对接外部资料的协定,不过为什么需要让模型能对接到外部资料?
在《AI 代理是什么?》一文中有谈到, AI 代理的核心要件之一是工具,而对接到外部资料意味着能让 AI 去操作外部工具。之所以这么说,是因为软体程式在做的事情就是操作资料,例如多数人都很熟悉的 CRUD 就是对资料的操作。
举例来说,假如今天用 AI 代理在 Cursor 或 Windsurf 这类的 AI 驱动 IDE 写完程式码,想要直接发一个 Pull Request 到 GitHub 上,在过去是做不到的,因为即使 AI 代理非常聪明,但没有对接到外部的工具,也无法完成这类的任务。所以开发者需要自己打开 GitHub,然后点击发 Pull Request,然后手动把 AI 生成好的 PR 相关描述,加到 GitHub 的 PR 当中。
不过当有了 MCP 后,这些手动的流程都能够被 AI 做掉。因为换个角度来谈,在 GitHub 发 PR 这件事,其实就是在 GitHub 的某个程式码库中,新增一笔 PR 相关的资料。因此,当把这类 AI IDE 透过 MCP 伺服器对接到 GitHub,在 AI 代理写完程式码后,就可以直接完成新增一个 PR 的操作。
为什么需要 MCP?
读完上面的段落,读者们可能会有个疑问「上面这段描述,不就是让 AI 模型呼叫 GitHub 中用来发送 PR 的 API 吗? 这样 MCP 在这边的做用是什么?」。如果你有这个疑问,说明你的理解没有错,以上面谈到「让 AI 代理直接发 PR」这个例子,AI 代理做的事情就是透过 GitHub 的 API 来发送 PR。
只是为什么又需要多一层 MCP 呢? 要回答这个问题,或许可以反过来问,如果没有 MCP 的话,AI 模型要怎么知道如何呼叫 GitHub 的 API? 事实上,AI 很可能不知道,假如你直接问 AI 模型「如何呼叫 GitHub 的 API 来发 PR?」,AI 模型的回答可能是基于训练资料 (所以可能过时),又或者 AI 可能会有幻觉的回答。
因此,要避免模型用过时的方式,或者用幻觉的方式来呼叫某个外部的 API,过去在业界有个做法叫函式呼叫 (function calling),是由开发者直接定义好某个函式 (或者某个 API),然后定义好如何呼叫该函式 (或呼叫该 API),然后再传入相对应的格式后,让模型去呼叫该函式 (或 API)。
在看完函式呼叫,相信读者可能会问,既然已经有函式呼叫这种方式可以呼叫外部 API,为什么又需要 MCP 呢? 两者之间有什么不同?
这两种方式的一大区别在于,MCP 是从协定的角度出发,但函式呼叫则是让开发者可以灵活地自由定义,不同的开发者可以自由定义函式以及如何呼叫。灵活听起来似乎很不错,但是当不同开发者定义的方式不同,就会遇到「无法通用」这个问题。从软体设计的角度来看,当无法通用的问题在于普及度会困难,且不同的开发者可能会需要重新造相似的轮子。
这种因为缺乏标准,导致重复造轮子且互不通用的状况,在软体工程的历史上出现过非常多次。事实上,在 Anthropic 最开始把 MCP 开源时,有提到希望让 MCP 成为 USB-C 一样的存在。就如同 USB-C 这个标准形式,让每一个装置都能够透过 USB-C 来连接,不会因为换了装置后就不能继续用同样的接头。
以 USB-C 为例来说,先前苹果独树一格用自己的 Lightning 接头,让很多人忘记带充电线时,假如周遭的其他人都是用 USB-C,就变得没办法借别人的充电线来充电。但后来苹果也统一成 USB-C 后,这个问题就不复存在,只要有 USB-C,不管是用哪牌的装置,都能够共享。
而 MCP 的存在也是同样的道理,能让 AI 应用轻易转换、搭配不同模型;同时也能让模型轻易对接到不同的资料来源与工具。因此,如果要总结「为什么需要 MCP」,最核心的点,就是提供一个标准化的接头,透过标准化能让开发 AI 应用的人,能够更轻易地把 AI 模型与外部资料与工具接在一起。
阅读更多
以上是关于 MCP 的介绍,如果读者有兴趣读更深入的内容,以及想要了解 MCP 的具体应用案例、如何开发 MCP 伺服器,我们在 E+ 成长计划的主题文都有更详细谈到,推荐感兴趣的读者阅读。
本文为 E+ 成长计划的深度内容,截取段落开放免费阅读。欢迎加入 E+ 成长计划阅读完整版本 (点此了解 E+ 的详细介绍)。