mcpField
V
Vantagate Mcp Server

Vantagate Mcp Server

ローカル
github.com/Aderixコミュニケーション125 週間前に更新

Vantagate Mcp Server について

Vantagate Mcp Server は、AI エージェントのワークフローに人間の承認チェックポイントを設けます。高リスク操作を確認するチーム向けに、Slack またはメールで承認を依頼し、署名付きの決定と監査記録を提供します。

主な機能

  1. 01人間の承認チェックポイント作成
  2. 02Slack またはメールで通知
  3. 03承認状況と決定の確認
  4. 04署名付き決定と監査記録
  5. 05OpenAPI 仕様を同梱

活用シーン

  1. 01データベース削除前の承認依頼
  2. 02本番デプロイ前のエージェント処理の一時停止
  3. 03一斉メール送信前の確認

MCP 対応

MCP クライアントに承認チェックポイントの作成と状態確認のツールを提供し、高リスク操作の前にエージェントが人間の判断を待てるようにします。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"vantagate": {
"command": "npx",
"args": [
"-y",
"@vantagate/mcp-server"
],
"env": {
"VANTA_API_KEY": "<VANTA_API_KEY>"
}
}
}
}
起動コマンドnpx -y @vantagate/mcp-server
設定が必要な環境変数
VANTA_API_KEYシークレットYour VantaGate API Key (Format: vg_123...)

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@vantagate/mcp-server1.0.2

ツール

2

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
titlestringはい承認者に表示する、短くわかりやすいタイトルです。具体的に記述してください。例:'Delete production users table'。'Database operation' のような一般的な表現は避けてください。
optionsarrayいいえ承認者が選択する決定オプションです。最初のオプションは肯定/操作の承認を示します。例:['Deploy to Production', 'Cancel Deployment']。デフォルトは ['Approve', 'Reject'] です。
payloadobjectはい関連するすべてのコンテキストを JSON オブジェクトとして指定します。金額、ID、影響を受けるリソース、リスク評価など、人間が十分な情報に基づいて判断するために必要な情報をすべて含めてください。最大 512KB。
timeoutstringいいえ判断を待ち、自動的に期限切れになるまでの時間です。形式:30m、4h、2d。デフォルトは 24h です。
descriptionstringいいえ承認者向けの追加コンテキストです。この操作が必要な理由と、その結果を説明してください。
callback_urlstringいいえ署名付き決定を受信する HTTPS Webhook エンドポイントです。ポーリングを行う場合は省略できます。
notify_emailstringいいえ人間の承認者のメールアドレスです。承認者には、決定 UI にアクセスするための magic-link が送信されます。
slack_webhook_urlstringいいえSlack Incoming Webhook URL(Pro/Scale プラン)。リッチなインタラクティブ Slack メッセージを送信します。

詳細

VantaGate MCP サーバーと OpenAPI の統合

npm version License: MIT Node.js >= 20

AI エージェントのための Human-in-the-Loop 認可。 VantaGate はリスクの高いアクションをインターセプトし、Slack またはメールを通じて人間の承認者に回付して、暗号署名された決定を返します。これにより、エージェントは完全な監査証跡とともに処理を再開するか、停止します。


VantaGate とは?

AI エージェントは、何千人ものユーザーへのメール送信、データベースレコードの削除、資金の移動、本番環境へのデプロイなど、現実世界に重大な影響を及ぼすアクションを実行できるようになっています。VantaGate は、人間が確実に制御権を保ち続けられるようにする信頼レイヤーです。

Agent hits risky action
        ↓
POST /v1/checkpoint  ──→  Human receives Slack/Email notification
        ↓                          ↓
   id and status              Human reviews payload & decides
        ↓                          ↓
Poll GET /v1/checkpoint/{id}  ←──  Decision recorded + payload purged
        ↓
   APPROVED → Resume workflow
   REJECTED → Halt + report reason
主な保証
  • API 応答 100 ミリ秒未満 - I/O 待ちによってエージェントがブロックされることはありません
  • 保存データの AES-256 ペイロード暗号化 - 決定後、ペイロードは完全に破棄されます
  • ゼロ保持ポーリング - GET /checkpoint/{id} が元のペイロードを返すことはありません
  • 暗号署名付き監査証跡 - すべての決定に HMAC-SHA256 署名が付与されます
  • ステートレスプロトコル - SDK は不要です。どの言語からでもプレーンな HTTP を使用できます

このパッケージについて

このパッケージには、あらゆる AI エージェントを VantaGate に接続するための2 つの統合アーティファクトが含まれています。

アーティファクトファイル最適な用途
OpenAPI 3.0 仕様vanta-gate-openapi.jsonノーコードツール、OpenAI GPTs、Alice、n8n、Zapier
MCP サーバーsrc/index.ts / dist/index.jsClaude Desktop、Cursor、Cline、あらゆる MCP 対応エージェント

