Vanta MCP Server
Vanta MCP 服务器
一个用于 Vanta 合规平台的 MCP 服务器。公开了 16 个工具,用于管理控制项、漏洞、供应商、测试、风险场景、策略、受监控计算机、文档和发现项。
传输方式
传输方式 | 端点 | 使用场景 |
Streamable HTTP |
| Claude Desktop,大多数 MCP 客户端 |
SSE |
| 旧版客户端 (n8n 等) |
健康检查 |
| 容器健康检查 |
快速入门 — Docker
1. 获取凭据
登录 Vanta 开发者控制台。
前往 Settings → API Access。
创建一个 OAuth 应用程序 — 复制 Client ID 和 Client Secret。
授予工具所需的范围(通常为
vanta.read和vanta.write)。
2. 配置
cp .env.example .env
# Edit .env — set OAUTH_CLIENT_ID and OAUTH_CLIENT_SECRET at minimum.env 示例:
OAUTH_CLIENT_ID=your_client_id
OAUTH_CLIENT_SECRET=your_client_secret
AUTH_TOKEN= # optional — requires Bearer auth on /mcp and /sse
PORT=80103. 运行
docker compose up -d
# Server: http://localhost:8010
# Health: http://localhost:8010/health4. 连接 Claude Desktop
添加到 claude_desktop_config.json:
{
"mcpServers": {
"vanta": {
"type": "http",
"url": "http://localhost:8010/mcp"
}
}
}如果设置了 AUTH_TOKEN:
{
"mcpServers": {
"vanta": {
"type": "http",
"url": "http://localhost:8010/mcp",
"headers": {
"Authorization": "Bearer YOUR_AUTH_TOKEN"
}
}
}
}快速入门 — 本地(无 Docker)
python -m venv venv && source venv/bin/activate
pip install -r requirements.txt
export OAUTH_CLIENT_ID=your_client_id
export OAUTH_CLIENT_SECRET=your_client_secret
python -m src.server环境变量
变量 | 默认值 | 描述 |
|
| 信息性 — |
|
| 绑定地址 |
|
| HTTP 端口(也接受旧版 |
| (已禁用) | 如果设置,客户端必须发送 |
|
|
|
|
| HTTP 请求超时时间(秒) |
|
| Vanta API 基础 URL |
| — | 默认租户:Vanta OAuth2 客户端 ID ( |
| — | 默认租户:Vanta OAuth2 客户端密钥 ( |
OAUTH_CLIENT_ID / OAUTH_CLIENT_SECRET 仅用于自动创建“默认”租户条目。对于多租户部署,请改用 config/tenants.json。
多租户
对于多个 Vanta 组织,请填充 config/tenants.json(从 config/tenants.json.example 复制):
{
"tenants": [
{
"id": "acme-corp",
"vanta_base_url": "https://api.vanta.com",
"vanta_client_id": "vci_CLIENT_ID_A",
"vanta_client_secret": "vcs_CLIENT_SECRET_A"
},
{
"id": "contoso",
"vanta_base_url": "https://api.vanta.com",
"vanta_api_token": "vat_PERSONAL_ACCESS_TOKEN_B"
}
]
}id 值是您的代理/客户端在 X-Tenant-ID 请求头中发送的内容:
X-Tenant-ID: acme-corp
Authorization: Bearer <AUTH_TOKEN> ← only if AUTH_TOKEN is set in .env凭据字段:
字段 | 必需 | 描述 |
| ✅ | 必须与 |
| 可选 | 默认为 |
| ✅* | OAuth 客户端 ID (前缀: |
| ✅* | OAuth 客户端密钥 (前缀: |
| ✅* | 个人访问令牌 — OAuth 的替代方案 (前缀: |
*每个租户需要一种身份验证方法。生产环境建议使用 OAuth。
如果 tenants.json 中存在 "default",则没有 X-Tenant-ID 请求头的请求将自动使用这些凭据。有关完整架构和客户端使用示例,请参阅 ../MCP-Multi-Tenant-Guide.md。
config/tenants.json 已被 gitignore 忽略,且永远不会被构建到 Docker 镜像中 — 它通过 ./config:/app/config:ro 卷在运行时挂载。
工具
控制项
工具 | 描述 |
| 列出所有控制项(支持分页) |
| 获取特定控制项的详细信息(按 ID) |
| 列出链接到特定控制项的所有测试 |
漏洞
工具 | 描述 |
| 列出漏洞(支持分页) |
| 更新漏洞的修复状态和备注 |
| 列出漏洞发现项(支持分页) |
| 停用特定漏洞(按 ID) |
供应商
工具 | 描述 |
| 列出已批准的供应商(支持分页) |
| 获取特定供应商的详细信息(按 ID) |
| 列出自动发现的供应商(来自集成) |
测试
工具 | 描述 |
| 列出所有合规性测试(支持分页) |
| 列出与特定测试关联的实体 |
风险与策略
工具 | 描述 |
| 列出风险场景(支持分页) |
| 列出安全策略(支持分页) |
资产与文档
工具 | 描述 |
| 列出由 Vanta 代理监控的计算机 |
| 列出文档(策略、程序、证据) |
身份验证流程
Claude Desktop → POST /mcp
→ TenantAuthMiddleware (validates AUTH_TOKEN if set, reads X-Tenant-ID)
→ _require_client() → tenants.json lookup or env vars
→ OAuth2 token exchange (POST https://api.vanta.com/oauth/token)
→ Vanta API call with Bearer token
→ Response令牌按租户实例进行缓存,并在 401 错误时自动刷新。
项目布局
Vanta-MCP/
├── src/
│ ├── server.py # Starlette app; /mcp, /sse, /health endpoints
│ ├── middleware.py # TenantAuthMiddleware (AUTH_TOKEN + X-Tenant-ID)
│ ├── context.py # Request-scoped tenant ID storage
│ ├── tools.py # All 16 MCP tool functions
│ └── vanta_client.py # Vanta API client (OAuth2, all endpoints)
├── config/
│ ├── tenants.json # Gitignored — your multi-tenant config
│ └── tenants.json.example # Template — safe to commit
├── Dockerfile
├── docker-compose.yml
├── docker-compose.override.yml.example
├── requirements.txt
├── .env.example
└── README.md故障排除
401 Unauthorized
验证
OAUTH_CLIENT_ID和OAUTH_CLIENT_SECRET是否正确。确保 OAuth 应用程序在 Vanta 开发者控制台中具有所需的范围。
如果使用
AUTH_TOKEN,请确认客户端发送了Authorization: Bearer <token>。
403 Forbidden
OAuth 应用程序范围不足。请在 Vanta 开发者控制台中更新它。
404 Not Found
资源 ID 在您的 Vanta 组织中不存在。
工具未在 Claude Desktop 中显示
修改
claude_desktop_config.json后重启 Claude Desktop。确认服务器正在运行:
curl http://localhost:8010/health。
No Vanta credentials found
确保
.env(或环境变量)中设置了OAUTH_CLIENT_ID和OAUTH_CLIENT_SECRET。或者确认
config/tenants.json已挂载并包含所请求租户的有效条目。
Docker 代码更改未生效
docker compose restart不会重新构建镜像。请运行:docker compose build --no-cache && docker compose up -d
许可证
MIT
Related MCP Connectors
- mcpOAuthcom.vibgrate
Query your team's drift, vulnerability, and upgrade data from any AI assistant. OAuth 2.1, 51 tools.
Compliance frameworks (SOC 2, ISO 27001, CMMC, NIST, more) delivered to AI agents as MCP tools.
CTEM for your Trusteed tenant: security summary, findings, compliance gaps, and scans via OAuth.
EU compliance corpus across 8 frameworks (NIS2, DORA, AI Act, ISO 27001 + more) via MCP.