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} 语法引用环境变量——配置文件留在版本控制里,密钥留在每个开发者的本地环境中。