【瞎折腾2】MCP概念学习笔记

这是一篇非技术向的AI学习笔记,记录近期关于MCP概念的学习心得

MCP 即模型上下文协议(Model Context Protocol)的缩写

我初次接触到MCP的概念大概是在24年底,彼时的认知大概是Anthropic又出了一个新的概念,并未深究;

本周,在身边又突然开始高密度的接收到关于MCP的文章。于是带着探索和好奇,开始正式研究MCP;

在正式研究之前,我先基于自己的认知预设了几个自己比较感兴趣的问题。带着问题去尝试寻求答案:

  1. 既然MCP是基于AI的某种定义,那么它可以赋予AI大模型什么附加能力?
  2. MCP是如何运转的?
  3. MCP的预期前景如何?当下以及未来有哪些可落地的场景

问题一:MCP可以赋予AI大模型什么附加能力

先找到了Anthropic官方对MCP的定义

MCP 是一种开放协议,它标准化了应用程序向 LLM 提供上下文的方式。可以将 MCP 视为 AI 应用程序的 USB-C 端口。正如 USB-C 提供了一种将设备连接到各种外围设备和配件的标准化方式一样,MCP 提供了一种将 AI 模型连接到不同数据源和工具的标准化方式。

简单理解起来,好像是指提供了一种第三方(可以是抽象的任何实体)与AI大模型交互的规范。但还是不太能理解MCP具体能做什么。

此时又在站内和互联网上检索了相关的开源项目,发现了一个更加利于理解的场景-AI搜索。

模型的联网可以解决模型训练集始终是迟滞的问题,为知识相对固定的大模型提供的动态信息输入的能力;而AI搜索和大模型的交互其实可以视作一个初级的MCP应用;

假设有一个AI搜索的MCP Server,当用户向大模型提问时,大模型通过MCP协议的机制,先将用户的提问发送给第三方的MCP Server,第三方的MCP Server通过内部逻辑检索并结构化内容,然后将结构化后的内容以及用户提问再转发给AI大模型,最终由AI大模型生成回答

sequenceDiagram
    participant User as 用户
    participant AI as AI大模型
    participant MCP as MCP Server
    
    User->>AI: 1. 提问
    AI->>MCP: 2. 转发提问
    Note over MCP: 3. 内部处理:<br/>- 检索相关内容<br/>- 结构化处理
    MCP->>AI: 4. 返回结构化内容+原始提问
    AI->>User: 5. 生成并返回答案

截至到当前,对MCP的个人理解:

MCP是一种为AI大模型实现附加能力的通用协议

但这里又延伸了2个新的问题:

  • MCP和AI代理的概念有什么本质的区别么?
  • AI模型如何自主决定是否调用以及调用哪个MCP Server?

携带着这个疑问,我尝试第二个问题的调研

MCP是如何运转的?

上文中假设了一种在联网搜索场景下的例子,那是否可以尝试抽象一下,将MCP理解为一种为大模型提供各类数据源的手段。

数据的来源可以是一个个人知识库,也可以是一个数据库,也可以是其他任意一个可以想象的实体(一个视频/一个订票平台等等)。但又回到了上文中提到的问题“MCP和AI代理的概念有什么本质的区别么?”。

此时可能需要关注MCP附带的协议属性。通过经验判断,任何涉及要协议的设计,其主要目的之一肯定是为了规范并且基于规范而通用。那MCP大概也是以此为初衷,那MCP要规范的范围是什么呢?再次翻看官方文档

MCP 提供了一种将 AI 模型连接到不同数据源和工具的标准化方式。

标准化代表了高可复用性,那么如果使用代理模式,假设是联网检索场景,我可能需要为不同的AI大模型适配而写一些碎片化的适配代码,这个碎片化也必然导致整个架构的碎片化。那么这里也大概解决了我上面的疑问之一;同时,这种标准化也为围绕AI大模型的某种生态构建提供了可能。

第二个问题:AI模型如何自主决定是否调用以及调用哪个MCP服务呢?同样是阅读官方文档以及官方示例,我发现在MCP协议中,你需要有一个注册服务的操作,也就是一个 JSON 配置文件,它把各个服务都配置在里面,类似于电脑同时连接了多个USB以及电源等接口,硬件基于自己的逻辑自由选择调用连接的设备;

研究到这里的时候,结论内出现了一个让人兴奋的单词“生态”,那么我们切进第三个预设问题

MCP的预期前景如何?当下以及未来有哪些可落地的场景

由于这篇文章并不涉及具体实现的技术向,我只站着产品的角度进行畅想

当下其实有一些AI工具,尤其是IDE工具已经内置了MCP 客户端,比如 Cursor、Cline、Claude Desktop 和 Cherry Studio,它们都已经具备连接到 MCP 服务器的能力;

上文反复提到了MCP的生态预期,因为如果光凭想象的话,几乎是万物皆可MCP,例举一些个人目前能想象到的场景;

简单版:

  • 查询天气

  • 查询数据库

  • 查询知识库

  • 查询通讯工具聊天记录

  • 各类辅助查询

    平台版:

  • 实现AI版的外卖平台,面向大模型,为大模型实现兼容的自动化点单能力

  • 全流程的代码工程(编码/调试/部署/测试)

那么如果在当下设

MCP的限制

多个MCP调用必然带来上下文窗口的增加,长上下带来的token消耗成本;
token消耗甚至可能影响到复杂任务的执行(上下文长度限制)

可能的市场机会

移动互联网刚兴起时,APP市场内的首批应用多是基于具体某个小场景的解决方案;那么如果我们将MCP协议作为一个生态的话,普通开发者应该也可以基于一些简单的小场景开始,开发并抢占一定的生态位;

而作为C端消费者来说,在MCP的初级阶段,体验和使用对自己有价值的相关服务即可

111 Likes

太强了,大佬

1 Like

尝试了 cline 的 mcp,搞了个 py脚本,发现 不能使用 venv 虚拟环境,必须把包安装在系统环境中,这点让我觉得挺尴尬的,不知道是不是打开方式不对

1 Like

进来学习

2 Likes

mark,学习一下

1 Like

感谢分享,感谢科普,大佬厉害

我这边好像没有遇到佬的这个问题。

看是否可能是conda和pip混用导致的问题

学习了。

太强了,感谢科普!

感谢大佬科普

1 Like

很好的科普文章!

1 Like

感谢科普

1 Like

谢谢科普

1 Like

很好的内容。
虽然我目前对 mpc 到底如何落地、提高生产力方面,还没有特别透彻的理解,但多向大佬们学学,一定会有收获。

1 Like

感谢分享!

2 Likes

太强了,先点赞保存再学习tieba_087

1 Like

感谢科普

1 Like

学习一下

py 脚本用 venv 里python 绝对路径执行就行

1 Like

感谢科普