Vault MCP Server について
Vault MCP Serverは、Vault向けのサードパーティ製オープンソースMCPサーバーで、ローカルまたはコンテナで実行できます。複数のバックエンドに対応するツールやプロンプトに加え、Vaultの状態と設定をリソースとして公開します。エンタープライズの本番利用は推奨されていません。
主な機能
- 01Vaultの状態・設定リソース
- 02ACL、認証、監査の管理
- 03シークレット、PKI、Transitへのアクセス
- 04ACLポリシーの生成と診断
- 05複数のVault認証方式
活用シーン
- 01Vaultのヘルスと封印状態の確認
- 02シークレットエンジンと認証設定の管理
- 03ACLポリシーの生成や調整
- 04クラスター設定の問題の検査
MCP 対応
MCPサーバーとして、Vaultの読み取りや操作に使う8種類のリソース、144個のツール、4個のプロンプトをクライアントに公開します。ローカル実行のほか、コンテナイメージも利用できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Vault MCP サーバー
Hashicorp による公式の Vault MCP サーバーが公開されました。そのため、サードパーティー製の代替 Vault MCP サーバーも引き続き存続し、機能や修正を更新していきますが、公式製品と競合することは目指しません。サードパーティー製の Vault MCP サーバーは、リモートでのみではなくローカルでも実行でき(ただし、多くの場合はリモートのほうが望ましいです)、引き続きコンテナーイメージとしても利用できます。
公式製品のリリースを受けて定められたこの方針により、正式なリリースプロセス、バージョン管理、変更履歴は設けません。また、この製品はエンタープライズの本番環境での使用を推奨しません。
MCP サーバーのコンテナーイメージは Dockerhub でホストされており、ここでホストされている HEAD のコードを表します。
デスクトップ設定
このサーバーを何らかの理由で試したい場合は、これらを参考に、ほかのクライアントに合わせて応用・変更できるはずです。
Claude
{
"mcpServers": {
"vault": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"ENV_VAR",
"-e",
"ENV_VAR_TWO",
"matthewschuchard/vault-mcp-server"
],
"env": {
"ENV_VAR": "<ENV VAR VALUE>",
"ENV_VAR_TWO": "<ENV VAR TWO VALUE>",
}
}
}
}
VSCode
MCP: Add Server --> Docker Image コマンドを使うと、この設定を簡単に行うこともできます。以下の値を入力プロンプトに入力すると、その後、必要に応じてさらに更新できるよう、mcp.json ファイルがペイン内で自動的に開きます。
{
"servers": {
"vault": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"ENV_VAR",
"-e",
"ENV_VAR_TWO",
"matthewschuchard/vault-mcp-server"
],
"env": {
"ENV_VAR": "<ENV VAR VALUE>",
"ENV_VAR_TWO": "<ENV VAR TWO VALUE>",
}
}
}
}
環境変数
以下の環境変数はすべて、上記の ENV_VAR の例に示したパターンを使って定義し、Vault MCP サーバーに渡すことができます。
- CACHE_TTL:60
キャッシュされた値を使用せずに新しい値を取得するまでの、すべての読み取りおよび一覧表示操作のキャッシュ時間を設定します。
- VAULT_AUTH_METHOD:'token'
approle、jwt(ベータ版)、token、userpass の中から Vault の認証方法を選択します。
- VAULT_AUTH_PATH:/
使用する Vault 認証方法がマウントされているパスです。
- VAULT_JWT:None
jwt 認証方法を使用するエンティティの JSON Web Token です。
- VAULT_NAMESPACE:''
Vault のネームスペースを設定します(エンタープライズ版のみ)。
- VAULT_PASSWORD:None
userpass 認証方法を使用するユーザーのパスワードです。
- VAULT_ROLE:None
jwt 認証方法を使用するエンティティのロールです。
- VAULT_ROLE_ID:None
approle 認証方法を使用するエンティティのロール ID です。
- VAULT_SECRET_ID:None
approle 認証方法を使用するエンティティのシークレット ID です。
- VAULT_TOKEN:None
token 認証方法を使用するエンティティのトークンです。
- VAULT_URL:http://127.0.0.1:8200
Vault サーバーの URL です。
- VAULT_USERNAME:None
userpass 認証方法を使用するユーザーのユーザー名です。
機能
リソース(8)
- 現在有効な ACL ポリシー
- 現在有効な監査デバイス
- 現在有効な認証エンジン
- 現在有効なシークレットエンジン
- 現在のネームスペース(エンタープライズ版のみ)
- 現在の Raft クラスター構成
- 現在の Vault の健全性
- 現在の Vault のシール状態
ツール(144)
- システムバックエンド
- ACL ポリシー
- 監査デバイス
- 認証エンジン
- 健全性
- ネームスペース(エンタープライズ版のみ)
- Raft(クラスタリングとストレージスナップショット)
- シール状態
- シークレットエンジン
- シークレットバックエンド
- データベース(ベータ版)
- アイデンティティ/エイリアス
- KV バージョン 2
- PKI
- Transit
プロンプト(4)
- mcp.vault.example-acl-policy:JSON 文字列形式の Vault ACL ポリシーの例を表示します。表示されたポリシーを変更して、そのまま LLM に入力すると(エージェント型の Claude で検証済み)、変更した内容で Vault MCP Server を通じて ACL ポリシーを作成したいのだと理解されます(名前は自動生成されます)。ただし、代わりにツールへの入力として使用するほうが、おそらく適切です。
- mcp.vault.generate-acl-policy:上記のプロンプトと同様の、Vault ACL ポリシーの擬似的な例を JSON 文字列形式で表示します。主な違いは、このプロンプトでは
list[str]型形式のpaths引数を受け付け、返されるポリシーに入力したパスが含まれる点です。ただし、capabilitiesは定型文のままなので、用途に合わせて変更する必要があります。 - mcp.vault.generate-smart-acl-policy:ユーザーの要件とプロンプトに基づいて Vault ACL ポリシーを作成し、最適化する、エージェント型 LLM との対話的なワークフローです。ポリシーは JSON 文字列形式で返されます。
- mcp.vault.diagnose-vault-state:この MCP サーバーで利用できるリソースを使用して Vault サーバークラスターを対象に診断スキャンを行い、サーバー構成に関して検出された問題を報告します。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。