必须先建立权限边界才能启用MCP服务器,否则存在越权风险;第一步声明服务器并锁定路径,第二步白名单过滤工具,第三步禁用非必要能力,第四步验证配置并重启。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

要让Hermes Agent调用GitHub、数据库或内部API等外部系统,必须在启用MCP服务器的同时建立明确的权限边界,否则模型可能越权读取敏感文件、执行危险SQL或提交恶意代码——这一步不是可选项,而是启动任何MCP集成前的强制前置动作。
第一步:声明MCP服务器并锁定执行路径
打开~/.hermes/config.yaml,在mcp_servers节点下添加服务器定义,【name字段必须小写且不含特殊字符,否则Hermes无法识别该服务器】。
以文件系统为例,配置必须显式指定根目录,防止越界访问:
filesystem:
command: "npx"
args: ["-y", "@modelcontextprotocol/server-filesystem", "/home/user/safe-project"]
PostgreSQL服务器必须通过DATABASE_URL环境变量注入连接串,且该URL中不能包含postgres://localhost/以外的主机名——【若使用127.0.0.1或域名,Hermes将拒绝加载该服务器】。
第二步:白名单过滤工具暴露面
不要跳过这一步。未加限制的MCP服务器会把全部能力暴露给模型,包括delete_file、drop_table、create_repository等高危操作。
在对应服务器配置块内添加tools子节点,仅列出允许调用的工具名:
github:
command: "npx"
args: ["@modelcontextprotocol/server-github"]
env: {GITHUB_TOKEN: "ghp_..."}
tools:
include: [list_issues, get_issue, search_code]
注意:此处include是唯一生效字段,exclude会被忽略;工具名必须与MCP服务器实际暴露的名称完全一致,大小写和下划线都不能错。
第三步:禁用非必要能力开关
MCP服务器默认启用资源发现、提示词注入、工具动态注册等功能,这些对生产环境属于冗余风险面。
在每个服务器配置中显式关闭它们:
filesystem:
# 其他字段...
prompts: false
resources: false
dynamic_tools: false
这三个布尔值必须设为false,设为空、null或遗漏字段都将导致Hermes沿用默认true值。
第四步:验证配置并加载
保存config.yaml后,在终端执行:hermes doctor --mcp
该命令会检查所有mcp_servers条目语法、路径可访问性及环境变量是否就位。若输出含✓ filesystem: OK且无✗行,说明配置通过基础校验。
然后执行:hermes restart
重启完成后,运行/tools命令,确认列表中只出现你白名单里声明的工具,例如mcp-github-list_issues,而不会出现mcp-github-delete_repository。


















