Vanta MCP Server
Vanta MCP Server
Сервер MCP для платформы соответствия Vanta. Предоставляет 16 инструментов для управления контролями, уязвимостями, поставщиками, тестами, сценариями рисков, политиками, отслеживаемыми компьютерами, документами и результатами проверок.
Транспорты
Транспорт | Эндпоинт | Вариант использования |
Streamable HTTP |
| Claude Desktop, большинство MCP-клиентов |
SSE |
| Устаревшие клиенты (n8n и др.) |
Health |
| Проверки работоспособности контейнера |
Быстрый старт — Docker
1. Получение учетных данных
Войдите в Консоль разработчика Vanta.
Перейдите в Settings → API Access.
Создайте OAuth-приложение — скопируйте Client ID и Client Secret.
Предоставьте области доступа (scopes), необходимые вашим инструментам (обычно
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-запроса в секундах |
|
| Базовый URL API Vanta |
| — | Арендатор по умолчанию: Vanta OAuth2 client ID ( |
| — | Арендатор по умолчанию: Vanta OAuth2 client secret ( |
OAUTH_CLIENT_ID / OAUTH_CLIENT_SECRET используются только для автоматического создания записи арендатора "default". Для многопользовательских развертываний используйте config/tenants.json.
Многопользовательский режим (Multi-Tenant)
Для нескольких организаций 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 client ID (префикс: |
| ✅* | OAuth client secret (префикс: |
| ✅* | Персональный токен доступа — альтернатива OAuth (префикс: |
*Для каждого арендатора требуется один метод аутентификации. OAuth рекомендуется для продакшена.
Если в tenants.json существует "default", запросы без заголовка X-Tenant-ID будут автоматически использовать эти учетные данные. См. ../MCP-Multi-Tenant-Guide.md для получения полной информации об архитектуре и примеров использования клиентами.
config/tenants.json игнорируется git и никогда не включается в образ 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 после изменения
claude_desktop_config.json.Подтвердите, что сервер запущен:
curl http://localhost:8010/health.
No Vanta credentials found
Убедитесь, что
OAUTH_CLIENT_IDиOAUTH_CLIENT_SECRETустановлены в.env(или в переменных окружения).Или подтвердите, что
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.