1. 首页 > 技术教程 > 正文

MCP 是什么?Model Context Protocol 对 AI Agent 有什么意义

MCP 是 Model Context Protocol 的缩写,翻译过来是“模型上下文协议”。简单说,它是一套标准接口,让 AI Agent 能安全、统一地调用外部工具、访问数据源,而不是让每个 Agent 开发者自己写一堆不兼容的插件。如果你正在折腾 Claude Code、Codex、Hermes Agent,或者用 n8n 搭自动化工作流,理解 MCP 能帮你少走不少弯路——至少不用反复纠结“这个 Agent 怎么连不上我的数据库”。

zhujixuan TASK 109

MCP 是什么?一句话讲透

MCP 定义了 AI 模型与外部资源(文件、数据库、API、搜索引擎等)之间的通信规则。它把“工具调用”这件事标准化了,类似 USB 接口——不管你是鼠标还是 U 盘,插上就能用。在 AI Agent 场景里,MCP 让 Agent 知道:“我可以用这个工具,参数怎么传,结果怎么回。”

MCP 的核心组件包括:

Host:运行 AI Agent 的主机环境,比如 Claude Desktop、Open WebUI 或自定义脚本。

Client:Agent 内部负责与 MCP 服务器通信的模块,通常由框架封装好。

Server:提供具体能力(如文件读取、数据库查询)的轻量服务,每个 Server 暴露一组工具。

Transport:通信方式,常用的是 stdio(本地进程间)和 HTTP+SSE(远程调用)。

所以 MCP 不是某个具体的软件,而是一个协议规范。目前 Anthropic 主导推进,但已经有不少开源实现,比如 mcp-server-filesystem、mcp-server-sqlite 等。

MCP 对 AI Agent 的意义:从“玩具”到“生产力”

1. 告别“硬编码工具”

以前写 Agent,要调用一个搜索功能,要么自己写 requests 解析,要么用 LangChain 的 Tool 类,但换个框架就得重写。MCP 统一了工具描述格式(JSON Schema),Agent 通过 MCP 协议自动发现可用工具,开发者只需要维护一个 MCP Server 配置。比如用 Claude Code 时,你只需要在配置里声明 `mcpServers`,它就能直接调用你本地的文件系统、Git 仓库,甚至跑 Docker 命令。

2. 安全边界更清晰

MCP 的 Server 可以独立运行,权限控制粒度很细。比如你不想让 Agent 随便删文件,可以只给只读权限的 MCP Server。这在 VPS 上部署 AI Agent 时特别重要——很多新手直接让 Agent 跑 root 权限,结果一个 prompt 注入就把系统搞崩了。用 MCP 隔离,至少能兜底。

3. 跨模型、跨框架兼容

理论上,只要模型或框架支持 MCP Client,就能复用同一套工具。比如你给 Claude 写了一个查询 MySQL 的 MCP Server,换到 OpenAI 的 Agent 上,只要它支持 MCP,配置一下就能用。目前 Claude Code、Codex(Anthropic 出品)、Hermes Agent(开源)都已经原生支持 MCP。n8n 社区也有 MCP 节点,可以直接把 Agent 工具接入自动化工作流。

4. 适合 VPS 部署的轻量方案

MCP Server 通常用 Node.js、Python 或 Go 编写,单个进程内存占用 50-100MB,在 1C2G 的 VPS 上就能跑四五个。搭配 Ollama 本地模型,你可以完全离线跑一个能查文件、写代码、调 API 的 Agent。相比之前用 LangChain 搭全套,MCP 的部署和维护成本低得多。

MCP 实战:在 VPS 上搭一个能读写文件的 Agent

下面以 Claude Code(CLI 版)为例,演示 MCP 的实际用法。假设你已经有一台 Ubuntu 22.04 的 VPS,装了 Node.js 18+ 和 Claude Code。

第一步:安装 MCP Server

Claude Code 自带了几个内置 MCP Server,但如果你需要自定义工具,可以装社区版的 `@modelcontextprotocol/server-filesystem`:

npm install -g @modelcontextprotocol/server-filesystem

mcp-server-filesystem –help

第二步:配置 Claude Code 的 MCP

编辑 `~/.claude/claude_desktop_config.json`(如果是 CLI 模式,配置在 `~/.config/claude/config.json`):

