使用说明
VantaGate MCP服务器和OpenAPI集成
人工智能代理的人机交互授权。 VantaGate拦截高风险操作,通过Slack或电子邮件将其发送给人工审批人,并返回一个加密签名的决定,因此您的代理可以继续或停止进行完整的审计跟踪。
VantaGate是什么?
人工智能代理越来越有能力执行相应的现实世界操作:向数千名用户发送电子邮件、删除数据库记录、转移资金、部署到生产环境。 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:
| 工件 | 文件 | 最适合 |
|---|---|---|
| OpenAPI 3.0规范 | vanta-gate-openapi.json |
无代码工具、OpenAI GPT、Alice、n8n、Zapier |
| MCP服务器 | src/index.ts / dist/index.js |
Claude Desktop、Cursor、Cline、任何兼容MCP的代理 |
先决条件
- Node.js>=20
- VantaGate账户: https://vanta-gate.com
- VantaGate API钥匙(仪表板→ 项目→ 新项目)
快速开始
选项A:使用带Claude Desktop的MCP服务器
最快的路径。无需手动设置。
第一步: 从获取API密钥 https://vanta-gate.com/dashboard/projects
第二步: 将VantaGate添加到您的Claude桌面配置中。
打开你的 claude_desktop_config.json:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - 窗户:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"vantagate": {
"command": "npx",
"args": ["-y", "@vantagate/mcp-server"],
"env": {
"VANTA_API_KEY": "YOUR_API_KEY_HERE"
}
}
}
}
步骤3: 重新启动克劳德桌面。工具 create_vantagate_checkpoint 和 check_vantagate_status 将出现在克劳德的工具列表中。
步骤4: 让克劳德做一些需要批准的事情:
“从暂存数据库中删除所有记录,其中created_at<2024-01-01”
Claude将自动暂停,创建检查点,并告诉您检查电子邮件或Slack以获取批准通知。
选项B:使用OpenAPI规范(无代码/低代码)
导入 vanta-gate-openapi.json 直接进入您选择的工具。
OpenAI GPT/自定义操作
- 打开GPT编辑器 https://platform.openai.com/gpts
- 点击 “添加操作” → “从URL导入” 或粘贴JSON
- 集 认证 →
API Key→ 头球X-API-KEY - 输入您的VantaGate API密钥
GPT现在将在高风险工具调用之前暂停,并请求人工批准。
Alice(人工智能代理平台)
- 首选 集成 → 导入OpenAPI
- 上传或粘贴
vanta-gate-openapi.json - 设置标题
X-API-KEY到凭证存储中的VantaGate API密钥 - 地图
create_vantagate_checkpoint你的代理人的“高风险行动前”触发
n8n/Zapier
- 添加一个 HTTP请求 节点
- 导入OpenAPI规范以自动填充端点
- 集
X-API-KEY凭据配置中的标头
LangChain/LlamaIdex
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
暂停代理工作流并路由人工审批请求。
当克劳德使用它时: 在任何高风险行动之前——财务操作、数据删除、生产部署、批量通信。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
title |
string | ✅ | 向审批人显示的简短标题。最多200个字符。 |
payload |
对象 | ✅ | 决策的完整JSON上下文。决定后加密+清除。 |
description |
string | ❌ | 标题下方的附加上下文。最多1000个字符。 |
options |
string[] | ❌ | 决策选项。第一个=批准行动。违约: ["Approve", "Reject"].最少2个,最多5个。 |
timeout |
string | ❌ | 自动过期时间: 30m, 4h, 2d默认值: 24h. |
notify_email |
string | ❌ | 魔术链接通知的电子邮件地址。 |
slack_webhook_url |
string | ❌ | Slack webhook URL(专业版/扩展版计划)。来自仪表板→ 添加到Slack。 |
callback_url |
string | ❌ | 已签名决策webhook的HTTPS端点。 |
退货: checkpoint_id 以及代理的分步说明。
check_vantagate_status
轮询待处理检查点的决策状态。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
checkpoint_id |
string | ✅ | ID来自 create_vantagate_checkpoint. |
退货: 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 | 代码 | 描述 |
|---|---|---|
| 400 | Invalid_Webhook_URL |
slack_webhook_url 必须从以下内容开始 https://hooks.slack.com/ |
| 400 | Invalid_Callback_URL |
callback_url 格式错误或指向私有IP |
| 400 | Invalid_Decision |
检查点的选项数组中没有决策值 |
| 400 | Validation_Error |
请求正文字段验证失败 |
| 401 | Unauthorized |
API密钥丢失、无效或已旋转 |
| 402 | Upgrade_Required |
功能需要Pro或Scale计划 |
| 403 | Forbidden |
API密钥与检查点的项目不匹配 |
| 404 | Not_Found |
检查点ID或令牌不存在 |
| 409 | Already_Decided |
已记录此检查点的决定 |
| 410 | Checkpoint_Expired |
超时窗口已过 |
| 429 | Rate_Limited |
请求太多-请后退并重试 |
所有错误都遵循信封:
{
"statusCode": 400,
"error": "Machine_Readable_Code",
"message": "Human-readable description."
}
订阅级别
| 功能 | 免费 | 专业版(每月49美元) | 扩展版(每月199美元) |
|---|---|---|---|
| 检查点/月 | 50 | 2500 | 25000 |
| 电子邮件通知 | ✅ | ✅ | ✅ |
| 延迟通知 | ❌ | ✅ | ✅ |
| Webhook回调 | ✅ | ✅ | ✅ |
| 最长超时 | 24小时 | 7天 | 30天 |
| 日志保留 | 7天 | 90天 | 365天 |
超时值被默默地限制在计划的最大值。免费计划请求
timeout: "7d"将被限制在24h.
网络钩子
当人类做出决定时,VantaGate会向您的 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配置
光标/线/风帆
{
"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。始终验证签名。
许可证
麻省理工学院-见 许可证
