debugg-ai/debugg-ai-mcp

debugg-ai/debugg-ai-mcp

от debugg-ai
MCP инструмент для браузерного тестирования: задайте URL и описание — AI-агент выполняет сценарий и выдаёт pass/fail со скриншотами. Есть probe_page для быстрых проверок без LLM. Помогает разработчикам и QA автоматизировать UI-тесты.

Debugg AI — MCP Server

AI-powered browser testing via the Model Context Protocol. Point it at any URL (or localhost) and describe what to test — an AI agent browses your app and returns pass/fail with screenshots.

Debugg AI MCP server

Setup

Requires Node.js 20.20.0 or later (transitive requirement from posthog-node@^5.26.0).

Get an API key at debugg.ai, then add to your MCP client config:

{
  "mcpServers": {
    "debugg-ai": {
      "command": "npx",
      "args": ["-y", "@debugg-ai/debugg-ai-mcp"],
      "env": {
        "DEBUGGAI_API_KEY": "your_api_key_here"
      }
    }
  }
}

Or with Docker:

docker run -i --rm --init -e DEBUGGAI_API_KEY=your_api_key quinnosha/debugg-ai-mcp

Tools

The server exposes 8 tools: three Browser tools plus one action-based tool per managed entity. The headline tools are check_app_in_browser (full AI agent) and probe_page (lightweight no-LLM page probe). The rest — project, environment, test_suite, test_case, executions — each take an action discriminator (e.g. {"action":"list"}) that selects the operation. Destructive delete actions require confirmation (an elicitation prompt where supported, otherwise confirm: true).

Инструменты были проиндексированы:
check_app_in_browserвнешний мир