json
{
“mcpServers”: {
“filesystem”: {
“command”: “mcp-server-filesystem”,
“args”: [“–allowed-directories”, “/home/ubuntu/data,/tmp”]
}
}
}

这里指定了允许 Agent 访问的目录,其他路径会被拒绝。

第三步:启动 Claude Code 并测试

claude

如果配置正确,Claude 会调用 `read_directory` 工具,返回目录列表。你还可以让它创建文件、读取内容、写入内容——但只能在你限定的目录内。

老鸟叮嘱:避坑清单

1.别把 MCP Server 暴露到公网:如果要用 HTTP+SSE 传输,务必加 API Key 验证,或者只绑定本地 127.0.0.1。否则你的 VPS 可能变成别人的 Agent 工具。
2.权限给最小:文件系统 MCP Server 只给读权限,除非你明确需要写。数据库查询只给 SELECT,别给 DELETE。
3.MCP 不是银弹:复杂业务逻辑(比如多步骤审批)还是得用 n8n 这类工作流引擎,MCP 只负责单次工具调用。
4.版本兼容要留意:MCP 协议还在迭代,Claude Code 的版本和 MCP Server 版本需要匹配。如果遇到 “Tool not found”,先检查 `npm update` 和 `claude update`。
5.日志排查:MCP Server 的日志默认输出到 stderr。如果你发现 Agent 调用失败,加 `–log-level debug` 看看具体错误。常见问题:路径写错、权限不足、JSON Schema 格式不匹配。

FAQ

Q1:MCP 和 Function Calling 有什么区别?
A:Function Calling 是 OpenAI 等模型自带的参数结构,只定义了“怎么描述工具”;MCP 是完整的协议,包括工具发现、调用、传输、安全等。MCP 可以封装 Function Calling 作为底层,但反过来不行。

Q2:我只有 1C1G 的 VPS,能跑 MCP 吗?
A:可以。MCP Server 本身很轻量,但如果你同时跑本地模型(如 Ollama 的 7B 模型),内存可能不够。建议最小配置 2G 内存,或者用 API 调用(如 Claude API)代替本地模型。

Q3:MCP 支持哪些编程语言?
A:官方提供 TypeScript、Python 和 Java 的 SDK。社区还有 Go、Rust 实现。推荐先用 TypeScript 版,生态最完善。

Q4:怎么让 n8n 调用 MCP 工具?
A:n8n 社区有“MCP Client”节点(需要手动安装)。配置时填 MCP Server 的地址(如 `http://127.0.0.1:3000`)和工具名,就能在工作流里调用。

Q5:我写的 MCP Server 怎么给其他人用?
A:打包成 npm 包或 Docker 镜像,对方通过 `mcpServers` 配置引用即可。注意文档里要写明依赖、权限要求和参数说明。

Q6:MCP 安全吗?会不会被 prompt 注入?
A:MCP 本身不解决 prompt 注入,但可以通过 Server 的权限控制降低风险。比如文件系统 Server 限制路径,数据库 Server 只允许 SELECT。更安全的做法是结合沙箱(如 Docker)运行 Agent。

总结

MCP 正在成为 AI Agent 工具调用的“通用语言”,它让开发者能像搭积木一样组合各种能力,同时保持安全边界。如果你已经在 VPS 上跑 Claude Code 或 Hermes Agent,花半小时配置一个 MCP Server,就能让 Agent 从“聊聊天”进化到“干实事”。下一步可以试试把 MCP 和 n8n 打通,把 Agent 输出直接塞进自动化工作流——这才是 AI 落地的正确姿势。

**相关阅读:**

– [VPS部署AI工具100讲:AI Agent、Codex、Claude Code、Hermes Agent、Ollama与自动化工作流实战教程](https://www.zhujixuan.com/jishujiaocheng/9606.html)
– [Codex、Claude Code、OpenClaw、Hermes Agent、Ollama、n8n 分别适合什么场景](https://www.zhujixuan.com/jishujiaocheng/9759.html)
– [n8n VPS 部署教程:搭建自己的自动化工作流平台](https://www.zhujixuan.com/jishujiaocheng/9892.html)

转载请注明出处:https://www.zhujixuan.com/jishujiaocheng/9829.html 商家投稿邮箱:zhujixuanblog@qq.com