什么是 MCP,以及你为什么该关注它

MCP 现在真的火起来了。现在已经有成千上万个 MCP “服务器”,而且虽然是 Anthropic 发明的,就在几天前 OpenAI 也采纳了它。服务器就像 AI 的 “应用”,但关键在于它们可以更灵活地协同使用。我们正看到 AI 生态系统的雏形,就像十年前我们看到移动生态一样。

详情:
MCP(Model Context Protocol,模型上下文协议)是 Anthropic 在 2024 年 11 月作为一个开放标准发布的。虽然最初反响平平,但过去几个月里它真的火了。三月底,就连 OpenAI —— Anthropic 的死对头 —— 也采纳了它。

但它到底是啥?为啥它这么重要?

它是什么

MCP 的核心,是一个扩展 AI 功能的方式,就像一个应用扩展了手机的功能。

理解 MCP 有两个关键概念:MCP 定义了宿主应用(比如 Claude Desktop)如何与这些被称为 MCP 服务器的扩展交互。(其实还有第三个概念,叫 MCP 客户端,但在这篇文章中,宿主和客户端差不多是同一个意思)MCP 最棒的一点是它是一个开放标准,这就意味着不同的宿主应用可以使用相同的 MCP 服务器。现在已经有几十个宿主应用了(这儿有个列表:https://github.com/punkpeye/awesome-mcp-clients)。不仅包括 Claude Desktop 和 Claude Code,还有像 Cursor 这样的工具,和像 oterm 这样的终端。

虽然 MCP 宿主有几十个,现在已经有成千上万个 MCP 服务器了,甚至有专门的网站来整理它们(比如:https://mcp.so/)。这些服务器用途广泛,很多已经成了让 AI 接入数字世界的标准方式。一个生态系统从发布到几个月内拥有 5000 个应用,简直不可思议。

为了具体看看 MCP 服务器可以做什么,我们来看一下 Anthropic 发布的一组参考服务器:

  • Google Maps:本地搜索、地点信息等。
  • Slack:收发消息。
  • Memory:跨会话记住事情。
  • Time:时间和时区转换。
  • Puppeteer:与无头浏览器交互并返回 HTML 和图片。
  • EverArt:图像生成器。注意 MCP 完全不限于文字。

为什么它重要

你现在看到的是 AI 生态系统的崛起。MCP 是 AI 生态里的第一个“应用”对应物。但它与现有的应用生态系统有一些关键差别。这些差别来自于一个事实:AI 比那些已有的 “刚性” 结构(比如 API)更灵活。输入输出都是文本。

基于开放标准的可扩展性

希望我们这次能避免 Android vs iOS 那种局面,因为 OpenAI 和 Anthropic 都采纳了这个标准。也许这就是它被开发者广泛采用的原因:他们只需实现一次,突然之间,他们的工具就能被几十个宿主应用使用。我写一次,Claude、Cline、Gemini 或其他用户就都能使用我做的东西。

集成和链式能力的强大威力

安装传统应用时,大多是孤立体验 —— 一次只能和一个应用互动。如果你想让两个应用互通,还得自己写代码,或者用像 Zapier 那样笨重的“胶水”。

而用 MCP,宿主可以把一个 MCP 服务器的结果传给另一个 MCP 服务器;它可以把多个 MCP 服务器的结果整合起来。下面这个例子就像是超能力:

  • 我可以监听 Slack 上有人说 “找个地方吃晚饭”
  • 我可以从 Google Maps 和 Yelp 的 MCP 服务器获取结果并整合,给出更全面的建议
  • 我可以用 Memory MCP 服务器存取大家在 Slack 上说的饮食偏好。我不需要数据库,Memory 用的是知识图谱表示,这种方式对大模型特别友好,还非常灵活
  • 我可以用 OpenTable 的 MCP 服务器进行预订
  • 我可以在 Slack 上发:“嘿,我看了你们的饮食偏好和附近的餐厅,我帮你们在 X 地订了位。”

你可以想象很多类似的场景,但关键是:为了完成一个目标,MCP 宿主可以同时使用多个 MCP 服务器。

向智能体网络迈进的一步

一个东西(我们称它为代理)可以既是宿主又是服务器。比如,Claude Code 是宿主(它可以使用 GitHub 等 MCP 服务器检查代码),但它也可以是服务器(例如,Claude Desktop 可以请求 Claude Code 来帮忙解决一个编码问题)。你很容易看出这个趋势:你现在有个东西,既能请求其他代理,也能接收其他代理的请求。

这不就是工具吗?

我一开始了解 MCP 时卡住的一点就是:“这不就是开发者一直在用的工具吗?”

某种程度上,是的。实际上,MCP 定义了三种类型的东西:工具、资源(文件、URL 等)和提示。

但有两个根本区别:

  • 工具是给开发者用的,在非常受限的场景下。MCP 是面向用户的。
  • MCP 更加动态:每个用户都可以添加或删除自己的工具集。

一个具体例子

我想举个具体的例子,看看我是怎么用一个非常简单的 MCP 服务器构建了一个日常新闻简报系统。这不是最花哨的例子,但让我惊讶的是它有多简单。我只用了 Memory MCP 服务器,它维护了一个知识图谱:实体(比如我,或 Mountain View)和关系(实体 “Waleed” 和 “Mountain View” 被 “住在” 这个关系连接)。Claude Desktop 是我选的 MCP 宿主。我开始告诉 Claude Desktop 存我感兴趣的事。它把这些都存进了 memory 系统。然后我让它帮我拉一些最新新闻(通过网页搜索)。效果出奇地好,但我不想第二天重复昨天的内容,所以我也让它记住它昨天告诉我的内容,这样就不会重复。

这只是个开始。接下来我会加一个 Google Tasks 的 MCP 服务器,这样我可以读完后加个代办事项,或者我可以让 Claude Desktop 把某条新闻通过邮件发给朋友。或者我会加一个我的日历应用的 MCP 服务器,把当天的事件也加进简报。

如果没有 MCP,我们怎么搞这事?我得写个跑在 URL 上的应用,想办法获取用户偏好,然后再接上网页搜索。

但有了 MCP,我可以在一个面板里(Claude Desktop)用自然语言完成这一切。

这对我有什么影响?

希望这些能让你愿意至少在你喜欢的宿主上试试 MCP —— 你可能已经在用了。但更重要的是,如果你在做基于 AI 的系统,你也许该考虑一下怎么参与这个生态系统。你应该问问自己:

  • 我要不要把我系统的能力暴露成一个 MCP 服务器?
  • 它能不能让我的用户以一种新的方式访问 AI 系统的能力?
  • 我还需要用户界面吗?MCP 宿主本身能不能成为我的新界面?
  • 我想不想把我的应用变成 MCP 宿主,以扩展它的能力?

我自己已经在考虑把我做的开源伊斯兰 AI 助手项目(包括服务器和宿主两部分)加上 MCP 支持。

接下来呢?

MCP 还处于早期阶段,还有很多路要走,很多东西要修。

安装和设置

现在要把一个 MCP 服务器加进你的宿主,还得手动改 JSON 文件,要么跑 Docker,要么本地跑 Node。挺麻烦的。

安全、认证等等

认证现在还是挺难搞的。比如,要用 Google Drive 的集成,你得申请开发者 API key,然后跳过一堆步骤才能用。安全、提示注入这些还很基础。现在的宿主还得不停向你请求权限才能做事。

动态发现

下一步是要标准化一种方式,让 LLM 自己发现有哪些 MCP 服务器,并能自己找需要用的 MCP 服务器。

总结

MCP 看上去有点理论性,也挺复杂,但它实际上是一个巨大的前进步伐:它是开放 AI 生态的开始。特别是你只需添加一个 MCP 服务器,就能给宿主添加功能,而且是以一种让 AI 能集成并串联多个能力完成目标的方式,这对新应用和工具的灵活性来说是个巨大机会。你应该问问自己,MCP 被迅速采纳这件事,对你正在做的事情意味着什么。

<think>好的,我需要回答用户关于MCP协议在IT领域的用途及实现的问题。首先,我需要明确用户提到的MCP具体指的是哪个协议,因为可能有多个缩写为MCP的术语。根据用户提供的引用内容,有三个来源: 引用[1]提到了MCP(Model Context Protocol),作为AI与外部工具和数据交互的标准,并提到附录中的MCP Server开发实践。引用[2]同样解释了MCP是Model Context Protocol,用于AI交互。引用[3]提到了Burroughs MCP,这是与Unisys Clearpath相关的一个操作系统,属于历史系统。 用户的问题集中在IT领域,因此需要区分这两种不同的MCP。根据引用[1]和[2],重点应该是Model Context Protocol,而引用[3]中的Burroughs MCP可能不是用户关注的重点,但为了全面性,可能需要简要提及。 接下来,我需要整理MCP(Model Context Protocol)的用途和实现。用途方面,需要说明其在AI与外部工具和数据交互中的作用,如标准化接口、模型管理、上下文感知等。实现部分需要参考附录中的开发实践,可能涉及通信协议设计、API网关、上下文管理模块等组件。 同时,需要确保回答结构清晰,分点说明用途和实现,并生成相关问题。还要注意引用标记的正确使用,例如在提到标准化接口时引用[^1]和[^2]。 另外,用户可能混淆了不同MCP,因此需要明确区分Model Context Protocol和Burroughs MCP,但根据引用内容,用户更可能关注前者。最后,生成的相关问题应围绕MCP协议的应用、技术挑战、与其他协议的区别,以及历史背景如Burroughs MCP。 需要验证信息是否准确,尤其是引用来源中的内容是否支持所述用途和实现。例如,引用[1]提到附录的开发实践,可能涉及服务器实现,因此可以推测MCP的实现包括服务器端组件、API设计等。 总结回答结构:先介绍MCP的定义,分点用途,分点实现,区分不同MCP,生成相关问题。</think>### MCP协议在IT领域的用途及实现 MCP(Model Context Protocol)是一种用于AI系统与外部工具、数据源进行标准化交互的协议,尤其在模型上下文管理方面发挥关键作用。以下是其核心用途及实现方式: --- #### 一、MCP协议的主要用途 1. **标准化AI与外部工具的交互** MCP定义了AI模型调用外部工具(如数据库、API、硬件设备)的统一接口,例如通过RESTful API或gRPC实现服务注册与调用[^2]。 2. **动态上下文管理** 支持运行时上下文(如用户输入、环境参数、历史交互记录)的传递与更新,增强AI模型的场景适应能力。 3. **模型生命周期管理** 提供模型加载、版本控制、资源分配等功能,简化多模型协同工作的复杂度。 4. **安全与权限控制** 通过身份验证和访问控制策略(如OAuth 2.0),确保外部工具和数据调用的合规性。 --- #### 二、MCP协议的典型实现 1. **通信协议设计** 基于HTTP/2或WebSocket实现高效数据传输,协议消息格式通常采用JSON或Protocol Buffers[^1]。 2. **核心组件** - **API网关**:负责路由请求、负载均衡和协议转换(如将MCP请求转换为数据库查询语句)。 - **上下文管理器**:维护会话状态,例如使用Redis存储实时上下文数据。 - **模型执行引擎**:调度AI模型运行,支持TensorFlow、PyTorch等框架的集成。 3. **开发实践示例** ```python # MCP Server 示例(简化) from flask import Flask, request app = Flask(__name__) @app.route('/execute', methods=['POST']) def handle_mcp_request(): context = request.json.get('context') tool_id = request.json.get('tool_id') # 调用外部工具并返回结果 result = external_tool_invoke(tool_id, context) return {'status': 'success', 'data': result} ``` --- #### 三、其他MCP相关概念 - **Burroughs MCP**:历史上由Unisix开发的**操作系统级MCP**(Master Control Program),专注于事务处理和大型机资源管理[^3],与AI协议无关。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值