mcpField
K
Keyward

Keyward

ローカル
github.com開発ツール219 週間前に更新

Keyward について

KeywardはAIコーディングエージェント向けの、ローカルで暗号化されたシークレット仲介ツールです。エージェントが名前でキーを要求し、OS標準ダイアログで承認すると、値をモデルに返さずプロジェクトファイルへ注入します。

主な機能

  1. 01ローカル暗号化ボルト
  2. 02名前によるキー要求
  3. 03OS標準ダイアログでの承認
  4. 04プロジェクトファイルへのキー注入
  5. 05CLIでの管理とインポート

活用シーン

  1. 01チャット履歴へのキー混入防止
  2. 02複数プロジェクトでのキー再利用
  3. 03.envファイルからのキー取り込み

MCP 対応

`list_keys` と `request_key` ツールを備えた標準stdio MCPサーバーを提供します。クライアントが名前でキーを要求し、承認後に対象ファイルへ注入します。MCPの応答には確認情報のみを含みます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

keyward — AI エージェントのためのシークレットブローカー

keyward

API キーを一度保存するだけ。あらゆる AI ツールが、値を一度も見ることなく、あなたの承認を得てキーをリクエストできます。

CI MIT MCP 対応 クロスプラットフォーム


keyward は、オープンソースのローカル暗号化AI コーディングエージェント向けシークレットブローカーです。API キーをチャットに貼り付けたり(コンテキストやトランスクリプトに漏れる可能性があります)、新しいセッション、プロジェクト、IDE のたびに同じキーを再入力したりする代わりに、暗号化された 1 つのボールトにキーを保管します。Claude Code、Cursor、Gemini CLI、またはMCP対応ツールがキーを必要とすると、名前でリクエストし、OS のネイティブプロンプトでそのリクエストを承認すると、keyward はプロジェクトにそのキーだけを注入します。モデルに値が渡ることはありません。

問題点

  1. AI チャットへのキー漏えい — キーをプロンプトに貼り付けると、コンテキスト、トランスクリプト、ログに残ります。
  2. 再入力の手間 — 新しいセッション、プロジェクト、IDE、マシンのたびに同じキーを入力します。
  3. 散在する .env ファイル — 信頼できる情報源が 1 つもなく、どこにどのキーがあるのか分からなくなります。
  4. 制御不能 — エージェントが必要なキーだけでなく、すべてのシークレットを一度に読み取ったり取得したりできます。
  5. ツールへのロックインによる煩わしさ — IDE やモデルを切り替えるたびに、すべてのキーを設定し直す必要があります。

仕組み

AI tool ──request_key("STRIPE_KEY", project)──▶ keyward ──native approval──▶ you
                                                    │ approved
        ◀── "injected STRIPE_KEY → ./.env" ─────────┘   (value never shown to the model)
  • ボールト — ageで暗号化されたファイル(~/.keyward/vault.age、0600)。マスターキーはOS のキーストア(macOS Keychain/Windows Credential Manager/Linux libsecret)に保存され、ディスク上に平文で保存されることはありません。
  • 2 つのインターフェース — AI ツール向けのMCP サーバー(list_keys、request_key)と、それ以外のすべてに使える**keyward CLI**です。
  • 帯域外承認 — 承認ダイアログはエージェントのストリーム内ではなく、keyward 自身が表示するため、エージェントが自動承認することはできません。1 回だけ承認、セッション中は承認、または拒否を選択できます。
  • 設計上、値を扱わない — list_keys が返すのは名前のみです。request_key が返すのは確認結果です。監査ログには判断が記録されますが、値が記録されることはありません。

インストール

# Homebrew (macOS / Linux)
brew install arturayupov/tap/keyward

# Scoop (Windows)
scoop bucket add arturayupov https://github.com/arturayupov/scoop-bucket
scoop install keyward

# Go
go install github.com/arturayupov/keyward/cmd/keyward@latest

ビルド済みバイナリ(macOS/Windows/Linux、amd64+arm64)も各リリースに添付されています。OS ごとの注意事項(Linux libsecret を含む)はINSTALL.mdを、うまく動作しない場合はTROUBLESHOOTING.mdを参照してください。

クイックスタート

# 1. create the encrypted vault (master key goes into your OS keystore)
keyward init

# 2. import keys you already have scattered in .env files
keyward import ~/projects

