# Vulnify

MCP-сервер, который спрашивает у Vulnify разрешение перед тем, как агент прочитает, запишет, удалит или отправит данные. Ответ приходит один из трёх: ALLOW, REVIEW или BLOCK.

- MCP-сервер · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 2
- Автор: vulnify
- Лицензия: MIT · policy=link-only · показываем только описание, файл — у автора
- Исходник: https://github.com/vulnify/vulnify-mcp
- Обновлён: 2026-10-23
- HTML: https://affpapa.org/nevibecode/mcp/vulnify

## Что делает

Vulnify — слой авторизации во время выполнения для ИИ-агентов. Сервер проксирует `https://api.vulnify.io` и сам не хранит ни события, ни API-ключи. Агент спрашивает до действия, а не после.

Подключиться можно двумя путями. Хостинговый сервер `https://mcp.vulnify.io/mcp` работает по stateless Streamable HTTP и требует входа через OAuth 2.1: клиент получает HTTP 401 и уходит на страницу согласия, где вы выбираете организацию и набор scope. Локальный вариант — `npx -y @vulnify/mcp` с переменной `VULNIFY_API_KEY`; ему нужен Node.js 20 или новее, и страницу согласия он не открывает.

Инструменты различаются по последствиям. `check_action` — холостой прогон: сканирование персональных данных пропускается, ничего не записывается. `decide_action` фиксирует настоящее решение, а статус REVIEW ждёт человека — одобрить или отклонить его этот сервер не умеет. Через OAuth доступны пять инструментов; `plan_policy_changes` и `check_mcp_tool_call` требуют API-ключа. Если scope не выдан, придёт ошибка инструмента с именем нужного scope — читать её как ALLOW нельзя. Ключ бывает `vln_live_...` или `vln_test_...`; тестовый пишет события в песочницу, и в основные дашборды они не попадают.

## Требования
- Нужно: Node.js (команды через npx)
- Удалённый сервер: `https://mcp.vulnify.io/mcp`
- Переменные окружения: `VULNIFY_API_KEY`, `VULNIFY_BASE_URL` — это ключи и токены: значения спроси у человека, в репозиторий и общие файлы не записывай.

## Установка

### Claude Code (родная платформа)

1. **Командой платформы: удалённый сервер**
```bash
claude mcp add --transport http mcp https://mcp.vulnify.io/mcp
```

2. **Командой платформы**
```bash
claude mcp add --env VULNIFY_API_KEY=<VULNIFY_API_KEY> --env VULNIFY_BASE_URL=<VULNIFY_BASE_URL> --transport stdio vulnify -- npx -y @vulnify/mcp
```
Вместо <…> подставьте свои значения

### Codex

1. **Командой платформы: удалённый сервер**
```bash
codex mcp add vulnify --url https://mcp.vulnify.io/mcp
```

2. **Командой платформы**
```bash
codex mcp add vulnify --env VULNIFY_API_KEY=<VULNIFY_API_KEY> --env VULNIFY_BASE_URL=<VULNIFY_BASE_URL> -- npx -y @vulnify/mcp
```
Вместо <…> подставьте свои значения

### Cursor

**Файл настроек**
Файл `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "vulnify": {
            "url": "https://mcp.vulnify.io/mcp"
        }
    }
}
```
Файл `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "vulnify": {
            "command": "npx",
            "args": [
                "-y",
                "@vulnify/mcp"
            ],
            "env": {
                "VULNIFY_API_KEY": "<VULNIFY_API_KEY>",
                "VULNIFY_BASE_URL": "<VULNIFY_BASE_URL>"
            }
        }
    }
}
```
Вместо <…> подставьте свои значения

### GitHub Copilot

**Файл настроек**
Файл `.vscode/mcp.json`:
```json
{
    "servers": {
        "vulnify": {
            "type": "http",
            "url": "https://mcp.vulnify.io/mcp"
        }
    }
}
```
Файл `.vscode/mcp.json`:
```json
{
    "servers": {
        "vulnify": {
            "type": "stdio",
            "command": "npx",
            "args": [
                "-y",
                "@vulnify/mcp"
            ],
            "env": {
                "VULNIFY_API_KEY": "<VULNIFY_API_KEY>",
                "VULNIFY_BASE_URL": "<VULNIFY_BASE_URL>"
            }
        }
    }
}
```
Вместо <…> подставьте свои значения

### Gemini CLI

1. **Командой платформы: удалённый сервер**
```bash
gemini mcp add -t http vulnify https://mcp.vulnify.io/mcp
```

2. **Командой платформы**
```bash
gemini mcp add -e VULNIFY_API_KEY=<VULNIFY_API_KEY> -e VULNIFY_BASE_URL=<VULNIFY_BASE_URL> vulnify npx -y @vulnify/mcp
```
Вместо <…> подставьте свои значения

## Когда брать
- проверить действие агента до того, как оно выполнится
- получить ALLOW, REVIEW или BLOCK на чтение, запись, удаление, экспорт и отправку данных
- прогнать холостой прогон политики без записи решения
- зафиксировать настоящее решение по действию агента
- отправить действие на ручное подтверждение человеку

## Примеры запросов агенту
- Проверь через Vulnify, можно ли агенту удалить таблицу `sessions` — нужен только холостой прогон, без записи.
- Запроси решение Vulnify на экспорт данных из `users.csv` и покажи, что вернул `finalDecision`.
- Покажи список политик Vulnify, которые относятся к отправке данных наружу.

## Похожие
- [grantex](https://affpapa.org/nevibecode/mcp/grantex.md) — MCP-сервер · ★ 33
- [access-control-rbac](https://affpapa.org/nevibecode/skills/access-control-rbac.md) — скилл · 757 установок
- [delego](https://affpapa.org/nevibecode/mcp/delego.md) — MCP-сервер · ★ 25
- [convex-authz](https://affpapa.org/nevibecode/skills/convex-authz.md) — скилл · 36400 установок
- [api-authorization-and-bola](https://affpapa.org/nevibecode/skills/api-authorization-and-bola.md) — скилл · 3700 установок
- [django-access-review](https://affpapa.org/nevibecode/skills/django-access-review.md) — скилл · 2700 установок

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
