K2.4.2 Task 2.4

${ENV_VAR}:让密钥远离版本控制

MCP server 配置经常需要密钥(API token、密码)。因为 .mcp.json 是版本控制的,密钥放在环境变量里通过 ${ENV_VAR} 语法引用。配置文件可以安全提交;每个开发者在本地设置自己的 token。

模式

{
  "mcpServers": {
    "github": {
      "command": "github-mcp-server",
      "env": {
        "GITHUB_TOKEN": "${GITHUB_TOKEN}"
      }
    }
  }
}

运行时,${GITHUB_TOKEN} 解析为开发者本地的环境变量。真实 token 永远不会出现在仓库中。

不该做的事

硬编码密钥:.mcp.json 里写 "GITHUB_TOKEN": "ghp_abc123..." 把 token 暴露给所有有仓库访问权的人,而且永远留在 git 历史里。

把 .mcp.json 加入 .gitignore:这阻止了和团队共享 MCP 配置——项目级配置的意义所在。每个开发者都得手动配置。

Base64 编码"GITHUB_TOKEN": "Z2hwX2FiYzEyMy4uLg==" 提供零安全。任何人都能即时解码 base64。这是混淆,不是加密。

带 import 的独立密钥文件:.mcp.json 里没有 import 指令。${ENV_VAR} 语法就是分离密钥和配置的内置机制。

每人一个 token

每个开发者在本地环境中设置 GITHUB_TOKEN(shell profile、.env 文件、IDE 设置)。同一份 .mcp.json 对所有人都能用——配置是共享的,密钥是个人的。


一句话总结:.mcp.json 中用 ${ENV_VAR} 语法引用环境变量——配置文件留在版本控制里,密钥留在每个开发者的本地环境中。