通过MCP协议令AI控制电脑
[嵌入式小智AI机器人] 通过 MCP 协议令 AI 控制你的电脑
前几个月入手了最新出来的小智 AI 的 ESP32 开发版,这两天群里的大佬做的 小智 AI_MCP 一键包更新到了 27.35.6 版本,上手玩玩,顺便记录下。
碎碎念
不得不说我觉得目前的小智AI除了在 逻辑思维 以及 记忆能力 、 视觉(抽象的图像理解能力) 和 任务化(推理) 方面上,已经是最接近 *智能体 *的产品了。
同时也是近几年 开源势头最猛烈的 、 最平民化的 实体智能体产品。它的低成本硬件(ESP32-S3开发板不到100元)、开源生态(MIT许可证)和强大的社区支持,让普通人也能轻松打造自己的AI助手,堪比当年Linux。(仅代表个人,勿喷)
1 | #### 什么是小智AI_MCP一键包? |
不过说实在的我有点不甘心,明明也做了类似的东西,但是效果就是差那么点,没达到小智 AI 那种我想要实现的效果。
—— 这个(程序实现)
https://github.com/toke648/AI-Interactive-LLM-VTuber
—— 这个(智能终端)
https://github.com/toke648/AutoExecAI
—— 还有这个(理论 & 工作流)
https://github.com/toke648/Neuro-reasoning-big-model
https://github.com/toke648/LLM-Cognitive-System-Architecture
难道是我还不够努力吗…
要争取赶上各位大佬 (。>︿<)_θ
为什么 MCP 是一个突破
我们知道过去一年时间,AI 模型的发展非常迅速,从 GPT 4 到 Claude Sonnet 3.5 到 Deepseek R1,推理和幻觉都进步的非常明显。
新的 AI 应用也很多,但我们都能感受到的一点是,目前市场上的 AI 应用基本都是全新的服务,和我们原来常用的服务和系统并没有集成,换句话说,AI 模型和我们已有系统集成发展的很缓慢。
例如我们目前还不能同时通过某个 AI 应用来做到联网搜索、发送邮件、发布自己的博客等等,这些功能单个实现都不是很难,但是如果要全部集成到一个系统里面,就会变得遥不可及。
如果你还没有具体的感受,我们可以思考一下日常开发中,想象一下在 IDE 中,我们可以通过 IDE 的 AI 来完成下面这些工作。
- 询问 AI 来查询本地数据库已有的数据来辅助开发
- 询问 AI 搜索 Github Issue 来判断某问题是不是已知的bug
- 通过 AI 将某个 PR 的意见发送给同事的即时通讯软件(例如 Slack)来 Code Review
- 通过 AI 查询甚至修改当前 AWS、Azure 的配置来完成部署
以上谈到的这些功能通过 MCP 目前正在变为现实,大家可以关注 Cursor MCP 和 Windsurf MCP 获取更多的信息。可以试试用 Cursor MCP + browsertools 插件来体验一下在 Cursor 中自动获取 Chrome dev tools console log 的能力。
为什么 AI 集成已有服务的进展这么缓慢?这里面有很多的原因,一方面是企业级的数据很敏感,大多数企业都要很长的时间和流程来动。另一个方面是技术方面,我们缺少一个开放的、通用的、有共识的协议标准。
MCP 就是 Claude(Anthropic) 主导发布的一个开放的、通用的、有共识的协议标准,如果你是一个对 AI 模型熟悉的开发人员,想必对 Anthropic 这个公司不会陌生,他们发布了 Claude 3.5 Sonnet 的模型,到目前为止应该还是最强的编程 AI 模型(刚写完就发布了 3.7😅)。
这里还是要多提一句,这个协议的发布最好机会应该是属于 OpenAI 的,如果 OpenAI 刚发布 GPT 时就推动协议,相信大家都不会拒绝,但是 OpenAI 变成了 CloseAI,只发布了一个封闭的 GPTs,这种需要主导和共识的标准协议一般很难社区自发形成,一般由行业巨头来主导。
Claude 发布了 MCP 后,官方的 Claude Desktop 就开放了 MCP 功能,并且推动了开源组织 Model Context Protocol,由不同的公司和社区进行参与,例如下面就列举了一些由不同组织发布 MCP 服务器的例子。
关于 MCP 协议
为什么是 MCP?
看到这里你可能有一个问题:在 23 年 OpenAI 发布 GPT function calling 的时候,不是也可以实现类似的功能吗?我们之前博客介绍的 AI Agent,不就是用来集成不同服务吗?那么为什么现在又有 MCP?
简单总结一下三者之间的区别:
Function Calling
Function Calling 指的是 AI 模型根据上下文自动执行函数的机制,充当 AI 模型与外部系统之间的桥梁,不同模型有不同的实现,接入比较零散。
缺点也很明显,比如:
- 多轮对话不好维护
- 调用任务增多时管理复杂
Model Context Protocol(MCP)
MCP 是一种标准协议,就像 Type-C 接口一样,让 AI 模型能与不同 API、数据源无缝对接,避免各平台零散调用,构建标准化生态。
MCP 有这些优点:
- 通用标准,服务商可接入,开发者也能方便扩展
- 把任务分层处理,有描述、有输入/输出,能给 AI Agent 大大减少负担
- 上下文一致,支持复杂对话与任务链式调用
AI Agent
AI Agent 就是能自主决策、执行任务的智能体,有 MCP 协议帮忙,它能方便接入各种能力,然后自己分析目标、自动完成任务,不再仅仅停留在“建议你怎么做”的阶段。
MCP 如何工作
那我们来介绍一下 MCP 的工作原理。首先我们看一下官方的 MCP 架构图。
MCP 架构图
总共分为了下面五个部分:
- MCP Hosts: Hosts 是指 LLM 启动连接的应用程序,像 Cursor, Claude Desktop、Cline 这样的应用程序。
- MCP Clients: 客户端是用来在 Hosts 应用程序内维护与 Server 之间 1:1 连接。
- MCP Servers: 通过标准化的协议,为 Client 端提供上下文、工具和提示。
- Local Data Sources: 本地的文件、数据库和 API。
- Remote Services: 外部的文件、数据库和 API。
整个 MCP 协议核心的在于 Server,因为 Host 和 Client 相信熟悉计算机网络的都不会陌生,非常好理解,但是 Server 如何理解呢?
看看 Cursor 的 AI Agent 发展过程,我们会发现整个 AI 自动化的过程发展会是从 Chat 到 Composer 再进化到完整的 AI Agent。
AI Chat 只是提供建议,如何将 AI 的 response 转化为行为和最终的结果,全部依靠人类,例如手动复制粘贴,或者进行某些修改。
AI Composer 是可以自动修改代码,但是需要人类参与和确认,并且无法做到除了修改代码之外的其它操作。
AI Agent 是一个完全的自动化程序,未来完全可以做到自动读取 Figma 的图片,自动生产代码,自动读取日志,自动调试代码,自动 push 代码到 GitHub。
而 MCP Server 就是为了实现 AI Agent 的自动化而存在的,它是一个中间层,告诉 AI Agent 目前存在哪些服务,哪些 API,哪些数据源,AI Agent 可以根据 Server 提供的信息来决定是否调用某个服务,然后通过 Function Calling 来执行函数。
详细可以去这里看
引用自大佬: https://guangzhengli.com/blog/zh/model-context-protocol
小智AI官方的MCP接口实现:
https://github.com/78/mcp-calculator
代码示例:
1 | from mcp.server.fastmcp import FastMCP |
小智AI_MCP一键包下载链接: 百度网盘(提取码:isdq)
点击安装程序就能自动配置环境,支持自定义功能(需要提前下载好python),比如:
1 | 在电脑上打开URL网址 |
也可以自己扩展,比如整一个开关灯、酷狗点歌之类的小工具,然后放到 C:\xiaozhi\MCP\MCP_Windows
里,模型自动识别。
下面是我给酷狗点歌写的工具示例,直接用 @mcp.tool()
修饰就能给 AI 调用啦:
1 |
|
资源链接:
- MCP 终极指南 —— (大…大佬…,这个UI爱了)
- 知乎解读 MCP 协议
- MCP 官网
- 小智AI_MCP一键包下载链接:百度网盘(提取码:isdq)
- Model Context Protocol
- A Beginner’s Guide to using MCP in Windsurf!
说实在的感觉我只会使用工具但懒得去了解工具的原理,不知道这对不对(因为学习原理实在太耗费精力了,还不如找点有意思的东西上手试试..)