io.github.Aderix/vantagate-mcp-server

السجل الرسمي أدوات المطورين

VantaGate MCP Server & OpenAPI integration - Human-in-the-Loop for AI Agents

التثبيت

أضف هذا إلى إعدادات MCP في عميلك (Claude Desktop: claude_desktop_config.json، وCursor: ‏.cursor/mcp.json، ويستخدم VS Code وغيره الصيغة نفسها «mcpServers»).

NPM package @vantagate/mcp-server
Claude Code
claude mcp add vantagate-mcp-server -e 'VANTA_API_KEY=<your vanta_api_key>' -- npx -y @vantagate/mcp-server@1.0.2
إعداد JSON (Claude Desktop وCursor وVS Code)
{
    "mcpServers": {
        "vantagate-mcp-server": {
            "command": "npx",
            "args": [
                "-y",
                "@vantagate/mcp-server@1.0.2"
            ],
            "env": {
                "VANTA_API_KEY": "<your vanta_api_key>"
            }
        }
    }
}

متغيرات البيئة

  • VANTA_API_KEY إلزامي سري Your VantaGate API Key (Format: vg_123...)

التوثيق

مأخوذ من ملف README للمشروع على GitHub ويُحدَّث أسبوعيًا. تفتح الروابط على GitHub.

المحتويات
  1. VantaGate MCP Server & OpenAPI Integration
  2. What is VantaGate?
  3. This Package
  4. Prerequisites
  5. Quick Start
  6. Available MCP Tools
  7. API Reference Summary
  8. Subscription Tiers
  9. Webhooks
  10. Building from Source
  11. Advanced: MCP Config for Other Clients
  12. Security
  13. License
  14. Links

VantaGate MCP Server & OpenAPI Integration

Human-in-the-Loop authorization for AI Agents. VantaGate intercepts high-risk actions, routes them to a human approver via Slack or Email, and returns a cryptographically-signed decision - so your agent resumes or halts with a full audit trail.


What is VantaGate?

AI agents are increasingly capable of executing consequential real-world actions: sending emails to thousands of users, deleting database records, moving money, deploying to production. VantaGate is the trust layer that ensures humans remain in control.

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
Key Guarantees
  • < 100ms API response - your agent is never blocked waiting for I/O
  • AES-256 payload encryption at rest - payload is permanently destroyed after the decision
  • Zero-Retention polling - GET /checkpoint/{id} never returns the original payload
  • Cryptographic audit trail - every decision is HMAC-SHA256 signed
  • Stateless protocol - no SDK required; plain HTTP from any language

This Package

This package ships two integration artifacts for connecting any AI agent to VantaGate:

ArtifactFileBest for
OpenAPI 3.0 Specvanta-gate-openapi.jsonNo-code tools, OpenAI GPTs, Alice, n8n, Zapier
MCP Serversrc/index.ts / dist/index.jsClaude Desktop, Cursor, Cline, any MCP-compatible agent

Prerequisites

  • Node.js >= 20
  • A VantaGate account: https://vanta-gate.com
  • A VantaGate API key (Dashboard → Projects → New Project)

Quick Start

Option A: Use the MCP Server with Claude Desktop

The fastest path. No manual setup required.

Step 1: Get your API key from https://vanta-gate.com/dashboard/projects

Step 2: Add VantaGate to your Claude Desktop config.

Open your 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"
      }
    }
  }
}

Step 3: Restart Claude Desktop. The tools create_vantagate_checkpoint and check_vantagate_status will appear in Claude's tool list.

Step 4: Ask Claude to do something that requires approval:

"Delete all records from the staging database where created_at < 2024-01-01"

Claude will automatically pause, create a checkpoint, and tell you to check your email or Slack for the approval notification.


Option B: Use the OpenAPI Spec (No-Code / Low-Code)

Import vanta-gate-openapi.json directly into your tool of choice.

OpenAI GPTs / Custom Actions
  1. Open your GPT editor at https://platform.openai.com/gpts
  2. Click "Add actions" → "Import from URL" or paste the JSON
  3. Set Authentication → API Key → Header: X-API-KEY
  4. Enter your VantaGate API key

The GPT will now pause before high-risk tool calls and ask for human approval.

Alice (AI Agent Platform)
  1. Go to Integrations → Import OpenAPI
  2. Upload or paste vanta-gate-openapi.json
  3. Set header X-API-KEY to your VantaGate API key in the credential store
  4. Map create_vantagate_checkpoint to your agent's "before high-risk action" trigger
n8n / Zapier
  1. Add an HTTP Request node
  2. Import the OpenAPI spec to auto-populate endpoints
  3. Set X-API-KEY header in the credential configuration
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)

Available MCP Tools

create_vantagate_checkpoint

Pauses the agent workflow and routes a human approval request.

When Claude uses it: Before any high-risk action - financial operations, data deletion, production deployments, bulk communications.

ParameterTypeRequiredDescription
titlestring✅Short title shown to approver. Max 200 chars.
payloadobject✅Full JSON context for the decision. Encrypted + purged after decision.
descriptionstring❌Additional context below the title. Max 1000 chars.
optionsstring[]❌Decision options. First = approve action. Default: ["Approve", "Reject"]. Min 2, max 5.
timeoutstring❌Auto-expire duration: 30m, 4h, 2d. Default: 24h.
notify_emailstring❌Email address for magic-link notification.
slack_webhook_urlstring❌Slack webhook URL (Pro/Scale plans). From Dashboard → Add to Slack.
callback_urlstring❌Your HTTPS endpoint for signed decision webhook.

