Skip to main content
Glama

⚡ 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. (JSON true/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: QA Testing MCP Server

🗺️ Дорожная карта (ещё не реализовано)

Следующие возможности запланированы, но сейчас отсутствуют в коде. Они описаны здесь для прозрачности, а не как доступные функции:

  • Слой 3 — функциональная бизнес-логика: использование LLM для проверки того, что возвращённые данные логически соответствуют сценарию. (Примечание: это суждение на основе LLM, а не детерминированное доказательство.)

  • Слой 4 — проверка безопасности и граничных условий: внедрение вредоносных полезных нагрузок (строк SQL-инъекций, повреждённых заголовков, просроченных токенов аутентификации), чтобы убедиться, что API безопасно завершается сбоем.

  • Углублённый слой 2 (проверки вложенных типов):Готово — проверяются поля верхнего уровня, точечные вложенные пути и индексы списков. Оставшиеся идеи: поэлементная валидация по всему массиву (например, «у каждого элемента есть int id») и ограничения 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.json

  • Windows: %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.json

  • Windows: %APPDATA%\Codeium\Windsurf\mcp_config.json

{
  "mcpServers": {
    "omni-tester": {
      "command": "uv",
      "args": ["run", "omni-tester"],
      "env": {}
    }
  }
}

Перезапустите Windsurf после сохранения.


🛠️ Инструменты

Инструмент

Статус

Назначение

run_api_4_layer_validation

✅ Слои 1–2

Проверяет HTTP-статус, Content-Type, корректность JSON и опционально тип/схему каждого поля (вложенные пути и пути списков)

run_ui_dom_checklist

🧪 Экспериментальный

Playwright DOM-чеклист (формы, alt-теги, ошибки консоли)

Примечание о названии: инструмент называется 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', ...}
A
license - permissive license
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • Deterministic validation for AI-generated artifacts: JSON Schema, OpenAPI response, SQL syntax.

  • Deterministic fact verification for AI agents — checksums & curated data, not guesses.

  • Build, validate, and deploy multi-agent AI solutions from any AI environment.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Seerrriiii/omni-tester-skill'

If you have feedback or need assistance with the MCP directory API, please join our Discord server