Appearance
MCP 集成:无限扩展 Hermes 的能力边界。Model Context Protocol,3 步接入,75+ 工具。
MCP 是什么
MCP = Model Context Protocol,由 Anthropic 开发,是一个开源标准。
USB 类比
| 对比项 | USB 出现前 | USB 出现后 |
|---|---|---|
| 键盘 | PS/2 接口 | USB |
| 打印机 | 并口 | USB |
| 鼠标 | 串口 | USB |
| 统一 | ❌ 每种设备专用接口 | ✅ 任何设备插上就能用 |
MCP 对 AI Agent 做的事情是一样的:
| 对比项 | MCP 出现前 | MCP 出现后 |
|---|---|---|
| GitHub | 写一套适配代码 | MCP 接口 |
| Notion | 再写一套适配代码 | MCP 接口 |
| 数据库 | 又写一套 | MCP 接口 |
| 统一 | ❌ 每个工具专门对接 | ✅ 任何服务暴露 MCP 接口就能调用 |
关键特性
对 Hermes 来说,MCP server 暴露的工具和内置工具完全透明:
- 分不清也无需分清哪个是原生的、哪个是 MCP 接入的
- 统一按工具调用
MCP vs 传统集成
| 维度 | 传统集成 | MCP 集成 |
|---|---|---|
| 代码量 | 每个工具单独开发 | 标准协议,一次开发 |
| 维护成本 | 高,需适配每个版本 | 低,协议稳定 |
| 扩展性 | 差,新增工具困难 | 好,工具池不断增长 |
| 灵活性 | 差,绑定特定实现 | 好,解耦设计 |
接入 MCP 服务器:三步搞定
第一步:确认 MCP 支持
| 情况 | 操作 |
|---|---|
| 标准安装脚本 | MCP 支持已包含,跳过这步 |
| 手动安装 | 执行以下命令 |
bash
cd ~/.hermes/hermes-agent
uv pip install -e ".[mcp]"第二步:编辑配置文件
打开 ~/.hermes/config.yaml,添加 mcp_servers 部分:
yaml
# ~/.hermes/config.yaml
mcp_servers:
github:
command: "npx"
args: ["-y", "@modelcontextprotocol/server-github"]
env:
GITHUB_PERSONAL_ACCESS_TOKEN: "ghp_xxxxx"
filesystem:
command: "npx"
args: ["-y", "@modelcontextprotocol/server-filesystem", "/home/user/projects"]
mysql:
command: "npx"
args: ["-y", "@modelcontextprotocol/server-mysql"]
env:
MYSQL_HOST: "127.0.0.1"
MYSQL_PORT: "3306"
MYSQL_USER: "hermes"
MYSQL_PASSWORD: "your_password"
MYSQL_DATABASE: "myapp"三个关键字段:
| 字段 | 说明 |
|---|---|
command | 启动命令(通常是 npx) |
args | 传给命令的参数 |
env | 环境变量(API Keys 等敏感信息) |
第三步:重启 Hermes
bash
hermes restart常用 MCP 工具推荐
开发类工具
| 工具 | 功能 | 使用场景 |
|---|---|---|
| GitHub | 代码仓库操作 | PR、Issue、代码审查 |
| Filesystem | 文件读写 | 项目文件管理 |
| MySQL | 数据库操作 | 数据查询、报表 |
| PostgreSQL | 数据库操作 | 数据分析 |
| Brave Search | 网页搜索 | 信息检索 |
效率类工具
| 工具 | 功能 | 使用场景 |
|---|---|---|
| Slack | 团队沟通 | 消息推送 |
| Google Drive | 云文档 | 文档管理 |
| Notion | 知识库 | 笔记整理 |
| 图片资源 | 设计素材 |
浏览器自动化
| 工具 | 功能 | 使用场景 |
|---|---|---|
| Playwright | 浏览器控制 | 网页自动化 |
| Puppeteer | 浏览器控制 | 网页截图、数据抓取 |
安全机制
MCP 工具权限很大,Hermes 有 4 层保护:
第一层:工具白名单
yaml
mcp_servers:
github:
allowed_tools:
- github_repos_list
- github_issues_list
- github_pulls_list第二层:终端沙箱
| 机制 | 说明 |
|---|---|
| 命令黑名单 | 禁止危险命令 |
| 路径限制 | 只能在指定目录操作 |
| 执行超时 | 防止死循环 |
第三层:命令审计
bash
# 查看 MCP 工具调用记录
hermes logs --filter mcp第四层:API Key 最小权限
| 原则 | 说明 |
|---|---|
| 只读权限 | 优先使用只读 Token |
| 范围限制 | 只授权需要的范围 |
| 定期轮换 | 定期更换 API Keys |
实战:GitHub 对接
1. 创建 GitHub Personal Access Token
- 访问 GitHub → Settings → Developer settings
- Personal access tokens → Generate new token
- 设置权限范围(建议只读)
2. 配置 GitHub MCP Server
yaml
mcp_servers:
github:
command: "npx"
args: ["-y", "@modelcontextprotocol/server-github"]
env:
GITHUB_PERSONAL_ACCESS_TOKEN: "ghp_xxxxx"3. 使用示例
| 操作 | 指令示例 |
|---|---|
| 列出仓库 | "查看我的所有仓库" |
| 查看 Issue | "列出最近 10 个 Issue" |
| 创建 PR | "帮我创建一个 PR" |
何时用 MCP
| 场景 | 推荐 |
|---|---|
| 需要操作外部服务 | ✅ 用 MCP |
| 重复性任务自动化 | ✅ 用 MCP |
| 一次性临时需求 | ❌ 手动操作 |
| 工具已内置 | ❌ 不需要 |
一句话总结
MCP = AI 世界的 USB,3 步接入 Hermes,无限扩展工具能力。
核心优势:
- 统一协议,一次开发,到处调用
- 75+ 工具可选
- 4 层安全保护
- 与内置工具透明融合
