0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Vault MCP ServerをDocker上に構築しClaude Desktopから呼び出す

Posted at

はじめに

本記事はClaude DesktopアプリからローカルDocker上に構築したVault MCP Serverを呼び出し、自身のHashicorp Cloud上で管理しているVaultをToolとして呼び出すまでの行程を記載しています。
Vault MCP Serverの概要はこちらをご参照ください。

概要

2025年12月現在、Vault MCP Serverは以下の3種類の手段で入手可能です。

  • gitからソースコードを取得する
  • バイナリファイルを取得する
  • AWS MarketplaceにてSubscriptionを購入する(Subscriptionは無料で購入可能)

今回はAWS MarketplaceにてSubscriptionを購入し手順を進めています。

また、Vault MCP Serverにてサポートされている Vault API コマンドは次のとおりです。

  • Vault に新しいマウントを作成する (KV v1、KV v2)
  • 利用可能なマウントをすべて一覧表示する
  • マウントを削除します
  • KVマウントにシークレットを書き込む
  • KVマウントの秘密を読む
  • パスの下にあるすべてのシークレットを一覧表示する

今回はVault MCP Serverと連携したVault Dedicatedアカウントに、新規にユーザー/パスワードをClaude Desktopから登録してみたいと思います。

構成図はざっくり以下のようなイメージです。
image.png

所要時間は1時間程度の想定です。

前提

環境

  • Docker環境構築済みMac(Apple M1 Proにて検証)

事前準備

  • Vaultアカウントの作成
    • 本記事ではHCPにてVault Dedicated準備の上を利用していますが、形態は問いません
    • 以下の接続情報を取得してください
      • Vault Address
      • Vault Token
  • Claude Desktopアプリをこちらからダウンロード
  • AWSアカウントの作成

作業詳細

1. AWS MarketplaceにてVault MCP Serverを取得

以下のページにアクセスし、「View purchase options」から購入まで進めます。
https://aws.amazon.com/marketplace/pp/prodview-3we3ju26w3glk
image.png

AWSコンソールのAWS MarketplaceのSubscritption一覧にVault MCP Serverが追加されていれば完了です。
image.png

2. docker imageをローカルにpullする

AWS MarketplaceのSubscritption一覧に追加されたVault MCP Serverをクリックします。
遷移先のページ右上に「Usage instructions」ボタンがあるので、そちらをクリックします。
image.png

利用方法が表示されるので、表示された手順の4番まで進めます。
image.png

  1. AWS CLI をインストールして設定
    ローカルにAWS CLIがインストールされていない場合、以下のURL先からインストールをします。
    https://docs.aws.amazon.com/cli/latest/userguide/installing.html

  2. Dockerクライアントをレジストリに認証するためのログインコマンドを取得
    ローカルにて以下のコマンドを実行します。
    $ aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin 709825985650.dkr.ecr.us-east-1.amazonaws.com
    実行後、「Login Succeeded」と出力されればOKです。

  3. dockerイメージをpull
    ローカルにて以下のコマンドを実行します。
    $ docker pull 709825985650.dkr.ecr.us-east-1.amazonaws.com/hashicorp/vault-mcp-server:0.1.0
    実行後、ローカルのdockerイメージ一覧にvault-mcp-serverが追加されていれば完了です。

3. MCP Serverで使用するVaultトークンを作成する

  1. 以下のポリシーを vault-mcp-policy.hcl として保存
    必要な権限を記載したポリシーを作成します。
    以下は作成するポリシーのサンプルですが、実行したい操作に合わせて記載を変更してください。

    # Vault MCP Server用のポリシー
    # このポリシーは以下の操作を許可します:
    # - マウント情報の参照(読み取り専用)
    # - secret/mcp/ 配下のシークレット管理(CRUD + List)
    
    ############################################
    # マウント情報の参照(MCP Server が内部的に必要)
    ############################################
    
    # マウント一覧の取得・参照
    path "sys/mounts" {
      capabilities = ["read", "list"]
    }
    
    # 個別マウントの詳細情報参照
    path "sys/mounts/*" {
      capabilities = ["read"]
    }
    
    ############################################
    # KV v1 シークレット管理(secret/mcp/ 配下)
    ############################################
    
    # シークレットの作成・読み取り・更新・削除・一覧
    path "secret/mcp/*" {
      capabilities = ["create", "read", "update", "delete", "list"]
    }
    
    # ルートパスでの一覧表示
    path "secret/mcp" {
      capabilities = ["list"]
    }
    
    ############################################
    # KV v2 を使用する場合
    ############################################
    
    # シークレットデータの読み書き
    path "secret/data/mcp/*" {
      capabilities = ["create", "read", "update", "delete"]
    }
    
    # メタデータとバージョン管理
    path "secret/metadata/mcp/*" {
      capabilities = ["read", "list", "delete"]
    }
    
    # メタデータのルートパス
    path "secret/metadata/mcp" {
      capabilities = ["list"]
    }
    
    
  2. ポリシーをVaultに登録
    以下のコマンドを実行します。
    $ vault policy write vault-mcp vault-mcp-policy.hcl

  3. トークン作成
    以下のコマンドを実行します。
    $ vault token create -policy=vault-mcp -period=3h

トークンが出力されたら完了です。

4. Claude DesktopにてMCP設定を追加

Claude desktopアプリを開き、左下の自身のアイコンのプルダウンから「設定」をクリックします。
image.png

設定メニューから、「デスクトップアプリ」 >「開発者」を選択し「設定を編集」ボタンをクリックします。
image.png

アプリが参照しているjsonファイルが表示されるので、以下を追加します。

claude_desktop_config.json
{
    "mcp": {
        "servers": {
            "vault": {
                "command": "docker",
                "args": [
                    "run",
                    "--rm",
                    "-i",
                    "-e", "VAULT_TOKEN=<前の手順にて生成したトークン(rootトークンではない)>",
                    "-e", "VAULT_ADDR=<VAULTアドレス>",
                    "-e", "VAULT_NAMESPACE=admin", // Vault Dedicatedの場合必要
                    "709825985650.dkr.ecr.us-east-1.amazonaws.com/hashicorp/vault-mcp-server:0.1.0",
                ]
            }
        }
    }
}
    

JSONファイルを保存し、Claude Desktopアプリを再起動します。
再起動後、チャットのフォーム下にあるプラスアイコンをクリックし、コネクタ一覧に「vault」が追加されていればOKです。
image.png

5. 呼び出し確認

Vault Radar MCP Serverでは以下7つのツールを使うことが可能です。

  • create_mount
  • delete_mount
  • delete_secret
  • list_mounts
  • list_secrets
  • read_secret
  • write_secret

例として「secret/mcp/ パス配下に以下のkvを新規に登録してください。 * username=vault-user * password=p@ssw0rd」とリクエストしてみます。
image.png
Vault MCP Serverのwrite_secretツールを使って回答できることを確認できました。
配置したパスの配下に登録しているパスワードの一覧も表示してくれています。

他にも、「連携しているvaultアカウントで利用可能なマウントをすべて一覧表示して」などのマウントに関する操作も可能です。
image.png

終わりに

手順は以上です。

2025年12月現在Vault MCP Serverはベータ版であり本番の利用を勧められていませんが、エージェントを使ってのコーディングツールなどと組み合わせれば、セキュリティにも配慮したアプリの開発などにも役立ちそうです。

また、以前にVault Radar MCP Serverについての記事を執筆していますが、こちらのMCP Serverと組み合わせても面白いかもしれません。

ぜひ色々試してみてください。

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?