MCP 工具
MCP server 只暴露两个工具。我们刻意没有提供存储或读取密钥值的工具:如果密钥值经过工具调用传递,它就会出现在模型的上下文中。
list_secrets
无输入。每个密钥返回一行,包含名称、描述、使用次数和最后使用时间:
- STRIPE_KEY: stripe, test mode [used 2x, last: 2026-10-10T13:10:03+00:00]
- OPENAI_KEY: openai, personal [used 0x, last: never]
密钥库为空时,它会如实说明,并告诉 agent 密钥需要通过 keygrant set 以带外(out-of-band)方式添加。
exec_with_secrets
运行一条 shell 命令,并将密钥作为环境变量注入。
| 输入 | 类型 | 必填 | 含义 |
|---|---|---|---|
command | string | 是 | 要运行的命令。在 macOS 和 Linux 上通过 sh -c 运行,在 Windows 上通过 cmd /c 运行。 |
secrets | string[] | 是 | 要注入的密钥名称。 |
cwd | string | 否 | 工作目录。 |
行为:
- 每个名称都必须存在,否则调用会直接失败,不会询问你。
- 超过 2000 个字符的命令会被拒绝。
- 由用户通过系统原生对话框批准;参见审批与授权。一个授权在 15 分钟内覆盖这条完全相同的命令,因此 agent 重试时应复用完全相同的命令。
- 拒绝会以错误形式返回,并附带不要重试的指示。
- 命令在 120 秒后超时。
- 返回的 stdout 和 stderr 中,每个密钥值都已脱敏。
示例调用:
{
"command": "curl -s https://api.stripe.com/v1/charges?limit=5 -u \"$STRIPE_KEY:\"",
"secrets": ["STRIPE_KEY"]
}