前提条件

  • Node.js >= 20
  • VantaGate アカウント:https://vanta-gate.com
  • VantaGate API キー(Dashboard → Projects → New Project)

クイックスタート

オプション A:Claude Desktop で MCP サーバーを使用する

最も手軽な方法です。手動でのセットアップは不要です。

ステップ 1: https://vanta-gate.com/dashboard/projects から API キーを取得します

ステップ 2: Claude Desktop の設定に VantaGate を追加します。

claude_desktop_config.json を開きます。

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "vantagate": {
      "command": "npx",
      "args": ["-y", "@vantagate/mcp-server"],
      "env": {
        "VANTA_API_KEY": "YOUR_API_KEY_HERE"
      }
    }
  }
}

ステップ 3: Claude Desktop を再起動します。ツール create_vantagate_checkpoint と check_vantagate_status が Claude のツール一覧に表示されます。

ステップ 4: 承認が必要な操作を Claude に依頼します。

「staging データベースから created_at < 2024-01-01 のレコードをすべて削除して」

Claude は自動的に処理を一時停止してチェックポイントを作成し、承認通知を確認するためにメールまたは Slack をチェックするよう伝えます。


オプション B:OpenAPI 仕様を使用する(ノーコード/ローコード)

vanta-gate-openapi.json を選択したツールに直接インポートします。

OpenAI GPTs/カスタムアクション
  1. https://platform.openai.com/gpts で GPT エディターを開きます
  2. 「Add actions」 → 「Import from URL」 をクリックするか、JSON を貼り付けます
  3. Authentication → API Key → Header:X-API-KEY を設定します
  4. VantaGate API キーを入力します

これで GPT はリスクの高いツール呼び出しの前に一時停止し、人間の承認を求めるようになります。

Alice(AI エージェントプラットフォーム)
  1. Integrations → Import OpenAPI に進みます
  2. vanta-gate-openapi.json をアップロードするか、貼り付けます
  3. 資格情報ストアで、ヘッダー X-API-KEY に VantaGate API キーを設定します
  4. create_vantagate_checkpoint をエージェントの「リスクの高いアクションの前」トリガーに割り当てます
n8n/Zapier
  1. HTTP Request ノードを追加します
  2. OpenAPI 仕様をインポートしてエンドポイントを自動入力します
  3. 資格情報の設定で X-API-KEY ヘッダーを設定します
LangChain/LlamaIndex
from langchain.tools import OpenAPITool

vanta_tool = OpenAPITool.from_openapi_spec(
    spec_path="./vanta-gate-openapi.json",
    headers={"X-API-KEY": os.environ["VANTA_API_KEY"]}
)
agent = initialize_agent([vanta_tool], llm, agent=AgentType.OPENAI_FUNCTIONS)

利用可能な MCP ツール

create_vantagate_checkpoint

エージェントのワークフローを一時停止し、人間による承認リクエストに振り分けます。

Claude が使用するタイミング: 金融操作、データ削除、本番環境へのデプロイ、一括連絡など、リスクの高い操作を実行する前です。

パラメーター型必須説明
titlestring✅承認者に表示される短いタイトルです。最大 200 文字です。
payloadobject✅判断に必要な JSON コンテキスト全体です。暗号化され、判断後に消去されます。
descriptionstring❌タイトルの下に表示される追加コンテキストです。最大 1000 文字です。
optionsstring[]❌判断の選択肢です。最初の選択肢は操作の承認です。デフォルト:["Approve", "Reject"]。最小 2 個、最大 5 個です。
timeoutstring❌自動失効までの時間:30m、4h、2d。デフォルト:24h。
notify_emailstring❌マジックリンク通知の送信先メールアドレスです。
slack_webhook_urlstring❌Slack の Webhook URL(Pro/Scale プラン)。ダッシュボード → Slack に追加から取得できます。
callback_urlstring❌署名付き判断 Webhook を受信するための HTTPS エンドポイントです。

戻り値: checkpoint_id と、エージェント向けの手順をステップごとに返します。

check_vantagate_status

保留中のチェックポイントの判断ステータスをポーリングします。

パラメーター型必須説明
checkpoint_idstring✅create_vantagate_checkpoint が返した ID です。

戻り値: status(PENDING/APPROVED/REJECTED/RESOLVED/EXPIRED)、selected_option、reject_reason、および監査証跡全体です。


API リファレンスの概要

ベース URL: https://api.vanta-gate.com/v1
認証: X-API-KEY ヘッダー