Returns: checkpoint_id and step-by-step instructions for the agent.

check_vantagate_status

Polls the decision status of a pending checkpoint.

ParameterTypeRequiredDescription
checkpoint_idstring✅The ID from create_vantagate_checkpoint.

Returns: status (PENDING / APPROVED / REJECTED / RESOLVED / EXPIRED), selected_option, reject_reason, and the full audit trail.


API Reference Summary

Base URL: https://api.vanta-gate.com/v1
Authentication: X-API-KEY header

MethodEndpointDescription
POST/checkpointCreate a checkpoint - pauses agent
GET/checkpoint/{id}Poll for human decision
GET/checkpoint/secure/{token}Decision UI (internal - magic link)
POST/checkpoint/secure/{token}/decideSubmit decision (internal - decision UI)
Checkpoint Status Lifecycle
PENDING → APPROVED   (human chose first/positive option)
        → REJECTED   (human rejected with optional reason)
        → RESOLVED   (human chose non-primary option)
        → EXPIRED    (timeout elapsed, no decision)
Error Codes
HTTPCodeDescription
400Invalid_Webhook_URLslack_webhook_url must start with https://hooks.slack.com/
400Invalid_Callback_URLcallback_url is malformed or points to private IP
400Invalid_DecisionDecision value not in checkpoint's options array
400Validation_ErrorRequest body field validation failure
401UnauthorizedMissing, invalid, or rotated API key
402Upgrade_RequiredFeature requires Pro or Scale plan
403ForbiddenAPI key doesn't match the checkpoint's project
404Not_FoundCheckpoint ID or token does not exist
409Already_DecidedDecision already recorded for this checkpoint
410Checkpoint_ExpiredTimeout window has passed
429Rate_LimitedToo many requests - back off and retry

All errors follow the envelope:

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

Subscription Tiers

FeatureFreePro ($49/mo)Scale ($199/mo)
Checkpoints/month502,50025,000
Email notifications✅✅✅
Slack notifications❌✅✅
Webhook callbacks✅✅✅
Max timeout24h7 days30 days
Log retention7 days90 days365 days

Timeout values are silently clamped to your plan's maximum. A Free plan request with timeout: "7d" will be capped to 24h.


Webhooks

When a human decides, VantaGate sends a signed HTTPS POST to your callback_url (up to 5 retry attempts with exponential back-off).

Request headers:

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

Signature verification (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 })
})

Your Webhook Signing Secret (VANTA_PROJECT_SECRET) is distinct from your API key. Find it in Dashboard → Project Settings.


Building from Source

# Install dependencies
npm install

# Build TypeScript
npm run build

# Run the server directly
VANTA_API_KEY=YOUR_API_KEY_HERE npm start

Advanced: MCP Config for Other Clients

Cursor / Cline / Windsurf
{
  "mcpServers": {
    "vantagate": {
      "command": "npx",
      "args": ["-y", "@vantagate/mcp-server"],
      "env": {
        "VANTA_API_KEY": "YOUR_API_KEY_HERE"
      }
    }
  }
}
With local build (development)
{
  "mcpServers": {
    "vantagate": {
      "command": "node",
      "args": ["/absolute/path/to/dist/index.js"],
      "env": {
        "VANTA_API_KEY": "YOUR_API_KEY_HERE"
      }
    }
  }
}

Security

  • Your X-API-KEY is hashed server-side - VantaGate never stores plaintext keys.
  • Your slack_webhook_url is sent per-request and purged atomically after the decision. Zero retention.
  • All payload data is encrypted at rest with AES-256 and destroyed after the human decision. It cannot be reconstructed.
  • callback_url is validated against private IP ranges (SSRF prevention).
  • All webhook deliveries are signed with HMAC-SHA256. Always verify signatures.

License

MIT - see LICENSE


الأسئلة الشائعة

ما هو io.github.Aderix/vantagate-mcp-server؟

VantaGate MCP Server & OpenAPI integration - Human-in-the-Loop for AI Agents

كيف أثبّت io.github.Aderix/vantagate-mcp-server؟

يعمل على جهازك. في Claude Code: claude mcp add vantagate-mcp-server -e 'VANTA_API_KEY=<your vanta_api_key>' -- npx -y @vantagate/mcp-server@1.0.2. وفي العملاء الآخرين، الصق إعداد JSON من هذه الصفحة في إعدادات MCP الخاصة بهم.

هل يحتاج io.github.Aderix/vantagate-mcp-server إلى مفتاح API؟

نعم. يتطلب VANTA_API_KEY، وتضبطها في إعداداته.

هل io.github.Aderix/vantagate-mcp-server مفتوح المصدر؟

نعم. شيفرته متاحة على GitHub بترخيص MIT.

من يصون io.github.Aderix/vantagate-mcp-server؟

ينشره Aderix. يدرجه AI.tn لكنه لا يصونه ولا يوصي به.

من سجل MCP الرسمي. الإدراج ليس توصية: راجع شيفرة الخادم وصلاحياته قبل منحه الوصول إلى بياناتك.