クイックスタート
1. インストール
keygrant には Python 3.10 以降が必要です。スタンドアロンのツールとしてインストールします。
uv tool install keygrant # or: pipx install keygrant
pip install はそこで失敗します。
uv は適切な Python を自動的に取得します。動作を確認します。
keygrant list # 新規インストール直後は "(vault empty)" と表示されます
2. プロジェクトに組み込む
エージェントが作業するプロジェクトフォルダで、次を実行します。
keygrant init
このコマンドは次の 2 つを行います。どちらも繰り返し実行して問題ありません。
- プロジェクトの
.mcp.jsonにkeygrantサーバーを追加します。すでにあるサーバーはそのまま残ります。 CLAUDE.mdに短いガイダンスブロックを追記します。このブロックは、シークレットを環境変数として参照すること、そしてシークレットを貼り付けるようユーザーに決して求めないことをモデルに指示します。
3. シークレットを保存する
値は stdin から読み込まれるため、シェルの履歴やプロセス一覧に現れることはありません。
echo "sk-test-..." | keygrant set STRIPE_KEY --desc "stripe, test mode"
値を入力する代わりに、クリップボードから貼り付けることもできます。
pbpaste | keygrant set STRIPE_KEY --desc "stripe, test mode" # macOS
Get-Clipboard | keygrant set STRIPE_KEY --desc "stripe, test mode" # Windows PowerShell
xclip -o -selection clipboard | keygrant set STRIPE_KEY # Linux
説明(description)はエージェントが目にする情報なので、役に立つ内容にしてください。どのサービスか、どの環境か、何に使ってよいか、などです。
4. Claude Code から使う
新しい MCP サーバーを読み込ませるため、そのフォルダで Claude Code を再起動し、普段の言葉で依頼します。
STRIPE_KEY を使って、Stripe の直近 5 件の charge を一覧表示してください。
モデルは curl https://api.stripe.com/v1/charges -u "$STRIPE_KEY:" のようなコマンドで exec_with_secrets を呼び出します。すると、そのコマンドがそのまま表示されたダイアログがポップアップします。内容を読んでから、Allow(Windows では Yes)をクリックしてください。出力は、キーがマスクされた状態で返ってきます。
まったく同じコマンドを 15 分以内にもう一度実行しても再度確認されることはありませんが、異なるコマンドであれば必ず確認されます。承認と許可(グラント)を参照してください。
5. 手動で試す(任意)
同じ注入を、ターミナルから自分で実行することもできます。CLI はシェルを介さずにコマンドを直接実行するため、変数を展開するにはシェルで包んでください。
keygrant exec --redact STRIPE_KEY -- sh -c 'curl -s https://api.stripe.com/v1/charges -u "$STRIPE_KEY:"'
keygrant exec --redact STRIPE_KEY -- cmd /c "echo %STRIPE_KEY%" # Windows: [STRIPE_KEY:REDACTED] と表示されます
CLI は実行のたびに承認を求めます。許可を再利用することは決してありません。