MCP ツール
MCP サーバーが公開するツールは、ちょうど 2 つです。シークレットの値を保存したり読み取ったりするツールは、意図的に用意していません。値がツール呼び出しを経由すれば、その値はモデルのコンテキストに入ってしまうからです。
list_secrets
入力はありません。シークレットごとに 1 行で、名前、説明、使用回数、最終使用日時を返します。
- STRIPE_KEY: stripe, test mode [used 2x, last: 2026-10-10T13:10:03+00:00]
- OPENAI_KEY: openai, personal [used 0x, last: never]
ボールトが空の場合はその旨を返し、シークレットは keygrant set を使って帯域外(out-of-band)で追加されるものだとエージェントに伝えます。
exec_with_secrets
シークレットを環境変数として注入し、シェルコマンドを実行します。
| 入力 | 型 | 必須 | 意味 |
|---|---|---|---|
command | string | はい | 実行するコマンド。macOS と Linux では sh -c、Windows では cmd /c を通じて実行されます。 |
secrets | string[] | はい | 注入するシークレットの名前。 |
cwd | string | いいえ | 作業ディレクトリ。 |
動作:
- 指定したすべての名前が存在している必要があります。存在しない場合、ユーザーに確認することなく呼び出しは失敗します。
- 2000 文字を超えるコマンドは拒否されます。
- ユーザーはネイティブダイアログで承認します。承認と許可(グラント)を参照してください。許可はそのコマンドと完全に一致するものを 15 分間対象とするため、エージェントはリトライ時にまったく同じコマンドを再利用すべきです。
- 拒否はエラーとして返され、再試行しないよう指示が添えられます。
- コマンドは 120 秒でタイムアウトします。
- stdout と stderr は、すべてのシークレットの値がマスクされた状態で返されます。
呼び出しの例:
{
"command": "curl -s https://api.stripe.com/v1/charges?limit=5 -u \"$STRIPE_KEY:\"",
"secrets": ["STRIPE_KEY"]
}