omni-tester
⚡ Omni-Tester: MCP-агент тестирования без галлюцинаций
Omni-Tester — это сервер Model Context Protocol (MCP), который оснащает AI-агентов (Claude, Cursor, Windsurf и других) основанным на доказательствах антигаллюцинационным движком валидации. Перестаньте позволять вашей LLM «угадывать», работает ли эндпоинт, — требуйте программных доказательств.
Агент взаимодействует напрямую с бэкенд-серверами, проверяя HTTP-статусы, заголовки ответов и JSON-полезные нагрузки, и выдаёт детерминированные, машинно проверенные результаты.
✅ Уже реализовано (детерминированное доказательство)
Эти уровни работают уже сегодня и возвращают машинно проверенные доказательства — без участия суждений LLM:
Слой 1 — проверка протокола и статуса: отправляет запрос и проверяет, что возвращённый HTTP-статус соответствует вашему явному ожиданию (например,
200 OK,201 Created), помечая несовпадения и сбои5xx.Слой 2 — целостность схемы и полезной нагрузки: проверяет, что заголовок
Content-Typeравенapplication/json, разбирает тело как JSON и возвращает снимок полезной нагрузки. Если передать необязательныйexpected_schema, он также детерминированно обеспечивает наличие и тип каждого поля — верхнего уровня ("id"), вложенных через точечные пути ("address.geo.lat") и элементов списков по индексам ("items.0.id"). Поддерживаемые типы:int,float/number,str/string,bool,list/array,dict/object,null. (JSONtrue/falseне принимается какint.)
Оба слоя выполняются всегда — сбой по статус-коду не подавляет диагностику полезной нагрузки, поэтому вы по-прежнему видите тело ошибки ответа 4xx/5xx.
Пример с контролем схемы:
run_api_4_layer_validation(
endpoint_url="https://jsonplaceholder.typicode.com/users/1",
expected_status=200,
method="GET",
expected_schema={"id": "int", "email": "str", "address.geo.lat": "str"},
)Также есть экспериментальный инструмент run_ui_dom_checklist (Playwright), который загружает страницу в headless-браузере и сообщает количество форм, изображения без alt-тегов и ошибки консоли.
Related MCP server: agentseed
🗺️ Дорожная карта (ещё не реализовано)
Следующие возможности запланированы, но сейчас отсутствуют в коде. Они описаны здесь для прозрачности, а не как доступные функции:
Слой 3 — функциональная бизнес-логика: использование LLM для проверки того, что возвращённые данные логически соответствуют сценарию. (Примечание: это суждение на основе LLM, а не детерминированное доказательство.)
Слой 4 — проверка безопасности и граничных условий: внедрение вредоносных полезных нагрузок (строк SQL-инъекций, повреждённых заголовков, просроченных токенов аутентификации), чтобы убедиться, что API безопасно завершается сбоем.
Углублённый слой 2 (проверки вложенных типов): ✅ Готово — проверяются поля верхнего уровня, точечные вложенные пути и индексы списков. Оставшиеся идеи: поэлементная валидация по всему массиву (например, «у каждого элемента есть
intid») и ограничения enum/формата.Автономный API-агент: самостоятельный инженер по тестированию, который планирует сценарии, генерирует тестовый код на Python и самовосстанавливается при изменении схем.
API-агент-исследователь: динамически фаззит и связывает действия (например, извлекает токен из
GETи подставляет его вPUT).Журналы аудита: структурированный вывод в
specs/api_plan.md,tests/api/иdata/reports/api_report_*.html.
📦 Установка
С помощью uv (рекомендуется):
uv venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
uv sync # Install dependencies from pyproject.tomlДля инструмента UI-чеклиста один раз установите браузер Playwright:
uv run playwright install chromiumПроверьте, что сервер запускается (он общается по MCP через stdio и будет ждать клиента):
uv run omni-tester🔌 Подключение к MCP-клиентам
Сервер запускается командой uv run omni-tester. Добавьте его в выбранный вами клиент ниже. Если uv отсутствует в PATH вашего клиента, укажите абсолютный путь к бинарному файлу uv в поле command.
Claude Code (CLI)
Добавьте его одной командой:
claude mcp add --transport stdio omni-tester -- uv run omni-testerИли добавьте его вручную в .mcp.json уровня проекта:
{
"mcpServers": {
"omni-tester": {
"type": "stdio",
"command": "uv",
"args": ["run", "omni-tester"],
"env": {}
}
}
}Claude Desktop
Отредактируйте claude_desktop_config.json (Настройки → Разработчик → Изменить конфигурацию):
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"omni-tester": {
"command": "uv",
"args": ["run", "omni-tester"],
"env": {}
}
}
}Перезапустите Claude Desktop после сохранения.
Cursor
Отредактируйте .cursor/mcp.json (для проекта) или ~/.cursor/mcp.json (глобально):
{
"mcpServers": {
"omni-tester": {
"type": "stdio",
"command": "uv",
"args": ["run", "omni-tester"],
"env": {}
}
}
}Windsurf (Cascade)
Отредактируйте mcp_config.json (Настройки → Управление MCP-серверами → Просмотр конфигурации):
macOS/Linux:
~/.codeium/windsurf/mcp_config.jsonWindows:
%APPDATA%\Codeium\Windsurf\mcp_config.json
{
"mcpServers": {
"omni-tester": {
"command": "uv",
"args": ["run", "omni-tester"],
"env": {}
}
}
}Перезапустите Windsurf после сохранения.
🛠️ Инструменты
Инструмент | Статус | Назначение |
| ✅ Слои 1–2 | Проверяет HTTP-статус, |
| 🧪 Экспериментальный | Playwright DOM-чеклист (формы, |
Примечание о названии: инструмент называется
run_api_4_layer_validationдля совместимости с будущими версиями, но сегодня реализованы только слои 1–2 (см. «Дорожная карта»).
🧪 Пример
Проверка живого эндпоинта с ожиданием 200:
run_api_4_layer_validation(
endpoint_url="https://jsonplaceholder.typicode.com/users/1",
expected_status=200,
method="GET",
)Результат:
Backend 4-Layer Validation Complete:
✅ Layer 1 PASS: Expected 200, received 200.
✅ Layer 2 PASS: Valid JSON payload returned.
Payload Snapshot: {'id': 1, 'name': 'Leanne Graham', ...}This server cannot be deployed
Maintenance
Related MCP Connectors
Deterministic validation for AI-generated artifacts: JSON Schema, OpenAPI response, SQL syntax.
Paid deterministic data-quality and execution-verification tools for AI agents.
Deterministic runtime safety for AI agents: scan PII, gate tool actions, verify LLM output.
Deterministic fact verification for AI agents — checksums & curated data, not guesses.
Related MCP Servers
AlicenseAqualityAmaintenanceEnables coding agents to independently verify web changes by scanning pages, inspecting UI structure, generating Playwright reproductions, and executing tests with structured QA evidence.404MIT- AlicenseNot gradedqualityAmaintenanceEnables AI coding agents to enforce spec-driven development and verify code before it is marked done, using six tools that catch invented APIs, scan for hallucinated content, check plugin conformance, sandbox-run tests, validate schemas, and record audit evidence.771 npm8PolyForm Noncommercial 1.0.0
- AlicenseNot gradedqualityBmaintenanceEnables coding agents to verify application changes by running browser workflows, executing independent state assertions, and producing replayable evidence.0MIT
- AlicenseNot gradedqualityBmaintenanceEnables deterministic verification of AI agent decisions and actions, providing PASS/FAIL/ABSTAIN verdicts with replayable proofs and an optional signed receipt ledger.5 npmApache 2.0