Skip to main content
Glama

MCP Vetter Agent

ИИ-аудитор безопасности для ИИ-инструментов. Агент, работающий на TrueForge, проверяет сторонние MCP-серверы на уязвимости безопасности до того, как вы подключите их к своему агенту, — а затем останавливается и спрашивает человека перед подачей публичного отчёта о безопасности.

TrueForge подключает агентов к любому MCP-серверу. Сообщество делится серверами как gist, шаблонами и побочными проектами — с захардкоженными ключами, eval() на аргументах инструментов и без границ аутентификации. Агенты не знают, что нужно быть подозрительными. Этот агент — тот самый подозрительный.

Как это работает

User: "audit https://github.com/someone/some-mcp-server"
  └─ TrueForge agent (mcp-vetter)
       ├─ clone_target          ── shallow-clones the GitHub URL onto the probe host
       ├─ read_target_manifest   ── declared tools & permission boundaries
       ├─ subagent: static_audit ── AST rules + Semgrep (SENT-001..007)
       ├─ subagent: full_audit   ── GPT review + Docker probes (SENT-008..011)
       ├─ Synthesizes verdict (HIGH/MEDIUM/LOW, OWASP Agentic Top 10 mapped)
       └─ ⏸ PAUSES before filing the GitHub security issue → human approves → files
  • Пробы выполняются изолированно: динамические пробы Sentinel выполняют целевой сервер внутри одноразовых Docker-контейнеров.

  • Шлюз одобрения — нативный TrueForge HITL: создание issue — это операция записи/деструктивное действие, поэтому среда приостанавливается для Allow/Deny.

  • Сессии переживают переподключения: обновите страницу посреди аудита — агент продолжит работать.

Related MCP server: mcp-security-scanner

Быстрый старт

# 1. Probe server (the security scanning engine)
python3 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
uvicorn probe_server.server:mcp_app --host 127.0.0.1 --port 8000   # serves /mcp

# 2. TrueForge (separate terminal; needs Node 22+)
npx @truefoundry/trueforge@latest                                   # UI at http://localhost:8790

# 3. In the TrueForge UI:
#    Settings → Models      : configure a provider (API key)
#    Settings → Connectors  : Add MCP Server → http://127.0.0.1:8000/mcp
#                             (+ GitHub connector from the catalog, OAuth)
#    Settings → Sandbox     : optional (skills/code mode); cloning runs on the probe host
#    Create agent           : import deploy/agent-manifest.json via API, or compose in UI

# 4. Chat: "audit ./fixtures/vulnerable_server"

Сначала попробуйте его на встроенных фикстурах:

Фикстура

Ожидаемый результат

fixtures/vulnerable_server

HIGH риск — калькулятор на eval(), неограниченное чтение файлов, отравленный промпт

fixtures/clean_server

Чистый отчёт

Структура репозитория

probe_server/    MCP server exposing the scanning engine as agent tools
fixtures/        Vulnerable + hardened reference MCP servers (from Sentinel, MIT)
deploy/          TrueForge agent manifest (agent spec via API)
docs/            PRD, architecture, week plan, setup guide

Доказательства код-ревью Qodo

Каждое существенное изменение в этом репозитории прошло через pull request, проверенный Qodo перед слиянием, — начиная с первого дня хакатона.

Показательный проверенный PR: #1 — feat: probe server, fixtures, tests, TrueForge agent spec

Что Qodo выявило и что мы с этим сделали (полная история видна в PR):

Этап

Замечания

Результат

Первичное ревью

2 High, 5 Medium

Исправлено: добавлен инструмент clone_target, чтобы GitHub-цели разворачивались на хосте-пробнике вместо недостижимого пути в песочнице (High); ужесточение защиты от симлинков и изоляции при чтении манифестов, чтобы предотвратить раскрытие файлов хоста при аудите вредоносных репозиториев (High); завершение группы процессов + сбор зомби-процессов при таймаутах сканирования; структурированные словари ошибок на каждой границе; асинхронная предварительная проверка Docker; зависимость сканера зафиксирована на неизменяемом коммите

Повторное ревью исправлений

3 High, 1 Medium

Исправлено: стандартные GitHub-URL без .git ошибочно отклонялись; таймауты клонирования оставляли осиротевшие git-процессы; цели в частных сетях (SSRF) отклонялись; устаревшие временные клоны вычищались вне основного потока

Третий проход

3 Medium

Исправлено: некорректные URL возвращают словари ошибок вместо исключений; при отмене дерево процессов клонирования корректно завершается; вся очистка вынесена из цикла событий

Финальный проход

0 замечаний

Чисто

Одно замечание было отклонено с задокументированной причиной: нулевой дайджест целостности чистой фикстуры (комментарий к PR) — в апстриме, в движке с лицензией MIT, который мы используем, он поставляется именно так, а задействованный путь кода никогда не выполняется нашими инструментами, поэтому мы оставили наши фикстуры идентичными апстриму, а не форкнули их.

В истории PR видны каждый этап ревью, коммиты, устраняющие его замечания, и последующие ревью, подтверждающие устранение в финальном коде.

Демо

Благодарности

Создано для The Agent Harness Hackathon (WeMakeDevs × TrueFoundry, август 2026). Лицензирование включённого эталонного кода см. в fixtures/LICENSE.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Security scanning for MCP servers from the inside out. Provides runtime inspection, AST-based static analysis, config audit, dependency analysis, and OWASP MCP Top 10 compliance in a single MCP server.
    55
    126 npm
    6
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Security scanner for MCP servers that detects tool poisoning, shadowing, and other risks via static rules and semantic analysis. Exposes the scan_mcp_server tool for scanning MCP servers over stdio.
    1
    55 PyPI
    1
    MIT