Skip to main content
Glama
TLB-STATION

ApiVault Remote MCP Server

by TLB-STATION

ApiVault リモートMCPサーバー

License: MIT Protocol: MCP Transport: Streamable HTTP TypeScript Node.js Next.js OAuth 2.1

AIコーディングエージェントのための、安全で暗号化されたAPIキー管理。
ApiVault の公式リモートModel Context Protocol (MCP) サーバー。

クイックスタート • ツールリファレンス • アーキテクチャ • OAuth 2.1とスコープ • エラーコードとトラブルシューティング • セルフホスティングと開発


概要

ApiVault リモートMCPサーバー を使用すると、AIアシスタント(Cursor、Claude Desktop、Windsurf、Claude Code など)が、ApiVault に保存された暗号化シークレットと安全かつ監査可能な方法で連携できます。

生のAPIキーをチャットプロンプトに貼り付けたり、.env ファイルをgitにコミットしたりする代わりに、AIエージェントは以下のことが可能です:

  1. マスクされたプレビュー(例:sk_live_••••1234)を使用して、利用可能な認証情報を検索および検査します。

  2. スコープ付き権限を介してコードを実行する場合にのみ、生のシークレット値を要求します。

  3. 新しく生成されたAPIキーをボールトに直接自動保存します。

  4. ゼロ知識カスタムボールトキーをサポートし、メモリ内でその場で復号化します。


Related MCP server: Credential Vault MCP

🤖 公式AIエージェントスキル

AIコーディングアシスタント(Cursor、Claude Code、Windsurf、Google Antigravity)を使用している場合は、公式の ApiVault Agent Skill をワークスペースにインストールしてください:

git clone https://github.com/TLB-STATION/apivault-skill.git .agents/skills/apivault

これにより、AIエージェントに、ApiVault MCPと連携するためのネイティブなランクブック、コピー&ペースト用プロンプトテンプレート、セキュリティガイドラインが装備されます。


クイックスタート

1. Cursor

Cursor設定(Cmd/Ctrl + Shift + J)→ MCP → Add New MCP Server を開くか、~/.cursor/mcp.json に追加します:

{
  "mcpServers": {
    "apivault": {
      "url": "https://apivault-mcp.vercel.app/mcp"
    }
  }
}

2. Claude Desktop と Claude.ai

  • 方法1(UIコネクタ): Claude Desktop / Claude.aiで、Settings → Connectors → Add Custom Connector に移動し、名前:ApiVault、リモートURL:https://apivault-mcp.vercel.app/mcp と入力します。

  • 方法2(設定ファイル): Claude Desktopの設定ファイルに追加します:

    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

    • Windows: %APPDATA%\Claude\claude_desktop_config.json

    • Linux: ~/.config/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "apivault": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://apivault-mcp.vercel.app/mcp"]
    }
  }
}

3. Windsurf

~/.codeium/windsurf/mcp_config.json に追加します:

{
  "mcpServers": {
    "apivault": {
      "url": "https://apivault-mcp.vercel.app/mcp"
    }
  }
}

4. Claude Code (CLI)

ターミナルで実行します:

claude mcp add apivault https://apivault-mcp.vercel.app/mcp

5. VS Code (Cline / Roo Code / Continue)

拡張機能のMCP設定JSONに追加します:

{
  "mcpServers": {
    "apivault": {
      "url": "https://apivault-mcp.vercel.app/mcp",
      "transport": "http"
    }
  }
}

