AI Agents MCP协议详解
MCP 最早是由 Anthropic(Claude 的母公司)在 2024 年末推出的,但它是一个开源协议标准。目前不仅 Claude 在用,开源社区也迅速跟进,逐渐成为了 AI Agent(智能体)连接现实世界的工业标准。
MCP 的诞生源于解决 LLM 应用的一个关键限制,即它们与外部数据源和工具的隔离问题。
在使用AI Agent时还会看到另外两个概念
- API:是给程序用的,它是基石。
API调用:底层的“神经连接”。比如当你使用 Python 或 Node.js 调用 anthropic.messages.create 时,你是在进行最底层的通信。
- CLI:是给人(或运维脚本、或AI Agent)用的,它是为了省去写代码的麻烦,快速调用特定厂家的服务。
传统的CLI常用于快速原型测试:在给客户设计方案前,用 CLI 快速测试不同参数的响应质量。
CLI 工具往往会根据任务类型(比如 chat 或 extract)预挂载一套经过官方调优的系统 Prompt。这些 Prompt 的权重要高于你自己随手写的指令,因此回复会更“稳”。CLI通过“工程化的最佳实践”,帮你规避了大量因低效调用导致的 Token 浪费。
人类的“瑞士军刀”,CLI 这类工具主要是为了让人类在终端更爽地用 AI。
局限性:CLI 是孤立的。它是一个“品牌专用”的遥控器。如果你想让 MiniMax CLI 去读取你的微信聊天记录,除非开发者给 CLI 写了这个功能,否则它做不到。
- MCP:是给 AI Agent 用的,它是为了建立一个通用的协议,让 AI 能够像插拔 USB 设备一样,无缝切换并使用各种本地或云端的工具。赋予机器人操作本地文件、数据库和复杂 API 的能力。
在 AI 工作流中扮演的角色完全不同。
简单来说:API 是“原木”,CLI 是“成品家具”,而 MCP 是“家具拼装标准(如宜家接口)”。
MCP (模型上下文协议):AI 的“USB 接口”
MCP 的出现是为了终结“孤岛”。
本质区别:MCP 不是为了让你用命令去调 AI,而是为了让 AI 能够调动你本地的所有资源。
革命性点:它把“能力”和“模型”解耦了。
详解MCP

简单来说:MCP 让 AI 从一个只能“聊天”的窗口,变成了一个能合法、安全地操控你本地电脑和云端数据的“超级助理”。
MCP都安装在本地:
无论是 Host(比如你的 Hermes 或 OpenClaw)还是 Server(比如 SQLite MCP Server),它们都运行在你的这台 Mac(或 WSL)上。
数据不出本地:
这意味着你的数据库路径、登录密码、敏感的业务数据,永远不会发送给 Anthropic 或 OpenAI 的服务器。大模型看到的只是查询后的“结果字符串”。
查询的“执行权”在 Server 手里
具体的查询实现(驱动程序)就在 Server 进程中。
比如,Server (SQLite Server):这个进程里写好了 Python 或 Node.js 代码,专门用来连接 SQLite。它接收到 Host 的指令后,亲自去读取硬盘上的 .db 文件,把结果拿出来。
MCP Server 与 Client 之间的交互一般是通过什么协议完成的?
交互方式:MCP Server(通常是 Python 或 Node.js 编写)通过加载一个数据库驱动库(如 Python 的 sqlite3 模块或 Node.js 的 better-sqlite3),直接调用该库提供的 C 语言函数(C-bindings)。
通信本质:这属于 进程内调用(In-process call)。MCP Server 进程直接通过操作系统底层的文件系统接口(File I/O)来读取硬盘上的 .db 文件。
MCP Server 与 PostgreSQL 或 MySQL通过什么方式完成交互的?
与 SQLite 的文件直接读写不同,PostgreSQL 和 MySQL 是独立的数据库服务器进程。它们与 MCP Server 之间的交互是通过 网络套接字(Network Sockets) 使用特定的 有线协议(Wire Protocols) 完成的。
在你的本地机器上,这种交互实际上分成了三个逻辑层:
- 第一层:驱动程序 (The Driver)
- 第二层:建立连接 (The Connection)
- 第三层:数据交换 (The Exchange)
MCP 的优势
标准化:只要你的工具符合 MCP 协议,任何支持 MCP 的 AI 应用(如 Claude)都能立即调用它,无需额外开发。
安全性(私有化):这是 MCP 最强的一点。MCP Server 可以运行在你的本地计算机上,AI 只有在需要时通过协议“索要”数据,数据不需要提前上传到云端。
生态互通:目前社区已经有数百个开源的 MCP Server(如访问 PostgreSQL、Google Maps、GitHub、Memory 等)。
用一个直观的类比
如果你把 Hermes 比作 VS Code (Host):
MCP Server 就是 VS Code 里的 扩展插件(Extension)。
插件本身是一个独立的程序(进程),但它是由 VS Code 启动的。
插件为 VS Code 提供“格式化代码”或“连接 Git”的功能。
为什么MCP这种架构很高级?(解耦)
这种“具体实现在 Server 中”的设计,解决了开发中的一个大麻烦:环境隔离。
假设: 你的业务数据库是老旧的 PostgreSQL 10,需要特定的驱动版本。
以前: 你得把这个驱动装在 Hermes 里面。如果 Hermes 还要连 GitHub、连 Google 搜索,它的代码会变得臃肿不堪,依赖冲突(Dependency Hell)会让你抓狂。
现在(MCP): * Hermes 的代码保持纯净。
PostgreSQL 的复杂驱动只存在于那个独立的 PostgreSQL MCP Server 进程里。
如果以后你想把数据库换成 MySQL,你只需要换一个 MySQL MCP Server 进程运行,Hermes 的核心逻辑一行都不用改。
总结一下这个过程:
AI(云端大脑):产生想法 —— “我想看看数据库”。
Host(你的openclaw或Hermes主程序):通过 stdio 管道,把这个想法变成一条 JSON 命令发给子进程。
Server(具体的子进程):它是真正的“劳动力”,在你的本地环境中调用数据库驱动,执行查询。
Server:把查到的数据通过管道吐回给 Host。
Host:把数据喂给 AI 消化。
所以,Server 进程就是那个“脏活累活我来干,数据安全我守门”的本地专家。
现成的 MCP Server 有哪些?
现在 MCP 生态发展极快,你不需要自己写所有工具。以下是一些你可以直接拿来用的“现成插件”:
基础工具类
Filesystem: 允许 AI 在授权目录下读取、写入、搜索文件(最基础但也最强大)。
Google Search / Brave Search: 让 AI 具备实时联网搜索能力。
SQLite / PostgreSQL: 让 AI 直接查询你的业务数据库(比如你 WhatsApp 的消息日志)。
开发与办公类
GitHub: AI 可以帮你提 PR、读代码仓库、管理 Issue。
Slack / Discord: 跨平台消息发送。
Google Maps: 获取地理位置、交通和时间信息。
Memory: 一个专门用于存储用户长期偏好和上下文的本地数据库(非常适合你的“首席数字管家”场景)。
你的特殊需求类 (针对 OpenClaw)
Fetch: 一个通用的网页抓取工具,可以将网页内容转 为 AI 易读的 Markdown。如果你想让 Hermes 帮你分析某个 URL 的内容,这个必装。
- 动手建议:如何开始?
如果你想尝试,我建议先从最简单的 Fetch 或 Filesystem MCP Server 入手。
声明:本文素材来源网络,版权归原作者所有。如涉及作品版权问题,请与我联系删除。