# VITNA – Containment for rogue AI agents

Перехватывает вызовы stdio MCP-серверов и останавливает опасные действия до подтверждения человеком. Помогает контролировать агента при работе с файлами и инструментами.

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

## Что делает

VITNA работает как защитная прослойка перед локальными stdio MCP-серверами. Перед запуском команды утилита сверяет каждый вызов `tools/call` с правилами из файла `VITNA_GUARD_POLICY`. Если действие помечено как рискованное, агент встаёт на удержание, пока человек не подтвердит операцию в панели управления или не истечёт тайм-аут. Без ручного аппрува опасная операция не выполнится.

Пакет также содержит 23 инструмента для предварительной проверки действий агента по 24 нормативным актам в 13 юрисдикциях. Проверка возвращает синхронный статус `allowed`, `blocked` или `flagged`, а подтверждённые аккаунты сохраняют подписанные протоколы для офлайн-аудита.

Учтите ограничение: VITNA контролирует только обёрнутые через stdio процессы. Встроенная командная оболочка клиента или сторонние серверы вне обёртки остаются вне зоны видимости перехватчика.

## Требования
- Нужно: Node.js (команды через npx)
- Удалённый сервер: `https://vitna.costrinity.xyz/api/mcp`
- Переменные окружения: `VITNA_OWNER_ID`, `VITNA_API_KEY`, `VITNA_EMAIL`, `VITNA_BASE_URL`, `VITNA_OPEN_CLAIM` — это ключи и токены: значения спроси у человека, в репозиторий и общие файлы не записывай.

## Установка

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

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

2. **Командой платформы**
```bash
claude mcp add --env VITNA_OWNER_ID=<VITNA_OWNER_ID> --env VITNA_API_KEY=<VITNA_API_KEY> --env VITNA_EMAIL=<VITNA_EMAIL> --env VITNA_BASE_URL=<VITNA_BASE_URL> --env VITNA_OPEN_CLAIM=<VITNA_OPEN_CLAIM> --transport stdio vitna-containment-for-rogue-ai-agents -- npx -y @costrinity/vitna-compliance-mcp
```
Вместо <…> подставьте свои значения

### Codex

1. **Командой платформы: удалённый сервер**
```bash
codex mcp add vitna-containment-for-rogue-ai-agents --url https://vitna.costrinity.xyz/api/mcp
```

2. **Командой платформы**
```bash
codex mcp add vitna-containment-for-rogue-ai-agents --env VITNA_OWNER_ID=<VITNA_OWNER_ID> --env VITNA_API_KEY=<VITNA_API_KEY> --env VITNA_EMAIL=<VITNA_EMAIL> --env VITNA_BASE_URL=<VITNA_BASE_URL> --env VITNA_OPEN_CLAIM=<VITNA_OPEN_CLAIM> -- npx -y @costrinity/vitna-compliance-mcp
```
Вместо <…> подставьте свои значения

### Cursor

**Файл настроек**
Файл `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "vitna-containment-for-rogue-ai-agents": {
            "url": "https://vitna.costrinity.xyz/api/mcp"
        }
    }
}
```
Файл `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "vitna-containment-for-rogue-ai-agents": {
            "command": "npx",
            "args": [
                "-y",
                "@costrinity/vitna-compliance-mcp"
            ],
            "env": {
                "VITNA_OWNER_ID": "<VITNA_OWNER_ID>",
                "VITNA_API_KEY": "<VITNA_API_KEY>",
                "VITNA_EMAIL": "<VITNA_EMAIL>",
                "VITNA_BASE_URL": "<VITNA_BASE_URL>",
                "VITNA_OPEN_CLAIM": "<VITNA_OPEN_CLAIM>"
            }
        }
    }
}
```
Вместо <…> подставьте свои значения

### GitHub Copilot

**Файл настроек**
Файл `.vscode/mcp.json`:
```json
{
    "servers": {
        "vitna-containment-for-rogue-ai-agents": {
            "type": "http",
            "url": "https://vitna.costrinity.xyz/api/mcp"
        }
    }
}
```
Файл `.vscode/mcp.json`:
```json
{
    "servers": {
        "vitna-containment-for-rogue-ai-agents": {
            "type": "stdio",
            "command": "npx",
            "args": [
                "-y",
                "@costrinity/vitna-compliance-mcp"
            ],
            "env": {
                "VITNA_OWNER_ID": "<VITNA_OWNER_ID>",
                "VITNA_API_KEY": "<VITNA_API_KEY>",
                "VITNA_EMAIL": "<VITNA_EMAIL>",
                "VITNA_BASE_URL": "<VITNA_BASE_URL>",
                "VITNA_OPEN_CLAIM": "<VITNA_OPEN_CLAIM>"
            }
        }
    }
}
```
Вместо <…> подставьте свои значения

### Gemini CLI

1. **Командой платформы: удалённый сервер**
```bash
gemini mcp add -t http vitna-containment-for-rogue-ai-agents https://vitna.costrinity.xyz/api/mcp
```

2. **Командой платформы**
```bash
gemini mcp add -e VITNA_OWNER_ID=<VITNA_OWNER_ID> -e VITNA_API_KEY=<VITNA_API_KEY> -e VITNA_EMAIL=<VITNA_EMAIL> -e VITNA_BASE_URL=<VITNA_BASE_URL> -e VITNA_OPEN_CLAIM=<VITNA_OPEN_CLAIM> vitna-containment-for-rogue-ai-agents npx -y @costrinity/vitna-compliance-mcp
```
Вместо <…> подставьте свои значения

## Когда брать
- блокировать перезапись и удаление файлов агентом без одобрения
- проверять соответствие планируемых действий регуляторным нормам
- сохранять подписанные цифровые записи принятых решений
- останавливать несанкционированные вызовы рискованных инструментов

## Примеры запросов агенту
- Запусти файловый сервер через VITNA guard с файлом политик `policy.json`
- Проверь планируемое действие на соответствие нормативным требованиям перед вызовом инструмента

_Часть страницы не вошла по размеру — она есть в HTML-версии._

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