模型上下文协议(MCP)在人工智能领域逐渐成为热门话题。在社交媒体上,我们看到许多关于MCP的帖子,发布者包括解释者、辩论者和模因创作者。通过在知乎、百度或bilibili上搜索,可以发现大量关于MCP的新内容。甚至在我们DigitalOcean的社区中也有不少人在讨论MCP与AI的结合。显然,人们对MCP充满热情。但究竟为什么呢?
其实很简单:如果模型的性能仅取决于提供的上下文,那么标准化上下文增强方式的机制就是提升智能体能力的关键。更重要的是,人们发现通过“模型+MCP server+工具”的组合,可以让工具帮你干活。
例如,“DeepSeek+MCP+Cursor或Cline”可以让用户仅通过Prompt指令,让Cursor给你输出你想要的代码;你可以用“DeepSeek或Claude++MCP+Cursor”,结合云服务的API来让AI Agent自动化管理你的服务器资源;“Claude或DeepSeek+Blender MCP开源项目+Blender”,仅需文字指令,Blender就能解放用户双手,直接输出建模效果。
对于那些没有时间深入研究这一MCP的人,不必担心。本文的目标是让你直观地理解MCP的来龙去脉。
前置知识
虽然本文对模型上下文协议(MCP)的解释力求通俗易懂,但若对大语言模型(LLMs)的能力,特别是它们如何处理信息和使用工具,有一定的基础理解,将更有助于你把握MCP在人工智能应用发展中的角色。
MCP怎么变热门的?
2024年11月,Anthropic 提出了MCP作为一种开源协议,它允许大语言模型(LLM)应用程序与外部数据源和工具集成。这一举措很有意义,它让大家给大语言模型和工具之间定下了一个统一的沟通方式。
一些令人兴奋的基于MCP的应用程序已经陆续出现。例如,Blender-MCP开源项目,使Claude能够直接与Blender交互并控制它,从而实现基于提示的3D建模、场景创建和操作。这个项目在开源短短一周内就获得了4k的Star数,也让更多人看到了MCP的应用潜力。
一个协议统领全部
协议是一组用于格式化和处理数据的规则。顾名思义,MCP(模型上下文协议)确实是一种协议——具体来说,是一组规则,用于标准化大型语言模型如何与外部信息源连接。
在MCP之前,有LSP
语言服务器协议(LSP)成为集成开发环境(IDE)与语言特定工具通信的标准。本质上,LSP允许支持它的任何IDE无缝集成各种编程语言。
凭借LSP,例如,一个Go语言服务器可以根据LSP标准构建,任何支持LSP的IDE(如VS Code、JetBrains产品或Neovim)都可以自动利用它来提供自动完成功能、错误检测和代码导航等特性。
受LSP的启发,MCP克服了我们在语言模型集成中看到的MxN集成问题,即每个新的语言模型(M)需要自定义连接器和提示来与每个企业工具(N)接口。通过采用MCP,模型和工具都符合一个通用接口,将集成复杂性从M×N降低到M+N。
标准化
标准化的美妙之处在于,我们不需要为每个数据源维护不同的连接器。对于那些希望在工具和数据堆栈中导航时保持上下文信息的人工智能应用,标准化使我们能够转向构建更强大和可扩展的系统。
MCP的组成部分

MCP有三个关键组成部分:
- MCP主机:面向用户的AI界面(如Claude应用、IDE插件等),可连接到多个MCP服务器。
- MCP客户端:管理主机和服务器之间安全连接的中间件,每个服务器有一个客户端以实现隔离。客户端位于主机应用中。
- MCP服务器:提供特定功能(如工具、数据访问、领域提示)的外部程序,可连接到各种数据源,如Google Drive、Slack、GitHub、数据库和网络浏览器。
MCP之所以胜过其他协议,是因为其构建中融入了Anthropic在构建智能体方面的见解,这些见解在其“构建有效智能体”的博客文章中有详细阐述。
在服务器端,已经观察到了显著的增长,有超过一千个社区构建的开源服务器以及公司的官方集成。此外,开源社区的采用也相当广泛,贡献者在增强核心协议和基础设施方面做出了贡献。
服务器端基础组件
MCP服务器
特性 | 工具 | 资源 | prompt |
功能 | 使服务器能够向客户端暴露可执行功能 | 允许服务器向客户端暴露可读取的数据和内容,并将其用作LLM交互的上下文 | 服务器可以定义的预设模板和工作流,用于标准化LLM交互 |
工具类型 | 模型控制 | 应用程序控制 | 用户控制 |
访问与交互方式 | 工具从服务器暴露给客户端;它们代表可以由大型语言模型调用的动态操作,并修改状态或与外部系统交互 | 客户端应用决定资源的使用方式和时间 | 提示从服务器暴露给客户端,意图由用户决定 |
客户端基础组件
根目录
根目录定义了服务器被授权在主机文件系统或环境中交互的特定位置。根目录定义了服务器可以操作的边界,允许客户端告知服务器相关资源及其位置。
采样
采样是MCP提供的一项未被充分利用但功能强大的特性,它颠覆了大型语言模型交互的传统客户端-服务器关系。通常情况下,客户端向服务器发出请求,而采样允许MCP服务器从客户端请求大型语言模型的补全。这使客户端能够完全控制模型选择、托管、隐私和成本管理。服务器可以请求特定的推理参数,如模型偏好、系统提示、温度设置和令牌限制,而客户端有权拒绝潜在的恶意请求或限制资源使用。在客户端与不熟悉的服务器交互但仍需访问智能功能的情况下,这种方法非常有价值。
小结
通过为连接语言模型与外部工具和数据源建立通用协议,MCP消除了对自定义连接器的需求,创建了一个更强大的生态系统。
社区化的方法创造了所谓的“复合创新”。每个贡献者都在他人的基础上构建。网络效应是巨大的,每个人都能获得更大的利益。
Anthropic通过向开发者提供一个开放的MCP,它将比他们单独构建的任何封闭系统增长得更快、更强大,最终提供更多的价值。