什么是 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 被迅速采纳这件事,对你正在做的事情意味着什么。
什么是 MCP,以及你为什么该关注它的更多相关文章
- 三星DRAM+NAND FLASH 合成MCP芯片介绍及应用攻略
转自:http://blog.csdn.net/gao5528/article/details/6256119 三星DRAM+NAND FLASH 合成MCP芯片介绍及应用攻略(K5系列产品篇) 一年 ...
- Nacos 1.1.4 发布,业界率先支持 Istio MCP 协议
Nacos是阿里巴巴开源的服务发现与配置管理项目,本次发布的1.1.4版本,主要带来的是与Istio的对接功能,使用的是Istio最新的MCP协议.本文将介绍包括这个功能在内的新版本发布的功能. 升级 ...
- 【开源毕设】一款精美的家校互动APP分享——爱吖校推 [你关注的,我们才推](持续开源更新3)附高效动态压缩Bitmap
一.写在前面 爱吖校推如同它的名字一样,是一款校园类信息推送交流平台,这么多的家校互动类软件,你选择了我,这是我的幸运.从第一次在博客园上写博客到现在,我一次一次地提高博文的质量和代码的可读性,都是为 ...
- C#开发微信门户及应用(4)--关注用户列表及详细信息管理
在上个月的对C#开发微信门户及应用做了介绍,写过了几篇的随笔进行分享,由于时间关系,间隔了一段时间没有继续写这个系列的博客了,并不是对这个方面停止了研究,而是继续深入探索这方面的技术,为了更好的应用起 ...
- .NET开发人员值得关注的七个开源项目 .
NET开发人员值得关注的七个开源项目 软近几年在.NET社区开源项目方面投入了相当多的时间和资源,不禁让原本对峙的开源社区阵营大吃一惊,从微软.NET社区中的反应来看,微软.NET开发阵营对开源工具的 ...
- [从产品角度学EXCEL 00]-为什么要关注EXCEL的本质
前言 Hello 大家好,我是尾巴,从今天开始,在这里连载<从产品角度学EXCEL>的系列文章.本文不接受无授权转载,如需转载,请先联系我,非常感谢. 与世面上的大部分EXCEL教程不同的 ...
- C# asp.net 搭建微信公众平台(可实现关注消息与消息自动回复)的代码以及我所遇到的问题
[引言] 利用asp.net搭建微信公众平台的案例并不多,微信官方给的案例是用PHP的,网上能找到的代码很多也是存在着这样那样的问题或者缺少部分方法,无法使用,下面是我依照官方文档写的基于.net 搭 ...
- [已招满,谢谢关注]Sogou招聘C#开发人员,有意者请进
职位名称:c#开发工程师 工作地点:搜狐网络大厦 职责:搜狗商业平台桌面产品 职位要求: 1. 计算机或者相关专业本科或以上学历 2. 精通c#,两年以上实际项目开发经验 3. 熟悉C/S开发架构和设 ...
- Worktile协同特色之一:无处不在的关注
团队沟通中常见问题 在回答这个问题之前,我们不妨先来思考一下,团队成员之间互相配合沟通的几个问题:1. 任务的执行者在完成这个任务时,如何通知到此任务相关联的其他成员,比如该任务的后续任务执行者?2. ...
- fir.im Weekly - 除了新 MacBook Pro,近期值得关注的移动开发好资源
最近,最引人瞩目的莫过于 Apple 产品发布会,MacBook Pro 的更新可能是四年来变化最大的一版.除了更轻.更薄.性能更好.电力更足之外,最大的变化是加入了Touch Bar,被定义为 Ma ...
随机推荐
- SpringCloud(四) - 微信获取用户信息
1.项目介绍 2.微信公众平台 和 微信开放文档 2.1 微信公众平台 2.1.1 网址链接 https://mp.weixin.qq.com/debug/cgi-bin/sandboxinfo?ac ...
- SpringBoot(九) - Swagger
1.依赖 <!-- swagger 核心 --> <dependency> <groupId>io.springfox</groupId> <ar ...
- 高性能队列Disruptor
背景 Disruptor是英国外汇交易公司LMAX开发的一个高性能队列,研发的初衷是解决内存队列的延迟问题(在性能测试中发现竟然与I/O操作处于同样的数量级).基于Disruptor开发的系统单线程能 ...
- linux:项目上线
服务器选择 项目上线服务器必须是外网服务器 真实服务器 成本过高.多用于测试 云服务器 阿里云.腾讯云.百度云.华为云.盛大云.新浪云.亚马逊云等 官网:阿里云 1.注册/登录后 2.支付成功即可![ ...
- Q:ORACLE 之无法删除正在连接的用户?
首先用户名必须用单引号引起来且必须大写,如下是失效的 1.查询用户进程 SELECT SID,SERIAL# FROM V$SESSION WHERE USERNAME='V7HIS_1'; 2.删除 ...
- 单用户模式启动 CentOS/RHEL 7/8 的三种方法
单用户模式启动 CentOS/RHEL 7/8 的三种方法 单用户模式,也被称为维护模式,超级用户可以在此模式下恢复/修复系统问题. 通常情况下,这类问题在多用户环境中修复不了.系统可以启动但功能 ...
- Iceberg问题记录-数据湖问题记录跟进
一.问题追踪 问题 详细描述 提出问题时间 是否完成 计划完成时间 备注 了解Iceberg数据存储方式 了解元数据存储信息.数据组织方式.查询时处理流程等 20231013 是 20231019 ! ...
- 深入浅出理解Continuous Queries和Cypher Query Language
1. 什么是Continuous Queries? 连续查询是 Drasi 最重要的组件.它们是您告诉 Drasi 要在源系统中检测哪些更改以及检测到更改时要分发的数据的机制.源为订阅的 Contin ...
- AD22 solder层开窗不见了什么原因?PCB阻焊层不显示阻焊。
做回来的板子焊盘没有开窗! 3D上看也是没有的! 上网查了,在设计->规则->Mask->SolderMaskExpansion 将盖油勾选去掉即可. END
- python - [12] 脚本一文通
题记部分 一.文件夹&文件 (1)删除空文件夹 # 删除目录中的空文件夹 import os def move_epty_folders(directory_path): for root, ...