Home
avatar

麒麟剑

接上外部"器官":用 MCP 协议打通你的工具生态

前面我们攒出了一支 Agent 团队,每人自带 83 个内置工具(terminal/file/browser/code_execution…)。但现实是:你公司的真功夫不在这些通用工具里,而在 GitHub 仓库、生产数据库、内部 API、还有你已经跑顺的 n8n 工作流

让 Agent 学会调用每一个外部系统,过去得写一堆原生工具胶水代码。现在不用了——MCP(Model Context Protocol) 就是干这个的。本节把它接上。

一、MCP 是什么

Hermes 中文桌面版工作台(暗色模式) ▲ Hermes 中文桌面版工作台(暗色模式)

MCP 是 Anthropic 提出的开放协议,让 LLM Agent 连接外部”工具服务器”。对 Hermes 而言:

  • 不用为每个外部系统写原生工具,连上 MCP server 就自动获得它的能力(GitHub 操作、查库、调内部 API…)。
  • 两种传输:stdio(本地子进程)和远程 HTTP
  • 启动时自动发现、注册工具,支持按服务器过滤。
  • 关键彩蛋:Hermes 也能反向当 MCP server——hermes mcp serve,把你的 Hermes 数字员工暴露给 Claude Code 之类的客户端调用。
Hermes Agent
   ├─ 内置 83 工具(terminal/file/browser…)
   └─ MCP 客户端
         ├─ stdio:  npx @modelcontextprotocol/server-github
         ├─ remote: https://mcp.example.com/mcp   (HTTP)
         └─ remote: https://mcp.linear.app/mcp     (OAuth)


              外部工具服务器(GitHub / DB / 内部API / n8n)

二、配置示例

写入 ~/.hermes/config.yamlmcp_servers 段:

mcp_servers:
  github:
    command: "npx"
    args: ["-y", "@modelcontextprotocol/server-github"]
    env:
      GITHUB_PERSONAL_ACCESS_TOKEN: "***"
  remote_api:
    url: "https://mcp.example.com/mcp"
    headers:
      Authorization: "Bearer ***"
  linear:                       # OAuth 托管 MCP
    url: "https://mcp.linear.app/mcp"
    auth: oauth

OAuth 令牌会缓存到 ~/.hermes/mcp-tokens/<server>.json(权限 0o600),别手贱改权限。

三、工具过滤:别给 Agent 太多枪

不是每个 MCP 工具都该暴露。三种过滤:

mcp_servers:
  legacy:
    url: "https://mcp.legacy.internal"
    enabled: false                       # 完全跳过,不加载
  github:
    tools:
      include: [create_issue, list_issues]   # 白名单:只用这两个
  stripe:
    tools:
      exclude: [delete_customer]             # 黑名单:禁用危险操作
  cloudflare:
    tools:
      exclude: ["*_radar_*", "*_accounts_dlp_*"]   # glob 通配

规则:includeexclude 同存时 include 胜出(白名单优先)。还能单独关资源/提示包装:tools: { prompts: false, resources: false }

四、安全要点(这块最容易翻车)

  • stdio 环境不过度透传:只显式 env + 安全基线,防密钥随子进程泄露。
  • 工具结果净化:Hermes 会剥离 U+E0000–U+E007F 这段不可见 Unicode TAG,防止有人用隐藏字符做提示注入走私。
  • mTLS:远程 server 支持 client_cert / client_key(支持 ~ 展开)。
  • 令牌权限:OAuth 缓存文件权限 0o600,目录隔离。

五、命令全集

hermes mcp catalog            # 浏览可用 MCP 目录
hermes mcp install            # 安装
hermes mcp add                # 添加
hermes mcp remove             # 移除
hermes mcp list               # 列出已接
hermes mcp test               # 测试连通
hermes mcp configure          # 交互配置
hermes mcp login              # OAuth 登录
hermes mcp serve              # 反向:把 Hermes 当 MCP server 暴露出去
hermes mcp picker             # 选择器

改完配置记得 /reload-mcp 热重载(也可 hermes mcp configure)。

六、避坑提示

⚠️ stdio 的 env 别图省事透传整个环境。 只给 MCP server 真正需要的变量,否则你 .env 里的全部密钥可能被子进程看到。

⚠️ enabled: false 才是彻底关停。 只想临时藏起来用这个,别留着一堆用不上的 server 拖慢启动。

⚠️ 危险 MCP 工具务必 excludedelete_*push --force 这类,能禁就禁,留个白名单更稳。

⚠️ 远程 HTTP 必须走 mTLS 或鉴权头。http:// 内网也别裸奔,OAuth/Bearer 至少加上。

⚠️ MCP 工具不参与内置工具审批链。 它走自己的过滤规则,安全边界要单独在 tools: 段设好。

本节能造出什么数字员工

  • GitHub 协管员:接 server-github,自动建 issue、查 PR、写 release note。
  • 数据库问答员:接一个 DB 的 MCP server,用自然语言查生产数据、生成报表。
  • n8n 调度员:把你已有的 n8n 工作流通过 MCP 暴露,让 Agent 一句话触发整条自动化流水线(这点跟作者自己的 n8n 工作流强相关——别重造轮子,把现有自动化接进 Agent 才是正路)。
  • 可被调用的”员工即服务”hermes mcp serve 把某个专精 Bot 暴露给 Claude Code,让它也能叫你的数字员工干活。

下篇预告

工具接得越多,风险面越大——一个能删数据库的 Agent 要是被乱调用,后果比”回答不准”严重一万倍。第 12 节《别把家门钥匙交出去:八层安全防护与企业级加固》——纠正流传的”六层”说法,官方实际是八层防御,外加 Bitwarden 凭据管理和 iron-proxy 出口防火墙。

延伸阅读

Hermes Agent 数字员工 AI智能体 自托管 Nous Research MCP 工具集成 n8n 协议