メソッドエンドポイント説明
POST/checkpointチェックポイントを作成し、エージェントを一時停止します
GET/checkpoint/{id}人間による判断をポーリングします
GET/checkpoint/secure/{token}判断 UI(内部用—マジックリンク)
POST/checkpoint/secure/{token}/decide判断を送信します(内部用—判断 UI)
チェックポイントのステータスライフサイクル
PENDING → APPROVED   (human chose first/positive option)
        → REJECTED   (human rejected with optional reason)
        → RESOLVED   (human chose non-primary option)
        → EXPIRED    (timeout elapsed, no decision)
エラーコード
HTTPコード説明
400Invalid_Webhook_URLslack_webhook_url は https://hooks.slack.com/ で始まる必要があります
400Invalid_Callback_URLcallback_url の形式が正しくないか、プライベート IP を指しています
400Invalid_Decision判断値がチェックポイントの options 配列に含まれていません
400Validation_Errorリクエストボディのフィールド検証に失敗しました
401UnauthorizedAPI キーがない、無効、またはローテーションされています
402Upgrade_Requiredこの機能には Pro または Scale プランが必要です
403ForbiddenAPI キーがチェックポイントのプロジェクトと一致しません
404Not_Foundチェックポイント ID またはトークンが存在しません
409Already_Decidedこのチェックポイントの判断はすでに記録されています
410Checkpoint_Expiredタイムアウト期間を過ぎています
429Rate_Limitedリクエストが多すぎます。間隔を空けて再試行してください

すべてのエラーは次のエンベロープ形式に従います:

{
  "statusCode": 400,
  "error": "Machine_Readable_Code",
  "message": "Human-readable description."
}

サブスクリプションプラン

機能FreePro($49/月)Scale($199/月)
月あたりのチェックポイント数502,50025,000
メール通知✅✅✅
Slack 通知❌✅✅
Webhook コールバック✅✅✅
最大タイムアウト24h7 日30 日
ログ保持期間7 日90 日365 日

タイムアウト値は、プランの上限まで自動的に切り詰められます。Free プランで timeout: "7d" を指定した場合、24h に制限されます。


Webhook

人間が判断を下すと、VantaGate は署名付き HTTPS POST を callback_url に送信します(指数バックオフで最大 5 回再試行します)。

リクエストヘッダー:

Content-Type: application/json
X-Vanta-Signature: sha256=<HMAC-SHA256 of body>
User-Agent: VantaGate-Webhook/1.0

署名の検証(Node.js):

const crypto = require('crypto')

function verifyVantaSignature(rawBody, signature, projectSecret) {
  const expected = 'sha256=' + crypto
    .createHmac('sha256', projectSecret)
    .update(rawBody)
    .digest('hex')
  return crypto.timingSafeEqual(
    Buffer.from(expected),
    Buffer.from(signature)
  )
}

app.post('/webhook/vanta', express.raw({ type: 'application/json' }), (req, res) => {
  const sig = req.headers['x-vanta-signature']
  if (!verifyVantaSignature(req.body, sig, process.env.VANTA_PROJECT_SECRET)) {
    return res.status(401).json({ error: 'Invalid signature' })
  }
  const event = JSON.parse(req.body)
  if (event.status === 'APPROVED') {
    // ✅ Resume agent workflow
  } else if (event.status === 'REJECTED') {
    // ❌ Halt - check event.reject_reason
  }
  res.json({ received: true })
})

Webhook 署名シークレット(VANTA_PROJECT_SECRET)は API キーとは別のものです。ダッシュボード → プロジェクト設定で確認できます。


ソースからビルドする

# Install dependencies
npm install

# Build TypeScript
npm run build

# Run the server directly
VANTA_API_KEY=YOUR_API_KEY_HERE npm start

上級編:その他のクライアント向け MCP 設定

Cursor/Cline/Windsurf
{
  "mcpServers": {
    "vantagate": {
      "command": "npx",
      "args": ["-y", "@vantagate/mcp-server"],
      "env": {
        "VANTA_API_KEY": "YOUR_API_KEY_HERE"
      }
    }
  }
}
ローカルビルドを使用する場合(開発)
{
  "mcpServers": {
    "vantagate": {
      "command": "node",
      "args": ["/absolute/path/to/dist/index.js"],
      "env": {
        "VANTA_API_KEY": "YOUR_API_KEY_HERE"
      }
    }
  }
}

セキュリティ

  • X-API-KEY はサーバー側でハッシュ化されます。VantaGate が平文のキーを保存することはありません。
  • slack_webhook_url はリクエストごとに送信され、判定後にアトミックに削除されます。保持期間はゼロです。
  • すべてのペイロードデータはAES-256 で保存時に暗号化され、人間による判定後に破棄されます。復元することはできません。
  • callback_url はプライベート IP アドレスの範囲に対して検証されます(SSRF 防止)。
  • すべての Webhook 配信にはHMAC-SHA256 で署名します。必ず署名を検証してください。

ライセンス

MIT - LICENSE をご覧ください。


リンク

コメント

MCP は初めてですか?

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

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