Даёт AI-агенту глаза на живом веб-сайте или приложении. Агент просматривает его, взаимодействует с ним и сообщает, прошла ли заданная задача или проверка. Работает на localhost или любом URL. Используйте для визуального контроля качества, проверки потоков, регрессионных проверок или всего, что требует реального браузера для верификации. ПОДДЕРЖКА LOCALHOST: Передайте любой URL localhost (например, http://localhost:3000) — и всё работает. Автоматически создаётся безопасный туннель, чтобы удалённый браузер мог добраться до вашего локального сервера разработки — никакой ручной настройки ngrok, перенаправления портов или конфигурации. ОБЪЁМ НА ВЫЗОВ: Ограничивайте каждый вызов ОДНОЙ сфокусированной проверкой — одной страницей или коротким взаимодействием на одном экране (вход в систему, отправка формы, проверка заголовка). Для всего, что охватывает несколько страниц или длинные многошаговые потоки, разбивайте на ОТДЕЛЬНЫЕ вызовы — у удалённого браузерного агента есть внутренний бюджет примерно в 25 шагов на вызов, и длинные одиночные вызовы рискуют превысить таймаут на стороне клиента. Пример: вместо «войти, затем перейти в настройки, затем обновить профиль, затем проверить» сделайте три вызова: (1) войти и проверить панель управления, (2) обновить настройки, (3) проверить изменение профиля.

Запускает E2E тест браузера.

Параметры
  • authobject

    Необязательное условие авторизации для проверки «войти, затем перейти по ссылке». Установите precondition:'login', чтобы сначала выполнить аутентификацию (используя учётные данные окружения), а затем перейти на deepUrl. Используйте это вместо того, чтобы надеяться, что агент сам войдёт в систему на странице входа.

  • credentialIdstring

    UUID конкретных учетных данных для входа. Смотрите доступные учетные данные в описании инструмента выше.

  • credentialRolestring

    Выберите учетные данные по роли (например, 'admin', 'guest') из разрешенной среды.

  • descriptionstringобязательный

    Описание на естественном языке того, что нужно протестировать или оценить (например, «Проверяет ли форма входа пустые поля?» или «Перейдите на главную страницу и убедитесь, что hero-секция загружается»)

  • environmentIdstring

    Укажите UUID конкретной среды для этого теста. Смотрите доступные среды в описании инструмента выше.

  • passwordstring

    Я не могу предоставить пароль, потому что у меня нет доступа к списку учётных данных. Если вы имеете в виду пароль для какой-то системы или сервиса, используйте свои собственные данные для входа или обратитесь к тому, кто выдаёт доступ. Если вы ожидали, что пароль указан в предыдущем контексте, его там нет — я могу только переводить текст и отвечать на вопросы, но не хранить и не подбирать пароли.

  • repoNamestring

    Имя репозитория GitHub (например, 'my-org/my-repo'). Автоматически определяется из текущего git-репозитория — указывайте его только если хотите запустить другой проект, а не тот, в котором находитесь.

  • urlstringобязательный

    URL для перехода. Может быть любым публичным URL (https://example.com) ИЛИ URL локального/dev-сервера (localhost). Для URL localhost автоматически создаётся безопасный туннель — просто убедитесь, что ваш dev-сервер запущен на этом порту.

  • usernamestring

    Реальный существующий email аккаунта для целевого приложения. Не выдумывай и не угадывай учётные данные — используй один из доступных, перечисленных выше, или спроси у пользователя. Браузерный агент введёт это в форму входа.

environmentвнешний мир

Управляет окружениями (и их учётными данными) в рамках проекта. Передайте "action": - "get" {uuid, projectUuid?} → одно окружение с учётными данными inline (пароли никогда не возвращаются). - "list" {projectUuid?, q?, page?, pageSize?} → окружения с постраничной выдачей. projectUuid автоматически разрешается из git-репозитория, если опущен. - "create" {name, url, description?, projectUuid?, credentials?} → создаёт окружение, опционально с начальным набором учётных данных. - "update" {uuid, name?, url?, description?, addCredentials?, updateCredentials?, removeCredentialIds?} → обновляет окружение и управляет учётными данными. - "delete" {uuid, projectUuid?, confirm?} → удаляет окружение (НЕОБРАТИМО; требует подтверждения).

Окружение

Параметры
  • actionenumобязательный

    Операция для выполнения

  • addCredentialsobject[]

    Добавить учетные данные.

  • confirmboolean

    [delete] Установите значение true для подтверждения удаления (когда клиент не может запросить подтверждение).

  • credentialsobject[]

    Создать учётные данные для входа.

  • descriptionstring

    Создаёт/обновляет описание в свободной форме.

  • namestring

    [Создание/обновление] Имя окружения.

  • pagenumber

    [list] Страница (индексация с 1).

  • pageSizenumber

    [list] Размер страницы (1..100).

  • projectUuidstring

    Целевой проект (по умолчанию: автоопределение через git).

  • qstring

    Свободный текстовый поиск по имени окружения.

  • removeCredentialIdsstring[]

    Удаляет учетные данные по UUID.

  • updateCredentialsobject[]

    [update] Обновить учетные данные по UUID.

  • urlstring

    [создание/обновление] базового URL

  • uuidstring

    [получить/обновить/удалить] UUID окружения

executionsтолько чтениевнешний мир

Получает информацию о выполнениях рабочих процессов (история запусков check_app_in_browser, trigger_crawl и test-suite). Передайте параметр "action": - "get" {uuid} → одна запись с ПОЛНЫМИ деталями (nodeExecutions, state, errorInfo) + все артефакты (скриншоты/gif). - "list" {projectUuid?, status?, page?, pageSize?} → сводки выполнения с пагинацией. status ∈ completed|running|failed|cancelled|pending. Совет: после свежего запуска check_app_in_browser опрашивайте action:"get" с полученным executionId, пока не появятся URL артефактов.

Workflow Executions

Параметры
  • actionenumобязательный

    Операция для выполнения

  • pagenumber

    [list] Страница (индексация с 1).

  • pageSizenumber

    [list] Размер страницы (1..100).

  • projectUuidstring

    [list] Фильтровать по UUID проекта

  • statusstring

    Фильтруйте по статусу.

  • uuidstring

    [get] UUID выполнения.

probe_pageтолько чтениевнешний мир

Проверяет один или несколько URL и возвращает их отрендеренное состояние: скриншот, метаданные страницы (title/finalUrl/statusCode/loadTimeMs), структурированные ошибки консоли и сводку по сети для каждого URL (циклы повторных запросов сворачиваются в одну строку по origin+pathname). КОГДА ИСПОЛЬЗОВАТЬ: «я только что сломал /settings?» / «smoke-test этих 5 маршрутов после моего рефакторинга» / «что на самом деле рендерится на /dashboard?» — быстро (<10s для 1 URL, <25s для 20), без затрат LLM, без цикла агента. НЕ ДЛЯ: проверки сценариев (войти → кликнуть X → проверить Y), взаимодействия (клики, заполнение форм, прокрутка) или всего, что требует решений агента. Для этого используйте check_app_in_browser. ПОДДЕРЖКА LOCALHOST: любой localhost URL автоматически туннелируется. Предварительный TCP-зонд быстро завершается ошибкой (<2s), если dev-сервер не слушает. ПАКЕТНЫЙ РЕЖИМ: передайте до 20 целей в одном вызове, чтобы разделить сессию браузера и туннель — это значительно быстрее, чем запускать параллельные одиночные зонды (один блок выполнения, а не N). Для каждого URL параметры waitForSelector / waitForLoadState / timeoutMs переопределяют значения по умолчанию. Ошибка одной неудачной цели появляется в result.error, не ломая весь пакет — остальные результаты остаются корректными.

Probe Page

Параметры
  • captureScreenshotsboolean

    Если значение true (по умолчанию), для каждой цели возвращается один PNG-скриншот. Установите false для очень больших пакетов или когда важны только структурированные данные.

  • includeHtmlboolean

    Если true, каждый результат включает outerHTML страницы. По умолчанию false, чтобы размер ответа оставался разумным.

  • repoNamestring

    Имя репозитория GitHub (например, 'my-org/my-repo'). Автоматически определяется из текущего git-репозитория — укажите это только для того, чтобы ограничить проверку другим контекстом проекта.

  • targetsobject[]обязательный

    От 1 до 20 URL для проверки. Каждая запись может иметь собственную конфигурацию ожидания для каждого URL.

projectвнешний мир

Управляет проектами DebuggAI. Передайте параметр "action": - "get" {uuid} → один проект с полными деталями. - "list" {q?, page?, pageSize?} → постраничные сводки проектов. - "create" {name, platform, (teamUuid|teamName), (repoUuid|repoName)} → создаёт проект. Репозиторий должен быть привязан к GitHub; имена разрешаются по точному совпадению без учёта регистра. Примечание: здесь нет обновления/удаления — переименовывайте/удаляйте проект из веб-приложения DebuggAI.

Проект

Параметры
  • actionenumобязательный

    Операция для выполнения

  • namestring

    Название проекта.

  • pagenumber

    [list] Страница (индексация с 1).

  • pageSizenumber

    [list] Размер страницы (1..100).

  • platformstring

    [create] Платформа, например "web".

  • qstring

    Поиск по свободному тексту.

  • repoNamestring

    [создать] имя репозитория GitHub "org/repo" (или repoUuid).

  • repoUuidstring

    Создаёт UUID GitHub repo (или repoName).

  • teamNamestring

    [create] Название команды (или teamUuid).

  • teamUuidstring

    [создать] UUID команды (или teamName).

  • uuidstring

    Получить UUID проекта.

test_caseвнешний мир

Управляет отдельными тестовыми случаями в наборе. Передайте "action": - "create" {name, description, agentTaskDescription, suiteUuid|(suiteName+project), relativeUrl?, maxSteps?} → добавляет тестовый случай (НЕ запускается автоматически). - "update" {testUuid, name?, description?, agentTaskDescription?} → обновляет тестовый случай. - "delete" {testUuid, confirm?} → мягко удаляет (НЕОБРАТИМО; требуется подтверждение).

Тестовый пример

Параметры
  • actionenumобязательный

    Операция для выполнения

  • agentTaskDescriptionstring

    Что должен делать и проверять ИИ-агент.

  • confirmboolean

    [delete] Установите значение true для подтверждения удаления (когда клиент не может запросить подтверждение).

  • descriptionstring

    Описание тестового случая.

  • maxStepsnumber

    [create] Максимальное количество шагов агента (1..100).

  • namestring

    Название тестового примера.

  • projectNamestring

    [create] Название проекта (или projectUuid).

  • projectUuidstring

    [создать] UUID проекта (или projectName).

  • relativeUrlstring

    [create] Начальный путь должен начинаться с «/».

  • suiteNamestring

    [создать] Имя набора (требуется идентификатор проекта).

  • suiteUuidstring

    [создать] UUID набора.

  • testUuidstring

    [обновление/удаление] UUID тестового случая.

test_suiteвнешний мир

Управляет тестовыми наборами и запускает их. Определяет набор по suiteUuid или по suiteName + идентификатор проекта (projectUuid|projectName). Передайте "action": - "list" {projectUuid|projectName, search?, page?, pageSize?} → возвращает постраничные наборы со статусом/процентом прохождения. - "create" {name, description, projectUuid|projectName} → создаёт набор. - "run" {suiteUuid|(suiteName+project), targetUrl?} → запускает все тесты асинхронно. Опрашивайте статус с помощью action:"results". - "results" {suiteUuid|(suiteName+project)} → возвращает набор и результаты по каждому тесту. - "delete" {suiteUuid|(suiteName+project), confirm?} → мягкое удаление (ОПАСНО; требует подтверждения).

Набор тестов

Параметры
  • actionenumобязательный

    Операция для выполнения

  • confirmboolean

    [delete] Установите значение true для подтверждения удаления (когда клиент не может запросить подтверждение).

  • descriptionstring

    Описание набора.

  • namestring

    [create] Название набора.

  • pagenumber

    [list] Страница (индексация с 1).

  • pageSizenumber

    [list] Размер страницы (1..100).

  • projectNamestring

    Название проекта (или projectUuid).

  • projectUuidstring

    UUID проекта (или projectName).

  • searchstring

    [list] Текстовый фильтр по названию/описанию.

  • suiteNamestring

    Имя тестового набора (требует идентификатор проекта).

  • suiteUuidstring

    Набор тестов UUID.

  • targetUrlstring

    [run] Переопределить тестовую цель по умолчанию (полный URL).

trigger_crawlвнешний мир

Запускает краулинг веб-приложения через браузерный агент, чтобы сформировать граф знаний проекта. Краулинг систематически исследует страницы, состояния интерфейса и навигационные сценарии, затем заполняет граф знаний на бэкенде, чтобы будущие оценки и тесты имели контекст о приложении. ПОДДЕРЖКА LOCALHOST: Передайте любой URL localhost (например, http://localhost:3000) — и всё работает. Автоматически создаётся защищённый туннель, чтобы удалённый браузер мог добраться до вашего локального сервера разработки. КОГДА ИСПОЛЬЗОВАТЬ: после добавления значимой новой возможности, новой среды или при адаптации проекта. НЕ для проверки каждого изменения - для этого используйте check_app_in_browser. ОБЛАСТЬ ДЕЙСТВИЯ: один краулинг за один вызов для одного URL. Краулинг выполняется долго (от минут до десятков минут в зависимости от размера приложения) и асинхронно заполняет состояние бэкенда; инструмент возвращает статус выполнения после завершения рабочего процесса. Он НЕ возвращает пройден/не пройден - он возвращает executionId и outcome.

Trigger App Crawl

Параметры
  • credentialIdstring

    UUID конкретных учетных данных для аутентифицированных обходов. Смотрите доступные учетные данные в описании инструмента выше.

  • credentialRolestring

    Выберите учетные данные по роли (например, 'admin', 'guest') из разрешенной среды.

  • environmentIdstring

    UUID конкретной среды для обхода. Смотрите доступные среды в описании инструмента выше.

  • passwordstring

    Я не могу предоставить пароль. У меня нет доступа к учётным данным, и я не занимаюсь их хранением или выдачей. Если вам нужно восстановить доступ, обратитесь к администратору системы или воспользуйтесь официальной процедурой сброса пароля.

  • projectUuidstring

    UUID проекта, граф знаний которого должен заполнить обход. Если не указано, автоматически определяется из текущего git-репозитория.

  • repoNamestring

    Имя репозитория GitHub (например, 'my-org/my-repo'). Автоматически определяется из текущего git-репозитория — укажите его только для работы с другим проектом.

  • timeoutSecondsnumber

    Максимальное время выполнения обхода в секундах (1..1800). Бэкенд применяет это ограничение для каждого выполнения рабочего процесса.

  • urlstringобязательный

    URL для обхода. Может быть любой публичный URL или URL локального сервера разработки. Для локальных URL автоматически создается безопасный туннель — просто убедитесь, что ваш сервер разработки запущен на этом порту.

  • usernamestring

    Реальный существующий email аккаунта для целевого приложения. НЕ выдумывай учетные данные — используй один из доступных или спроси пользователя.

Похожие MCP-сервера

Playwright MCP

Playwright MCP

официальный

MCP сервер для браузерной автоматизации на основе Playwright. Использует structured accessibility snapshots вместо скриншотов, что делает его быстрым и LLM-friendly. Подходит для агентов, тестирования и автономных сценариев без vision-моделей.

TypeScript36983
executeautomation/playwright-mcp-server

executeautomation/playwright-mcp-server

Сервер для браузерной автоматизации на Playwright. Используется AI-агентами для открытия страниц, скриншотов, веб-скрапинга и выполнения JavaScript в реальном браузере. Отлично подходит для тестиро...

TypeScript5644
qainsights/locust-mcp-server

qainsights/locust-mcp-server

MCP-сервер для запуска нагрузочных тестов Locust из AI-сред. Просто интегрирует написание тестовых сценариев и запуск в headless или UI режиме. Полезен разработчикам и QA для быстрой верификации пр...

Python13
swimmwatch/cloakbrowser-mcp

swimmwatch/cloakbrowser-mcp

MCP-сервер для браузерной автоматизации, использующий CloakBrowser — Chromium с антидетектом. Запускает Playwright MCP через тонкий мост, предоставляя все стандартные инструменты для управления бра...

TypeScript56
browserstack/mcp-server

browserstack/mcp-server

MCP сервер BrowserStack для тестирования через AI. Управляйте тест-кейсами, запускайте ручные и автотесты, отлаживайте и исправляйте код на естественном языке. Работает в Cursor и Claude.

TypeScript150
ronantakizawa/a11ymcp

ronantakizawa/a11ymcp

MCP сервер с Axe-core и Puppeteer для тестирования веб-доступности: проверяет URL и HTML-фрагменты на WCAG (2.0-2.2), оценивает цветовой контраст, ARIA-атрибуты и ориентацию. Полезен разработчикам ...

JavaScript91
© Каталог MCP, 2026. Все права защищены.
Проект не аффилирован с Anthropic и любыми упомянутыми продуктами.
Все названия и торговые марки принадлежат их владельцам.
Контакты для связи: hi@mcp-katalog.ru

Лука Никитин