# 3. point your AI tool at keyward's MCP server (see below), then just ask:
#    "use my STRIPE_KEY for this project" → approve the prompt → done
MCP サーバーとして使う

keyward は標準的なstdio MCP サーバーで、公式 MCP サーバーと同じ方法で登録できます。手順は 2 つです。

1. バイナリをインストールする(初回のみ)— 上記の go install、Homebrew/Scoop(近日対応)、またはリリースのバイナリを使います。

2. AI ツールに登録する:

# Claude Code — one command:
claude mcp add keyward -- keyward serve-mcp

または設定に手動で追加します(~/.claude.json、またはプロジェクトの .mcp.json)。

{ "mcpServers": { "keyward": { "command": "keyward", "args": ["serve-mcp"] } } }

Cursor、Windsurf、Cline などの MCP クライアントでも、MCP 設定では同じ command/args 形式を使います。ツールを再起動し、キーを名前で使うよう指示してください。

「リポジトリの URL を貼り付ける」方法ではだめなのはなぜですか? MCP クライアントは設計上、GitHub のリンクからサーバーを自動インストールしません。任意のリモートコードを実行しないためです。keyward も意図的にローカルで動作します(OS のキーストアが必要で、ローカルファイルに書き込むため)。そのため、リモート/ホスト型の URL サーバーではありません。上記の 2 つの手順が、標準的で安全なインストール方法です。詳しい手順はUSAGE.mdを参照してください。

CLI リファレンス

コマンド説明
keyward init暗号化された保管庫とマスターキーを作成します
keyward import [root]root 配下の .env ファイルからシークレットをプロジェクトごとにまとめてインポートします
keyward add NAME --ns NSシークレットを1つ追加/更新します。値は標準入力から読み取ります(.env 以外の認証情報用)
keyward ls [--ns NS]キー名と名前空間を一覧表示します(値は決して表示しません)
keyward inject NAME --ns NS --into PATHキーを1つ、対象の env ファイルに注入します(承認を求めます)
keyward serve-mcpstdio 経由で MCP サーバーを実行します

セキュリティモデル

  • シークレットの値が AI エージェントに返されることはありません。request_key は値を対象ファイルに注入し、確認結果のみを返します。
  • 値が監査ログ(~/.keyward/audit.jsonl にはツール、キー、名前空間、対象、判断が記録されます。値は記録されません)に書き込まれることはなく、ls/inject によって出力されることもありません。
  • 承認は帯域外で行われます。エージェントがクリックできない、OS ネイティブのダイアログを使います。すべてのダイアログバックエンドはフェイルクローズ方式です。エラーまたはキャンセルが発生した場合は、すべて拒否されます。
  • 保管庫は age で保存時に暗号化され、マスターキーは OS のキーストアに保存されます。

これらの不変条件は自動テストで検証されています。詳細と脅威モデルについては SECURITY.md を参照してください。

比較

keywardenvchainpass / sops1Password CLI
暗号化されたローカルストア✅✅(Keychain)✅✅(クラウド)
エージェントが名前を指定してキーをリクエスト✅❌❌❌
リクエストごとの人間による承認✅❌❌❌
値がモデルに届かない✅該当なし該当なし該当なし
AI ツール向け MCP サーバー✅❌❌❌
オープンソース✅(MIT)✅✅❌

暗号化ストレージの課題は解決されています。keyward はその上に、不足していたエージェント向けの、承認を条件とするブローカーを追加します。各選択肢がより適しているケースも含む、率直な詳細比較については docs/comparisons を参照してください。

ロードマップ

詳細は ROADMAP.md を参照してください。主な内容:

  • v0.2 — 署名/公証済みバイナリ(キーストアの確認プロンプトなし)、Homebrew/Scoop、生体認証による承認(Touch ID/Windows Hello)、Windows ACL の強化。
  • v1.0 — トレイ/メニューバーアプリ、キーごとのポリシーと許可リスト、ローテーションのリマインダー、target: "env" による注入。
  • v2.0 — 暗号化されたマルチデバイス同期(ユーザー所有のバックエンド)、チームモード。

コントリビュート

コントリビュートを歓迎します。CONTRIBUTING.md を参照してください。セキュリティ上の問題を見つけた場合は、責任ある開示について SECURITY.md を参照してください。

ライセンス

MIT © 2026 Artur Ayupov

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。