初回接続時: エージェントが最初に初期化されると、ブラウザタブがメインのApiVault Webサイト(https://api-vault-opal.vercel.app)で開き、アカウントを認証し、要求されたスコープを承認します。


ツールリファレンス

サーバーは、Model Context Protocolに準拠した6つのツールを公開しています:

1. list_keys

マスクされた値(例:sk_live_••••1234)で保存されたAPIキーを一覧表示します。プロンプトの汚染を防ぎながら、エージェントが利用可能なサービスを発見できるようにします。

  • 必要なスコープ: keys:read

  • パラメータ:

    • environment (文字列、オプション):環境でフィルタリング(例:Production、Staging、Development)。

    • service (文字列、オプション):サービス名でフィルタリング(例:Stripe、OpenAI、Resend)。

  • エージェントプロンプトの例:

    "本番環境に保存されているStripeの認証情報は何ですか?"


2. get_key

IDで特定の認証情報のメタデータとマスクされたプレビューを取得します。

  • 必要なスコープ: keys:read

  • パラメータ:

    • id (文字列、必須):キーの一意のID。

  • エージェントプロンプトの例:

    "キー 'cm123abc' のメタデータと最終更新日を確認してください。"


3. reveal_key

生の、マスクされていないAPIキー値を復号化して返します。

  • 必要なスコープ: keys:reveal

  • パラメータ:

    • id (文字列、必須):復号化するキーのID。

    • vault_key (文字列、オプション):ユーザーのカスタムボールトキー(アカウントでカスタム暗号化モードが有効な場合のみ必須)。

  • エージェントプロンプトの例:

    "バックエンド統合テストを実行するために、生のOpenAI APIキーが必要です。"


4. add_key

新しいAPIキーを安全に暗号化してボールトに保存します。

  • 必要なスコープ: keys:write

  • パラメータ:

    • name (文字列、必須):キー識別子(例:STRIPE_SECRET_KEY、RESEND_API_KEY)。

    • key (文字列、必須):暗号化する生のシークレット値。

    • service (文字列、オプション):サービス名(例:Stripe、OpenAI、AWS)。

    • environment (文字列、オプション):対象環境(デフォルトは Production)。

    • notes (文字列、オプション):開発者向けドキュメントまたは使用上の注意。

    • vault_key (文字列、オプション):必要な場合のカスタムボールトキー。

  • エージェントプロンプトの例:

    "この新しく生成されたSupabaseサービスロールキーを本番ボールトに保存してください。"


5. update_key

既存のキーのメタデータを更新するか、そのシークレット値を再暗号化します。

  • 必要なスコープ: keys:write

  • パラメータ:

    • id (文字列、必須):更新するキーID。

    • name、service、environment、notes (文字列、オプション):メタデータの更新。

    • key (文字列、オプション):新しい生のシークレット値(再暗号化をトリガーします)。

    • vault_key (文字列、オプション):シークレット値を更新する際のカスタムボールトキー。

  • エージェントプロンプトの例:

    "Resend APIキーのメモを「8月18日にローテーション」に更新してください。"


6. delete_key

ボールトからAPIキーを完全に削除します。

  • 必要なスコープ: keys:write

  • パラメータ:

    • id (文字列、必須):削除するキーID。

  • エージェントプロンプトの例:

    "非推奨のステージングデータベース認証情報を削除してください。"


アーキテクチャ

MCPサーバーはステートレスプロトコルゲートウェイアーキテクチャを採用しており、パブリックなトランスポート層をデータベースおよび暗号化ストレージから分離しています:

+----------------------------------------------------------+
|  AI Agent (Cursor / Claude Desktop / Windsurf)           |
+----------------------------+-----------------------------+
                             | Streamable HTTP (JSON-RPC)
                             v
+----------------------------------------------------------+
|  ApiVault MCP Server (apivault-mcp.vercel.app)           |
|  - RFC 9728 Protected Resource Metadata (PRM)           |
|  - Streamable HTTP Transport (/mcp)                      |
|  - Zero Database Credentials / Zero Stored Keys          |
+----------------------------+-----------------------------+
                             | Scoped HTTPS REST Gateway (Bearer Token)
                             v
+----------------------------------------------------------+
|  ApiVault Backend (api-vault-opal.vercel.app)            |
|  - OAuth 2.1 Authorization Server (DCR + PKCE S256)      |
|  - Browser Consent UI (/mcp/authorize)                   |
|  - Cryptographic Key Decryption & MySQL Vault            |
+----------------------------------------------------------+

セキュリティ特性:

  1. データベースパスワードゼロ:パブリックな apivault-mcp サービスは、MySQL認証情報もマスター暗号化キーも保持しません。

  2. ステートレス転送:クライアントリクエストは検証され、標準のOAuthベアラートークンを使用してApiVaultのスコープ付きゲートウェイ(/api/mcp/v1/keys)に転送されます。

  3. インメモリボールトキー:カスタム暗号化モードのボールトキー(vault_key)は、単一リクエストの導出中にのみメモリ内で使用され、ディスクやログに書き込まれることはありません。


OAuth 2.1とスコープ

MCPサーバーは、動的クライアント登録(RFC 7591) と PKCE S256(RFC 7636) を備えた標準のOAuth 2.1を実装しています:

スコープ

名前

アクセス権限

keys:read

メタデータの読み取り

list_keys、get_key(マスクされたプレビューのみ)

keys:write

キーの管理

add_key、update_key、delete_key

keys:reveal

シークレットの復号化

reveal_key(生のマスクされていないシークレット値へのアクセス)

接続の管理と取り消し

ユーザーは、Webダッシュボードで接続されたAIエージェントを確認し、付与されたスコープを検査し、いつでもアクセスを取り消すことができます: ApiVaultダッシュボード → 設定 → MCP接続


エラーコードとトラブルシューティング

エラーコード

理由

解決方法

UNAUTHORIZED

OAuthベアラートークンが期限切れまたは欠落しています。

CursorまたはClaude Desktopで「再接続」アクションを使用して再認証します。

INSUFFICIENT_SCOPE

トークンに必要なスコープがありません(例:keys:read のみで reveal_key を試行)。

再認証し、ブラウザの同意画面で keys:reveal または keys:write スコープを許可します。

VAULT_KEY_REQUIRED

アカウントがカスタム暗号化モードを使用しており、vault_key が渡されていません。

ツールの引数にカスタムボールトキーを指定します。

INVALID_VAULT_KEY

指定されたカスタムボールトキーが復号化チェックに失敗しました。

マスターボールトキーが正しいことを確認して再試行してください。

DUPLICATE_KEY

同じ名前と環境のキーがすでに存在します。

update_key を使用するか、一意のキー名を選択してください。

NOT_FOUND

指定されたキーIDがボールトに存在しません。

list_keys を使用してアクティブなキーIDを確認してください。

NETWORK_ERROR

ApiVaultバックエンドゲートウェイに到達できません。

インターネット接続を確認し、API_VAULT_URL を検証してください。


セルフホスティングと開発

独自のスタンドアロンMCPサーバーを実行するか、プライベートクラウドインフラストラクチャにデプロイできます:

前提条件

  • Node.js >= 20.12.0

  • npm または pnpm

1. クローンとインストール

git clone https://github.com/TLB-STATION/apivault-mcp.git
cd apivault-mcp
npm install

2. 環境設定

.env.local を作成します:

# ApiVault Backend URL
API_VAULT_URL=https://api-vault-opal.vercel.app

# Public URL of this MCP server
MCP_SERVER_URL=http://localhost:3001

3. 開発サーバーの実行

npm run dev
# Server running at http://localhost:3001

4. テストスイートの実行

npm test

5. 本番用ビルド

npm run build
npm start

コミュニティとエコシステム


ライセンス

MITライセンスの下で配布されています。詳細については、LICENSE を参照してください。

Copyright (c) 2026 TLB-STATION • ApiVault

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables LLM agents to securely use credentials like passwords and API keys without exposing them in the context window, through encrypted storage and proxy-based injection.
    3 npm
    2
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables secure credential storage for AI agents by encrypting secrets and providing agent-invisible references, ensuring sensitive data never leaks to the model.
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to securely manage API keys and secrets via the MCP protocol, with encrypted storage at rest and a simple CLI and Python SDK.
    1
    MIT