bugAgent
официальныйПодключите bugAgent к любому MCP-совместимому AI-клиенту. Создавайте, классифицируйте и управляйте багами, запросами функций и другими задачами прямо из вашего AI-ассистента для кода. Никакого переключения контекста, никакого копирования — просто опишите проблему, и bugAgent сделает всё остальное.
Что можно делать с bugAgent MCP?
- Сообщение об ошибках — Попросите вашего ассистента создать отчет об ошибке с автоматической классификацией по 19 типам, включая настройки серьезности и приоритета.
- Список и фильтрация отчетов — Используйте
list_bug_reportsдля запроса ошибок по проекту, серьезности, статусу, типу или тексту поиска, с пагинацией до 100 результатов. - Выбор следующей ошибки для работы — Позвольте вашему ассистенту вызвать
pick_next_bug, чтобы получить ошибку с наивысшим приоритетом без назначенного исполнителя (S1→S3, сначала самые старые) для вашей команды. - Атомарное закрепление ошибок — Используйте
claim_bugдля перехода ошибки в статус «в работе» без гонок и назначения её вам, предотвращая дублирование работы. - Управление тестовыми наборами и случаями — Создавайте тестовые наборы, запускайте регрессионные наборы и выводите список неудачных тестовых случаев за последние 7 дней.
Документация
Connect bug Agent к любому MCP-совместимому ИИ-клиенту.
Создавайте, классифицируйте и управляйте багами, запросами функций и другим напрямую из вашего ИИ-ассистента для программирования. Никакого переключения контекста, никакого копирования и вставки — просто опишите проблему, и bug Agent сделает всё остальное.
Внешние MCP-клиенты отделены от ИИ-ассистента дашборда bug Agent. Ассистент дашборда по умолчанию отключен во всех тарифных планах и требует явного включения в рабочем пространстве; его шлюз ai_assistant не отключает MCP или интеграции. Аутентификация MCP, области действия, разрешения рабочего пространства/проекта и права конкретных инструментов по-прежнему применяются.
Начало работы
bug Agent запускает размещенный MCP-сервер, чтобы ИИ-клиенты могли создавать, запрашивать и управлять отчетами об ошибках, запросами функций, улучшениями и другим через Model Context Protocol. Клиенты подключаются напрямую к размещенной конечной точке Streamable HTTP.
Получите свой API-ключ
Создайте бесплатную учетную запись; новые владельцы рабочих пространств сразу переходят к настройке API-ключа. Вернувшиеся пользователи могут сгенерировать ключ в Настройки → Разработчикам → API-ключи.
Настройте свой ИИ-клиент
Добавьте bug Agent как MCP-сервер в конфигурацию вашего клиента (см. настройку ниже).
Начните создавать баги
Опишите ошибку на естественном языке, и bug Agent автоматически классифицирует, обогатит и сохранит её.
# Create a bug report
"File a bug: Login button is unresponsive on iOS Safari.
Steps: tap login, nothing happens. Expected: navigate to
dashboard. Severity: high."
# bugAgent auto-classifies as UI bug, severity high
# File a feature request
"Feature request: Add dark mode toggle to the
settings page. Users have asked for this in surveys."
# Auto-classified as feature-request, severity medium
Настройка
Рекомендуется: размещенный Streamable HTTP
Подключитесь напрямую к https://mcp.bugagent.com/mcp. Ничего устанавливать или запускать локально не нужно. Добавьте API-ключ рабочего пространства как bearer-токен:
{
"mcpServers": {
"bugagent": {
"type": "http",
"url": "https://mcp.bugagent.com/mcp",
"headers": {
"Authorization": "Bearer ba_live_YOUR_KEY_HERE"
}
}
}
}
💡
Замените ba_live_YOUR_KEY_HERE на ваш фактический API-ключ из Настройки → Разработчикам.
Необязательный мост stdio
Используйте опубликованный мост только тогда, когда клиенту требуется stdio и он не может подключиться к удаленному HTTP-серверу. Запускайте его по требованию с помощью npx -y bugagent-mcp:
{
"mcpServers": {
"bugagent": {
"command": "npx",
"args": ["-y", "bugagent-mcp"],
"env": {
"BUGAGENT_API_KEY": "ba_live_YOUR_KEY_HERE"
}
}
}
}
Подключение к серверу
MCP-сервер bug Agent работает по адресу https://mcp.bugagent.com/mcp через транспорт Streamable HTTP. Подключитесь из любого из восьми клиентов ниже — выберите тот, который подходит вашему рабочему процессу.
Для небольшой готовой к копированию конфигурации, руководства по ключам с ограниченными областями и безопасных стартовых подсказок используйте публичный MCP quickstart.
🔑
Сначала получите свой API-ключ. Войдите в Настройки → Разработчикам, нажмите Создать API-ключ, выберите области, необходимые вашему клиенту, и скопируйте значение (начинается с ba_live_). Вы увидите его только один раз, поэтому сохраните его в безопасном месте. MCP-клиенты перечисляют только те инструменты, которые разрешены этими областями. Примеры подключения ниже используют этот ключ; подсказки, требующие интерактивного OAuth/сеанса или права платного тарифа, указаны отдельно.
Вариант 1 — MCP Inspector (веб-интерфейс, рекомендуется для первого тестирования)
Официальный инструмент Anthropic. Запускает локальный веб-интерфейс, где вы можете просмотреть каждый инструмент, заполнить параметры и увидеть ответы. Ноль конфигурации, IDE не требуется.
macOS (Терминал)
npx @modelcontextprotocol/inspector
Windows (PowerShell или CMD)
npx @modelcontextprotocol/inspector
В открывшемся браузерном интерфейсе:
- Тип транспорта: выберите
Streamable HTTP - URL:
https://mcp.bugagent.com/mcp - Тип подключения: выберите Прокси (по умолчанию — Inspector проксирует через локальный процесс Node, чтобы обойти CORS браузера)
- Откройте Настройки сервера → Пользовательские заголовки и добавьте:
- Имя заголовка:
X-Api-Key- Значение:
ba_live_YOUR_KEY_HERE(без префиксаBearer)
- Значение:
- Имя заголовка:
- Нажмите Подключить. Левая панель перечисляет инструменты bug Agent, разрешенные выбранными областями API-ключа.
- Нажмите на любой инструмент (например,
list_bug_reports), заполните параметры, нажмите Запустить инструмент. Ответ отображается справа.
Предварительные требования: MCP Inspector v2 требует Node.js 22.19 или новее. Установите текущую версию Node.js с nodejs.org, если у вас её нет.
Если Inspector возвращает invalid_client, он пытается использовать сохраненное OAuth-подключение вместо аутентификации по API-ключу. Удалите сохраненный сервер (или очистите его сохраненное состояние OAuth), добавьте его снова и используйте пользовательский заголовок X-Api-Key выше. Не помещайте ключ ba_live_ в поле OAuth client_id.
Вариант 2 — Claude Desktop (Mac + Windows)
Если вы используете приложение Claude Desktop, вы можете добавить bug Agent как постоянный MCP-сервер. С API-ключом рабочего пространства Claude получает только те инструменты, которые разрешены областями этого ключа. Делегированный OAuth открывает полный интерактивный каталог.
macOS
- Откройте Claude Desktop → в строке меню Claude → Настройки → Разработчик → Изменить конфигурацию. Откроется
~/Library/Application Support/Claude/claude_desktop_config.json. - Добавьте запись bug Agent в раздел
mcpServers:{ "mcpServers": { "bugagent": { "type": "http", "url": "https://mcp.bugagent.com/mcp", "headers": { "Authorization": "Bearer ba_live_YOUR_KEY_HERE" } } } } - Сохраните файл и полностью закройте Claude Desktop (Cmd+Q, не просто закройте окно).
- Перезапустите Claude Desktop. Значок молотка инструментов внизу поля ввода чата теперь должен показывать инструменты bug Agent.
- Попробуйте: введите «Список моих 5 последних отчетов об ошибках» — Claude автоматически вызовет
list_bug_reports.
Windows
- Откройте Claude Desktop → Файл → Настройки → Разработчик → Изменить конфигурацию. Откроется
%APPDATA%\Claude\claude_desktop_config.json(обычноC:\Users\YourName\AppData\Roaming\Claude\claude_desktop_config.json). - Добавьте тот же JSON-блок, показанный в разделе macOS.
- Сохраните файл и полностью закройте Claude Desktop из системного трея (щелкните правой кнопкой мыши по значку Claude → Выйти), затем перезапустите.
- Значок молотка инструментов покажет инструменты bug Agent.
Вариант 3 — Claude Code (CLI)
Если вы используете Claude Code из терминала (CLI-версия Claude), зарегистрируйте сервер bug Agent одной командой. Работает одинаково на macOS, Linux и Windows.
claude mcp add --transport http bugagent https://mcp.bugagent.com/mcp \
--header "Authorization: Bearer ba_live_YOUR_KEY_HERE"
Затем перезапустите сеанс Claude Code. Проверьте подключение:
claude mcp list
Вы должны увидеть bugagent в списке с зеленой точкой. Начните с подсказки, совместимой с API-ключом: «Список моих 5 последних открытых отчетов об ошибках».
Подключено, но некоторые инструменты отсутствуют?
Проверьте количество инструментов сервера в /mcp, а не только инструменты, уже загруженные в разговор. Claude Code может обнаруживать инструменты по запросу с помощью поиска инструментов. Попросите его найти bugAgent для list_test_cases, list_test_suites или get_test_run_plan. См. документацию по поиску инструментов Claude Code.
Каталог фильтруется по областям API-ключа. Для чтения тестовых случаев требуется test_cases:read; для чтения наборов/запусков требуется test_runs:read. Запрашивайте только те области записи, которые вам действительно нужны. Сравните аутентифицированный tools/list с той же конечной точкой и ключом, что и ваш клиент; анонимное обнаружение или другой ключ не являются допустимым сравнением. Проверьте наличие конфигурации уровня проекта, переопределяющей ваше подключение уровня пользователя, затем переподключитесь или перезапустите после изменения учетных данных.
Если аутентифицированный каталог сервера включает инструмент, но клиент все еще не может его обнаружить, запишите версию клиента, версию сервера, имена/количество инструментов и любые ошибки схемы, удалив учетные данные и данные клиента. Сеанс, начатый с ENABLE_TOOL_SEARCH=false claude, может отличить отложенное обнаружение от проблем загрузки, но загружает все определения инструментов и использует больше контекста; используйте его только как временную диагностику. Не расширяйте разрешения и не разделяйте конечные точки только для увеличения количества инструментов.
Чтобы удалить позже:
claude mcp remove bugagent
Вариант 4 — OpenAI Codex CLI
Если вы используете OpenAI Codex CLI, экспортируйте свой API-ключ и добавьте bug Agent в ~/.codex/config.toml.
Постоянная регистрация (добавить в конфигурацию)
[mcp_servers.bugagent]
url = "https://mcp.bugagent.com/mcp"
bearer_token_env_var = "BUGAGENT_API_KEY"
Установите API-ключ
export BUGAGENT_API_KEY="ba_live_YOUR_KEY_HERE"
Запустите или перезапустите Codex из этого окружения. Codex автоматически разрешает вызовы инструментов из вашей подсказки на естественном языке. Попробуйте: «Список моих открытых ошибок, отсортированных по серьезности».
Вариант 5 — Cursor (Mac + Windows)
Cursor имеет встроенную поддержку MCP. С соответствующим образом ограниченным API-ключом рабочего пространства ИИ-ассистент внутри Cursor может создавать ошибки, перечислять отчеты и запускать поддерживаемые рабочие процессы автоматизации, не покидая редактор. Сканирование безопасности, производительности и исследовательские сканы требуют делегированного OAuth и доступа к соответствующему плану.
- Откройте Cursor → Настройки (Cmd+, на Mac / Ctrl+, на Windows) → MCP на левой боковой панели.
- Нажмите + Добавить новый MCP-сервер.
- Выберите тип транспорта HTTP.
- Заполните:
- Имя:
bugagent- URL:
https://mcp.bugagent.com/mcp - Имя заголовка:
Authorization - Значение заголовка:
Bearer ba_live_YOUR_KEY_HERE
- URL:
- Имя:
- Нажмите Сохранить. Cursor покажет зеленый индикатор при подключении.
- Откройте чат Cursor (Cmd+L / Ctrl+L) и введите «Создай отчет об ошибке с названием «Логин сломан» с высоким приоритетом». Cursor вызовет
create_bug_report.
Альтернатива: Cursor также читает ~/.cursor/mcp.json (Mac) или %USERPROFILE%\.cursor\mcp.json (Windows). Добавьте тот же JSON-формат, показанный в разделе Claude Desktop.
Вариант 6 — VS Code с расширением Continue (Mac + Windows)
Если вы предпочитаете VS Code, расширение Continue поддерживает MCP-серверы нативно.
- Установите расширение Continue из маркетплейса VS Code.
- Откройте конфигурацию Continue: Палитра команд (Cmd+Shift+P / Ctrl+Shift+P) → Continue: Открыть config.json. Файл находится по адресу:
- macOS:
~/.continue/config.json- Windows:
%USERPROFILE%\.continue\config.json
- Windows:
- macOS:
- Добавьте запись
mcpServers:{ "mcpServers": [ { "name": "bugagent", "type": "streamable-http", "url": "https://mcp.bugagent.com/mcp", "requestOptions": { "headers": { "Authorization": "Bearer ba_live_YOUR_KEY_HERE" } } } ] } - Сохраните. Continue автоматически перезагрузится и покажет инструменты bug Agent на боковой панели.
- Откройте панель чата Continue и попробуйте: «Список моих 5 последних открытых отчетов об ошибках».
Другие расширения VS Code с поддержкой MCP: Cline, Roo Code и Windsurf (форк) следуют аналогичным шаблонам JSON-конфигурации с ключом mcpServers и HTTP-транспортом.
Вариант 7 — OAuth-совместимые хосты (веб-приложение Claude.ai показано как пример)
Некоторые MCP-хосты аутентифицируются через OAuth 2.0 и запрашивают статические client_id и client_secret заранее, вместо принятия bearer API-ключа. Сгенерируйте пару учетных данных коннектора из дашборда bug Agent и вставьте её в форму коннектора хоста. Пара идентифицирует MCP-клиента; после согласия выполнение инструментов использует вошедшего пользователя и его активное рабочее пространство bug Agent. Пошаговое руководство ниже использует веб-приложение Claude.ai как наиболее распространенный пример.
i
OAuth, привязанный к ресурсу. Идентификатор защищенного ресурса — https://mcp.bugagent.com/mcp. Хосты, поддерживающие стандарты, обнаруживают его из /.well-known/oauth-protected-resource/mcp и отправляют как параметр RFC 8707 resource. bug Agent выпускает непрозрачные токены, привязанные к этому ресурсу, OAuth-клиенту, вошедшему пользователю и предоставленным областям; токен не может быть воспроизведен против другой службы или использован другим клиентом.
- В bug Agent: откройте Настройки → Разработчикам → MCP-коннекторы. Нажмите Сгенерировать коннектор, дайте ему имя, описывающее хост (например, «Claude.ai (рабочий)»), вставьте URI перенаправления, который требует ваш MCP-хост (для веб-приложения Claude.ai это
https://claude.ai/api/mcp/auth_callback— проверьте документацию коннектора вашего хоста для других), и выберите Конфиденциальный для метода аутентификации. Скопируйтеclient_idиclient_secret, показанные один раз на экране успеха. - В настройках коннектора/OAuth вашего MCP-хоста вставьте:
- URL сервера:
https://mcp.bugagent.com/mcp- Client ID + Client Secret: из шага 1
- URL авторизации:
https://mcp.bugagent.com/authorize - URL токена:
https://mcp.bugagent.com/token - Защищенный ресурс / аудитория, если запрашивается:
https://mcp.bugagent.com/mcpДля Claude.ai конкретно: перейдите на claude.ai/customize/connectors и нажмите Добавить MCP-коннектор.
- URL сервера:
- Сохраните. Хост перенаправит вас в bug Agent для входа (Google или email/пароль — любой метод, который вы используете для дашборда) и одобрения согласия, затем завершит OAuth-рукопожатие.
- Управляйте и отзывайте сгенерированные коннекторы на той же странице настроек. Отзыв немедленный — следующий запрос от этого коннектора вернет
invalid_client.
Примечание: Claude Code, Cursor, VS Code и MCP Inspector не нуждаются в этом процессе — они обрабатывают динамическую регистрацию клиента (RFC 7591) автоматически и аутентифицируются через API-ключ, как показано выше. Форма MCP-коннекторов предназначена только для хостов, требующих статические OAuth-учетные данные.
Значения доступа и обновления OAuth отображаются только хосту. Они непрозрачны, ротируются при обновлении и хранятся bug Agent только как односторонние хэши; учетные данные обновления вышестоящей идентичности зашифрованы в состоянии покоя. Никогда не копируйте OAuth-токен в запрос REST API или другой MCP-сервер.
Вариант 8 — Прямой HTTP с curl (Терминал)
Если вы хотите протестировать сервер напрямую без какого-либо клиента или интегрировать его в скрипт, вы можете обратиться к HTTP-эндпоинту с curl. Протокол MCP — это JSON-RPC 2.0 поверх Streamable HTTP.
macOS / Linux
# Set your API key as a variable
export BUGAGENT_API_KEY="ba_live_YOUR_KEY_HERE"
# 1. Initialize the MCP connection
curl -N -s https://mcp.bugagent.com/mcp \
-H "Authorization: Bearer $BUGAGENT_API_KEY" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"curl-example","version":"1.0.0"}}}'
# 2. List tools visible to this key
curl -N -s https://mcp.bugagent.com/mcp \
-H "Authorization: Bearer $BUGAGENT_API_KEY" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/list"}'
# 3. Call a tool — list 5 reports from a specific project
curl -N -s https://mcp.bugagent.com/mcp \
-H "Authorization: Bearer $BUGAGENT_API_KEY" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{
"jsonrpc":"2.0",
"id":3,
"method":"tools/call",
"params":{
"name":"list_bug_reports",
"arguments":{"project":"bugagent","limit":5}
}
}'
Windows (PowerShell)
# Set your API key
$env:BUGAGENT_API_KEY = "ba_live_YOUR_KEY_HERE"
# Use Invoke-RestMethod (PowerShell's curl equivalent)
$headers = @{
"Authorization" = "Bearer $env:BUGAGENT_API_KEY"
"Content-Type" = "application/json"
"Accept" = "application/json, text/event-stream"
}
# 1. Initialize
$body = '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"powershell-example","version":"1.0.0"}}}'
Invoke-RestMethod -Uri "https://mcp.bugagent.com/mcp" \`
-Method Post -Headers $headers -Body $body
# 2. List tools visible to this key
$body = '{"jsonrpc":"2.0","id":2,"method":"tools/list"}'
Invoke-RestMethod -Uri "https://mcp.bugagent.com/mcp" \`
-Method Post -Headers $headers -Body $body
# 3. Call list_bug_reports for a specific project
$body = @{
jsonrpc = "2.0"
id = 3
method = "tools/call"
params = @{
name = "list_bug_reports"
arguments = @{ project = "bugagent"; limit = 5 }
}
} | ConvertTo-Json -Depth 5
Invoke-RestMethod -Uri "https://mcp.bugagent.com/mcp" \`
-Method Post -Headers $headers -Body $body
Ответы могут быть в формате JSON или Server-Sent Events. Каждый фрагмент SSE — это строка с префиксом data:, за которым следует JSON-объект. Соответствующие стандартам клиенты должны отправлять Accept: application/json, text/event-stream; bug Agent в настоящее время нормализует отсутствующие или неполные значения Accept для совместимости.
ℹ️
Устранение ошибки 401 Unauthorized: Проверьте, что ваш API-ключ не был отозван в Settings → Developers. Ключи начинаются с ba_live_. Если проблема не устранена, сгенерируйте ключ заново и повторите попытку.
Модель доступа и области с минимальными привилегиями
Полный каталог OAuth содержит 141 инструмент. API-ключ рабочей области видит только те инструменты, которые сопоставлены с одной из выбранных областей. Неаутентифицированное обнаружение может показывать метаданные инструментов, но tools/call всегда требует API-ключ или OAuth-токен.
Чтение отчетов об ошибках и разрешение проектов reports:read
Создание и обновление отчетов об ошибках reports:read, reports:write
Мониторинг использования usage:read
Проверка состояния синхронизации Jira jira:read
Синхронизация или объединение отчетов Jira jira:write
Авторизация веб-автоматизаций automations:write
Запуск веб-автоматизаций и чтение запусков automations:run
Наблюдение за мобильными активами и запусками mobile:read
Управление мобильными активами mobile:read, mobile:write
Запуск мобильной автоматизации mobile:read, mobile:run
Управление каталогом тестов reports:read, test_cases:read, test_cases:write
Внешний исполнитель тестов test_runs:read, test_runs:write
API-ключи привязаны к рабочей области, в которой они созданы. Входные данные инструмента могут сузить вызов до авторизованного проекта, но не могут переключить ключ на другую рабочую область. Разрешайте UUID проектов с помощью list_projects и отклоняйте неоднозначные имена.
Названия инструментов и аннотации
Каждый инструмент, возвращаемый tools/list, включает понятное название и подсказки о чтении/записи. Отсутствующие подсказки о чтении берутся из явно проверенного списка, а не из префиксов названий инструментов или областей API-ключей. Явные аннотации, включая false, сохраняются.
readOnlyHint: trueописывает инструмент, который не изменяет свою среду.readOnlyHint: falseсdestructiveHint: falseописывает аддитивные записи, а не операцию только для чтения.readOnlyHint: falseсdestructiveHint: trueописывает потенциально разрушительные записи. Неклассифицированные инструменты используют эти консервативные значения по умолчанию. Подсказка о разрушительности значима только для записей.
login не является операцией только для чтения: в режиме stdio она сохраняет учетные данные. analyze_fix_area и check_config_drift являются потенциально разрушительными записями, поскольку они заменяют сохраненные результаты анализа или базовые конфигурации.
Аннотации не предоставляют доступ и не заменяют аутентификацию, авторизацию рабочей области/проекта, области API-ключей или проверки прав. Подсказки подтверждения зависят от политики разрешений клиента и настроек пользователя; подсказки не гарантируют, будет ли вызов запрашивать подтверждение.
Для программного обнаружения и аудита загрузите сгенерированный mcp-tool-index.json. Он записывает все 141 инструментов времени выполнения, доступ через API-ключ или только OAuth, семейство прав, имена входных данных, режим выходной схемы и явно объявленные аннотации MCP. Аннотация null означает, что она не объявлена в месте вызова; используйте ответ tools/list подключенного сервера для эффективных аннотаций после применения значений по умолчанию.
!
Инструменты только для OAuth: управление учетной записью, API-ключами и командой, управление подключениями Jira, другие интеграции, премиальные элементы управления тестированием, заметки, учет времени и другие интерактивные операции не разблокируются добавлением областей API-ключей. Проверка отчетов Jira, синхронизация и объединение — узкое исключение через jira:read и jira:write.
Попробуйте — подсказки на простом английском
После подключения вам не нужно знать названия инструментов или параметры. Опишите, что вы хотите, на простом английском, и ваш ИИ-ассистент автоматически вызовет правильный инструмент bug Agent.
Подсказки для отчетов об ошибках, управления тестами с ограниченной областью, автоматизации Playwright, мобильной автоматизации и использования доступны для API-ключей с соответствующими областями. Безопасность, производительность, исследовательские, учетные записи, команды, заметки, учет времени и другие записи без указанной области API-ключа требуют делегированного OAuth и любых применимых прав плана.
Отчеты об ошибках
List my 5 most recent bug reports
Show all open critical bugs in the Auth project
Create a bug titled "Login broken on Safari" with severity s2
Update TEST-451 status to in-progress and assign it to me
Add a comment to TEST-451: "root cause confirmed — null check missing in auth middleware"
Show me everything filed this week, grouped by severity
Управление тестами
Create a test suite called "Smoke Tests" with cases for login, checkout, and account settings
Run the Regression suite and list all failures
Use Hermes to execute the curated "Checkout smoke" suite and report every result to bugAgent
Show failing test cases from the last 7 days
Which test cases have never been run in the past 90 days?
Get a pass-rate trend for this month vs last month
Безопасность и производительность
Run a security scan on https://app.example.com
Get this month's security scan results — show only high and critical findings
Create a performance test for the landing page and check Lighthouse scores
What are the Core Web Vitals for our checkout flow?
Автоматизация Playwright
Create a Playwright script that logs in and verifies the dashboard loads
Run the checkout automation on iPhone 15 Pro on a real device
Optimize the login automation script
Show runs for the checkout automation — any failures?
Schedule the smoke test suite to run every weekday at 6 AM UTC
Исследовательский ИИ
Run an exploratory AI session on https://app.example.com with 5 parallel agents
Get the latest exploration run results — list any bugs that were filed
What testing strategies did the agents use and which found the most issues?
Использование и статистика
Check my plan usage for this month
Show team bug stats for this week broken down by severity and type
List all team members and their roles
How many security scans do I have left this month?
Краткий справочник
Справочники по настройке для всех восьми вариантов подключения. Клиенты с API-ключами подключаются к https://mcp.bugagent.com/mcp с заголовком Authorization: Bearer ba_live_YOUR_KEY_HERE через Streamable HTTP; хосты с поддержкой OAuth используют учетные данные коннектора, сгенерированные в панели управления.
Claude Desktop — macOS ~/Library/Application Support/Claude/claude_desktop_config.json
Claude Desktop — Windows %APPDATA%\Claude\claude_desktop_config.json
Claude Code (CLI) claude mcp add --transport http bugagent https://mcp.bugagent.com/mcp --header "Authorization: Bearer ba_live_..."
Codex CLI ~/.codex/config.toml
Cursor — macOS Settings → MCP UI или ~/.cursor/mcp.json
Cursor — Windows %USERPROFILE%\.cursor\mcp.json
VS Code + Continue ~/.continue/config.json (macOS) / %USERPROFILE%\.continue\config.json (Windows)
Хост с поддержкой OAuth Settings → Developers → MCP Connectors — сгенерируйте client_id и client_secret хоста
Прямой HTTP (curl) curl / Invoke-RestMethod — включите Accept: application/json, text/event-stream
Устранение неполадок
401 Unauthorized Ключ неверный, истек или отозван. Проверьте Settings → Developers — ключи начинаются с ba_live_. При необходимости сгенерируйте заново.
Инструменты не отображаются в клиенте Клиенты с API-ключами перечисляют только инструменты, разрешенные выбранными областями ключа. Проверьте ключ в Settings → Developers, затем полностью закройте и перезапустите клиент после изменения его конфигурации. В Claude Desktop — Cmd+Q (не просто закрытие окна). В Cursor проверьте Settings → MCP на наличие зеленой точки.
Поле отсутствует в клиенте Сравните схему клиента с необработанным tools/list того же эндпоинта. Если они различаются, обновите или переподключите каталог инструментов и начните новый чат. Если проблема сохраняется, соберите эндпоинт, версию клиента и необработанный ответ tools/list; устаревший кэш — лишь одна из возможных причин.
Accept header required Отправьте Accept: application/json, text/event-stream для соответствующего стандартам Streamable HTTP. bug Agent в настоящее время нормализует отсутствующие или неполные значения, но интеграции не должны полагаться на такое поведение совместимости.
Данные не той рабочей области Каждый API-ключ ограничен одной рабочей областью. Сгенерируйте новый ключ из рабочей области, которую вы хотите запрашивать, в Settings → Developers.
Инструменты отображаются, но вызовы молча завершаются с ошибкой Проверьте ответ на наличие isError: true и возвращенного содержимого. Видимый инструмент все равно может быть отклонен из-за плана, роли, прав функции, членства в проекте, владения или неверных входных данных. Проверяйте работоспособность сервера только после чтения ошибки инструмента.
Ошибка CORS в MCP Inspector Выберите Proxy (не Direct) для Connection Type в интерфейсе Inspector. Inspector проксирует через локальный процесс Node, чтобы обойти ограничения CORS браузера.
MCP Inspector v2 завершается с кодом 5 Inspector v2 возвращает ненулевой код выхода, когда ответ инструмента содержит isError: true. Прочитайте сообщение ответа для ошибки плана, разрешения, входных данных или времени выполнения; Inspector v1 мог возвращать код выхода 0 для того же неудачного ответа инструмента.
Codex CLI — инструменты не распознаются Убедитесь, что ~/.codex/config.toml использует [mcp_servers.bugagent], установите bearer_token_env_var = "BUGAGENT_API_KEY" и экспортируйте эту переменную перед запуском Codex. Проверьте codex --version, если инструменты все еще не отображаются.
Возможности MCP
Разговорные сеансы остаются пилотной функцией, ограниченной рабочей областью. Сохранение скрипта, сгенерированного сеансом, требует явного одобрения Workbench его владельца через эндпоинт сохранения скрипта только для сеанса. Нет инструмента одобрения MCP: запрос агенту на создание черновика скрипта не создает и не планирует автоматизацию.
Полный интерактивный/OAuth каталог содержит 141 инструмент. API-ключи рабочей области обнаруживают только подмножество с минимальными привилегиями, разрешенное их выбранными областями; инструменты управления учетной записью, API-ключами, командой, премиального тестирования, заметок и учета времени доступны только в интерактивном сеансе, если запись явно не называет область API-ключа.
🐛
Управление отчетами об ошибках
Возобновляемые импорты скриншотов Google Sheets используют отдельный REST POST /api/reports/import-attachment эндпоинт с reports:write и GET статус с reports:read. Инструмент MCP для импорта скриншотов не добавлен. Этот API только для JPEG/PNG проверяет приватное хранилище и точную сопоставленную проблему Jira перед сообщением о завершении; загрузка устаревших отчетов остается только для сеанса.
create_bug_report— Создание нового отчёта с автоматической классификацией по 19 типам — ошибки, запросы функций, улучшения, технический долг и другое (заголовок: 3–500 символов). Необязательный массивattachmentsпринимает файлы в base64-кодировке размером до 400 МБ каждый: любые изображения, видео, аудио, PDF или текст/JSON. Установитеformat_description: true, чтобы автоматически переформатировать описание в структурированный шаблон с помощью ИИ. Передайтеtime_spent_secondsдля отслеживания усилий по обеспечению качества. Передайтеpriority(urgent/high/normal/low), чтобы задать срочность исправления независимо от серьёзности. Передайтеis_epic: trueдля создания Epic илиparent_epic_id(UUID/короткий ID) для создания дочернего элемента в том же авторизованном проекте. Ответ включает поля иерархии, а такжеproject_id,project,short_id,legacy_short_idиproject_short_id.list_bug_reports— Список и фильтрация отчётов (максимум 100 на страницу). Фильтры проектов применяются на стороне сервера до пагинации. Фильтрация поproject(UUID, slug, точное имя или префикс тикета),project_id,project_slug,project_prefix,workspace(UUID, точное имя или префикс тикета рабочего пространства),workspace_id/team_id,is_epic,type,severity,status,resolution,root_causeилиreporter_user_id. Фильтрsearchищет по тексту отчёта; ввод, содержащий только цифры, например366, является точным поиском как по устаревшим, так и по проектным номерам тикетов, поэтому несвязанный текст, содержащий эти цифры, исключается. Каждый результат включает идентификаторы людей/проектов в рамках тенанта, а такжеis_epic,parent_epic_id,parent_epicи ограниченныйepic_progress. Инструменты чтения отчётов не раскрывают адреса электронной почты участников.pick_next_bug— Возвращает следующую(ие) ошибку(и), над которой(ыми) должен работать цикл агента, в порядке приоритета (S1 → S2 → S3, сначала самые старые в каждой группе). Автоматически ограничено вашим рабочим пространством — возвращает тикеты во всех проектах вашей команды сstatusnew,awaiting-triageилиconfirmedи серьёзностью S1–S3. Только чтение — не выполняет атомарное закрепление тикетов. Необязательныйseverity(один уровень),limit(1–50, по умолчанию 1). Возвращает объект сcountиbugs; каждая ошибка представляет собой сокращённую строку очереди, а не полную формуlist_bug_reports. Используйте вместе сclaim_bugдля шаблона «чтение-затем-закрепление».claim_bug— Атомарный переход ошибки изstatusnew,awaiting-triageилиconfirmedвstatus='in-progress', установкаassigned_toна вызывающего пользователя и отметкаclaimed_at=NOW(). Без гонок между параллельными вызовами благодаря паттерну UPDATE-WHERE-RETURNING в Postgres — если два агента вызываютclaim_bugдля одного и того же id почти одновременно, ровно один получаетclaimed:trueс телом ошибки, а другой получаетclaimed:falseсо строкой причины. Успешные ответы включаютreporter_user_id,reporter_name,assigned_toиassignee_name. Демон pg_cron автоматически освобождает устаревшие закрепления (статус =in-progress+claimed_atстарше 30 минут) обратно вnew, поэтому тикеты упавшего агента снова попадают в очередь без ручного вмешательства. Входные данные:id(UUID или короткий ID).get_bug_report— Получение полных сведений об отчёте по UUID или короткому ID рабочего пространства/проекта. Возвращает стандартные поля людей/проекта/качества, а такжеis_epic, идентичность родителя, агрегированный прогресс и ограниченную первую страницу дочерних элементов для Epic.- Встроенные теги отчётов:
create_bug_reportиupdate_bug_reportпринимаютtagsкак массив строк, например{"tags":["login","regression"]}. До 20 необработанных элементов принимается до дедупликации. Строки обрезаются, должны быть непустыми и не длиннее 50 кодовых точек Unicode, и не могут содержать управляющие символы ASCII (U+0000–U+001F или U+007F). Точные дубликаты удаляются после обрезки; регистр сохраняется, иLoginотличается отlogin. При обновлении массив заменяет все теги,[]очищает их, а пропуск сохраняет их. При создании пропуск означает отсутствие тегов.nullи недопустимые элементы отклоняются. Результаты создания, получения, списка и обновления раскрывают встроенныеtags. - Фильтрация по тегам: вызов
list_bug_reportsс{"project":"bugagent","tags":["login","regression"]}для сопоставления ВСЕХ запрошенных тегов с учётом регистра до пагинации. Применяются те же ограничения на теги; пропуск или[]не применяет фильтр по тегам. Существующие областиreports:read/reports:writeи авторизация рабочего пространства/проекта не изменяются. Это не добавляет визуального интерфейса тегов или автоматического импорта, синхронизации или обратного заполнения меток Jira. get_epic— Чтение одного Epic напрямую с обязательнымid(UUID или короткий ID рабочего пространства/проекта). Возвращает только запись Epic без неявной загрузки дочерних отчётов. Требуется доступ к его рабочему пространству и проекту; вызывающим с API-ключом требуетсяreports:read. Используйтеlist_epic_childrenотдельно для чтения дочерних элементов.list_epic_children— Постраничный просмотр дочерних отчётов Epic с помощьюid,limit(1–100) иoffset. Возвращаетchildren,total,has_moreи агрегированный SQLepic_progressбез загрузки каждого дочернего отчёта.update_bug_report— Обновление стандартных полей отчёта, а такжеis_epicиparent_epic_id. Передайтеparent_epic_id: nullдля отсоединения; повторное родительство/отсоединение атомарно и требует авторизации в том же рабочем пространстве и проекте. Повышение до Epic отсоединяет существующего родителя, а Epic с дочерними элементами не может быть понижен. Существующие правила уведомлений о статусе/резолюции/корневой причине и назначении по-прежнему применяются. Изменениеstatusв отчёте, связанном с Jira, зеркалируется в задачу Jira через её переходы рабочего процесса, когда ровно один допустимый переход соответствует сопоставленному статусу; в противном случае задача остаётся нетронутой.add_comment— Добавление комментария к отчёту об ошибке (UUID или короткий ID, тело 1–10000 символов). Если отчёт синхронизирован с Jira, комментарий автоматически отправляется в связанную задачу Jira. Приватная разметка вложений, такая как, становится абсолютной аутентифицированной умной ссылкой bugAgent в Jira. Зрители должны войти в bugAgent с доступом к рабочему пространству и проекту отчёта; встроенные предпросмотры Jira не гарантируются.list_comments— Список сохранённой ветки комментариев отчёта, сначала самые старые — каждый комментарий с именем автора,parentId(вложенные ответы),createdAtиupdatedAt. Комментарии не являются частьюget_bug_report, поэтому это способ прочитать обсуждение тикета. Принимает UUID или короткий ID. Это чтение не обновляет Jira. Планируемые интеграции, которым нужны свежие комментарии Jira, могут сначала вызвать POST /api/jira/comments-refresh с авторизованным API-ключом менеджера. Используйте ID комментариев и ревизии содержимого, чтобы отличать новые комментарии от правок, и не заявляйте о полном отчёте активности, если обновление не удалось.link_bug_reports— Создание направленной семантической ссылки между двумя отчётами в одном авторизованном проекте. Дляparent-ofотчёт-источник должен быть Epic, а отчёт-назначение — стандартным дочерним элементом. Предпочитайтеparent_epic_idпри создании/обновлении для назначения Epic.unlink_bug_reports— Удаление ранее созданной ссылки отчёта об ошибке по её UUID (link_id, возвращаетсяlink_bug_reportsилиlist_bug_report_links).list_bug_report_links— Список всех пользовательских ссылок, касающихся отчёта об ошибке. Возвращает каждую ссылку так, как она читается с точки зрения предоставленного отчёта — например, сохранённая строкаduplicate-of, где этот отчёт является целью, отображается какduplicated-by;parent-of, где этот отчёт является целью, отображается какsubtask-of;depends-on, где этот отчёт является целью, отображается какblocks;testing-blocked-by, где этот отчёт является целью, отображается какblocks-testing.related-toсимметричен. Дополняет автоматически обнаруженное полеsimilar_reports, возвращаемоеget_bug_report.classify_bug— Классификация описания в один из 19 типов отчётов (ошибки, запросы функций, улучшения и т. д.) с оценкой уверенностиflush_reports— Массовое удаление старых отчётов (только для администраторов)
📊
Использование и аналитика
get_usage— Проверка использования относительно лимитов плана. Вызывающим с API-ключом требуетсяusage:read.get_stats— Ежедневные подсчёты, разбивки по типу/серьёзности/статусу
📁
Управление проектами
list_projects— Список доступных проектов сid,name,slug,ticket_prefix, описанием и статусом по умолчанию. Используйте эти значения с инструментами отчётов об ошибках и каталога тестов для нацеливания на правильный проект.create_project— Создание нового проекта (автоматически становится проектом по умолчанию, если он первый)delete_project— Полное удаление проекта и всех связанных данных (отчёты об ошибках, автоматизации, тестовые случаи, мобильные приложения, расписания, гео-снимки, заметки, записи времени). Только владелец/менеджер. Нельзя удалить последний проект. Хранилище освобождается автоматическиexport_okf_bundle— Экспорт знаний по обеспечению качества проекта — отчёты об ошибках, тестовые случаи, автоматизации, а также тесты производительности, безопасности и исследовательские тесты — как пакет разметки OKF/OQA (формат Open Query Agent, используемый oqa.ai). По умолчанию используется активный проект; передайте необязательныйproject(slug или имя), чтобы экспортировать другой. Возвращает список файлов в пакете, а также сам пакет как zip-архив в base64-кодировке
🔐
Аутентификация и учётная запись
register_account— Создание новой учётной записи (пароль: 8–128 символов, ограничение скорости: 5/15 мин)login— Вход и получение токенов доступа (ограничение скорости: 5/15 мин)update_profile— Обновление отображаемого имениchange_password— Смена пароля учётной записиget_settings— Чтение профиля и предпочтений уведомлений.update_settings— Обновление поддерживаемых профилей и предпочтений уведомлений. Изменение только через OAuth.
🔑
Управление API-ключами
generate_api_key— Создание именованного API-ключаlist_api_keys— Список активных ключей (только префикс)regenerate_api_key— Отзыв и замена ключаdelete_api_key— Полный отзыв ключа
👥
Управление командой
list_workspaces— Список рабочих пространств, к которым вы принадлежите, вашу роль в каждом и то, какое из них сессия использует по умолчанию. Хосты с несколькими рабочими пространствами могут закрепить запрос с заголовкомX-BugAgent-Workspace(только активные участники)list_team_members— Список всех участников вашего рабочего пространства с ролями, статусом и флагами бустераinvite_team_member— Приглашение пользователя по электронной почте (менеджеры могут приглашать участников и менеджеров; только владельцы могут приглашать администраторов). Ссылка со сроком действия 5 дней
🎯
Интеграции
Синхронизация отчётов Jira Cloud включена в Free и Enterprise. Менеджер рабочего пространства должен сначала подключить Jira в панели управления. Затем API-ключи рабочего пространства могут использовать jira:read для сравнения и jira:write для синхронизации/слияния; ограничения плана Atlassian и API по-прежнему применяются.
sync_to_jira— Отправить отчёт в Jira, используя общее подключение команды. Направляет в проект Jira, сопоставленный с проектом bugAgent отчёта (по умолчанию используется рабочее пространство), используя его карту полей: v2 разделяет приоритет и пользовательскую серьёзность, в то время как несвязанные карты сохраняют устаревшее преобразование серьёзности в приоритет. НеобязательныйprojectKeyможет выбрать только это настроенное сопоставление или рабочее пространство по умолчанию; произвольные проекты Jira отклоняются. Обычно вам это не нужно: когда режим синхронизации проекта —auto_newилиauto_all, созданные вами отчёты отправляются автоматически — вызывайте это для ручной отправки в режимеmanual.check_jira_sync— Сравнение только для чтения заголовка и сопоставленных статуса, приоритета и серьёзности для авторизованного связанного отчёта. Использует сохранённый проект отчёта и подключение к Jira. Версия 2 сопоставляет приоритет Jira отдельно от поддерживаемого пользовательского поля серьёзности; несвязанные сопоставления сохраняют устаревшее поведение приоритета к серьёзности. Этот инструмент не сравнивает комментарии, вложения, тип или каждое поле Jira.merge_jira_sync— Объединить эти сопоставленные поля, используяprefer: jiraдля получения значений Jira илиprefer: bugagentдля отправки локальных значений. Отправка статуса использует допустимые переходы рабочих процессов Jira. Несопоставленные исходящие конфликты, неудачные удалённые записи и одновременные локальные изменения возвращают ошибки, а не утверждают, что всё синхронизировано. Комментарии и вложения остаются отдельными рабочими процессами синхронизации на панели управления. Межсистемные записи не являются атомарными.push_to_claude— Сгенерировать (или перегенерировать) Developer Notes для отчёта об ошибке — корневая причина, предлагаемое исправление, шаги проверки и оценка риска. Принимает UUID или короткий ID (WRKID-545). Использует ключи платформы — не требуется подключение Claude для каждой команды. Запускает адаптивную цепочку: три шага для ошибокs3/mediumилиs4/low(черновик Sonnet → критика OpenAIgpt-5→ синтез Sonnet), пять шагов для двух верхних уровней серьёзности —s1/criticalилиs2/high— (черновик → критика → опровержение Sonnet → арбитр Claude Opus, который читает полную стенограмму и пишет финальные заметки с независимым суждением). Ответ раскрывает каждый раунд:analysis,draft,critique,rebuttal,challenger_model,adjudicator_modelи флагdebated. Любой сбойный шаг переходит к следующему лучшему ответу. Автоматически запускается при создании ошибки; обычно вызывается только для ручной перегенерации.analyze_fix_area— Сгенерировать (или перегенерировать) подблок "Likely Fix Area" в Developer Notes — узкий вывод Sonnet, который указывает, где в кодовой базе, скорее всего, находится исправление. Принимает UUID или короткий ID. Использует ключ Anthropic платформы. Когда у команды есть строкаgithub_connectionsи у проекта сопоставленgithub_repo, вывод основан на реальных фрагментах файлов из подключённого репозитория; в противном случае возвращается к общим рекомендациям с подсказкой подключить репозиторий. Возвращает текстlikely_fix_area,generated_at,repo_usedи флагgrounded. Автоматически запускается при создании ошибки — агентам обычно нужно вызывать это только для ручной перегенерации.upgrade_plan— Получить ссылку на корпоративное включение с помощью продаж
⚡
Тестирование производительности
create_performance_test— Создать конфигурацию теста производительности с URL, устройством, виртуальными пользователями, продолжительностью, порогом оценки и переключателем автоматического создания ошибок. Только для Enterpriserun_performance_test— Запустить аудит страницы и нагрузочный тест для веб-теста производительности. Возвращает ID запуска для опроса результатов. Запуски профилирования мобильных приложений запускаются с панели управленияget_performance_results— Получить полные результаты, включая оценки Lighthouse (Performance, Accessibility, Best Practices, SEO), Core Web Vitals (LCP, FID, CLS, FCP, TTFB, INP, TBT, SI) и метрики нагрузочного теста (VU, запросы, RPS, задержки p50/p90/p95/p99)list_performance_tests— Список всех конфигураций тестов производительности для текущей командыget_performance_usage— Проверить ежемесячное использование тестов производительности. Тестирование производительности доступно только в Enterprise. Free=0, Enterprise=безлимитно
Пример рабочего процесса
get_performance_usage→ проверить оставшуюся квотуcreate_performance_test→ настроить тест для вашего URLrun_performance_test→ запустить аудит + нагрузочный тестget_performance_results→ просмотреть оценки и показатели
🛡
Сканирование безопасности
create_security_scan— Создать конфигурацию сканирования безопасности. Веб-сканирования используют Quick Scanner + Nuclei (4,000+ шаблонов) с тремя уровнями глубины и необязательным аутентифицированным сканированием. Мобильные сканирования используют MobSF для анализа бинарных файлов APK/IPA. Настраиваемое автоматическое создание ошибок с порогами серьёзности. Только для Enterpriserun_security_scan— Запустить сканирование уязвимостей. Веб-сканирования требуют проверки домена DNS. Мобильные сканирования требуют загруженного приложения. Возвращает ID запуска для опроса результатовget_security_results— Получить полные результаты, включая оценку безопасности (0-100), находки, классифицированные по серьёзности (Critical, High, Medium, Low, Info) со ссылками CWE, сопоставлениями OWASP, доказательствами и рекомендациями по исправлениюlist_security_scans— Список всех конфигураций сканирования безопасности для текущей команды с последней оценкой и значками auth/depthget_security_usage— Проверить ежемесячное использование сканирования безопасности. Сканирование безопасности доступно только в Enterprise. Enterprise=безлимитноlist_security_schedules— Список всех запланированных сканирований безопасности для команды с cron, часовым поясом, состоянием включения, следующим запуском и настройками уведомлений. Объединяется с родительской конфигурацией сканирования (name, scan_type, target_url)create_security_schedule— Создать повторяющееся расписание для сканирования безопасности. Требуетscan_idиcron_expression. Одно расписание на конфигурацию сканирования. Необязательныеtimezone,notify_on_fail(none/email/slack/both),notify_email,slack_channel_id. Каждый запуск учитывается в вашем ежемесячном лимите; пользователи с правами администратора обходят лимит. Глубина сканирования всегда считывается из конфигурации сканирования во время запускаdelete_security_schedule— Удалить запланированное сканирование безопасности. Не влияет на родительскую конфигурацию сканирования или завершённые запуски
Пример рабочего процесса
get_security_usage→ проверить оставшуюся квотуcreate_security_scan→ настроить сканирование для вашего URL или репозиторияrun_security_scan→ запустить разовое сканирование уязвимостейcreate_security_schedule→ автоматизировать повторяющиеся запуски (например, еженедельный SAST на основной ветке)get_security_results→ просмотреть находки и исправления
📖
Проверка кода
list_code_reviews— Список последних AI-проверок кода для команды. Возвращает оценки качества, количество по серьёзности, информацию о PR и временные метки. Только для Enterpriseget_code_review— Получить проверку кода со всеми находками. Каждая находка включает серьёзность, категорию (bug/security/performance/style/logic/maintainability), заголовок, описание, предложение по коду, путь к файлу и номера строкget_code_review_usage— Проверить использование проверки кода. AI-проверка кода доступна только в Enterprise; безлимитно на Enterpriseget_code_review_analytics— Получить аналитику проверок: тенденции, категории/источники находок, разбивку по серьёзности, метрики скорости, лучшие репозитории/авторы. Поддерживает период 7/30/90 дней
Пример рабочего процесса
get_code_review_usage→ проверить оставшиеся проверки- Проверить PR на панели управления по адресу
/dashboard/code-review list_code_reviews→ посмотреть недавние проверкиget_code_review→ получить находки и предложения
🔍
Исследовательский AI
Многоагентный автономный поиск ошибок на сайте с до 10 параллельными агентами, каждый из которых использует свою стратегию тестирования.
list_explorations— Список конфигураций Exploratory AI для командыcreate_exploration— Создать новое исследование. Принимаетagent_count(1–10, максимум 10) для запуска нескольких параллельных агентов с уникальными стратегиями: happy_path, edge_case, security, accessibility, error_path, performance, mobile, data_integrity, navigation, custom. Этот инструмент не может настраивать учётные данные или режим аутентификации. Настройте и запустите Test login flow only явно через панель управления или REST, затем используйтеget_explorationиget_exploration_runдля проверки конфигурации и результатов. Никогда не выводите режим из инструкций и не помещайте учётные данные в аргументы MCP. Исследование по умолчанию на основе учётных данных по-прежнему требует повторно используемую сессию.get_exploration— Получить конфигурацию исследования с настройками агентов, безопасными метаданными аутентификации и недавними запусками. Пароли и шифротекст никогда не возвращаются.get_exploration_run— Получить результаты запуска с прогрессом по каждому агенту, данными фаз, находками с атрибуцией агента (agent_index,agent_strategy) и связанными ошибкамиget_exploration_usage— Проверить ежемесячное использование. Exploratory AI доступен только в Enterprise; Enterprise: безлимитно (10 агентов)
Пример рабочего процесса
create_explorationсagent_count: 5→ настроить 5 параллельных агентов- Запустить выполнение с панели управления или через
POST /api/explorations/run get_exploration_run→ опрашивать прогресс и находки по каждому агенту- Просмотреть дедуплицированные находки с атрибуцией агента на панели управления
📝
Заметки
list_notes— Список заметок с необязательными фильтрами по ключевому слову, проекту, видимости, папке, тегу, архиву, вики, диапазону дат и сортировке. Возвращает заметки, которыми владеет пользователь или которые доступны ему.create_note— Создать заметку в одном из 5 форматов:markdown,plain,bugtemplate,checklist,outline. Установитеvisibilityнаprivateилиshared. Автоматический заголовок из первых 30 символов, если заголовок не указан. Необязательный массивattachmentsпринимает файлы в base64 до 400 МБ каждый: любое изображение, видео, аудио, PDF или текст/JSON. Передайтеtime_spent_secondsдля отслеживания усилий QA.get_note— Получить полные детали заметки, включая содержимое и вложения. Требуетid.update_note— Обновить заголовок, содержимое, формат, видимость, проект илиtime_spent_seconds. Передайте массивattachments, чтобы добавить новые файлы (максимум 400 МБ каждый) к существующим вложениям заметки без их замены. Только автор может обновлять. Требуетid.delete_note— Навсегда удалить заметку и её вложения. Только автор может удалять. Требуетid.list_note_folders— Список папок заметок/вики, опционально ограниченных проектом.create_note_folder— Создать папку заметок/вики в рамках проекта с необязательными настройками родителя, видимости, избранного и доступа для коллег.
Пример рабочего процесса
create_note→ начать заметку о сессии тестированияupdate_note→ добавлять наблюдения по мере тестированияlist_notes→ искать прошлые заметки по ключевому слову или проектуget_note→ получить полную заметку с вложениями
🤖
Автоматизация
create_automation— Создание новой автоматизации с пользовательским Playwright-скриптом (запись FAB не требуется). Требуетсяname. Необязательно:target_url(автоматически определяется из первого URLpage.goto(...)в скрипте, если опущено),script(Node.js/JavaScript/TypeScript или Python — язык определяется автоматически; по умолчанию используется заполнитель),status(draftилиactive, по умолчанию:draft),project_id. Возвращаетidавтоматизации. Совет — Дублирование автоматизации: используйтеget_automationдля получения исходного скрипта, затем вызовитеcreate_automationсname, установленным в"[Copy] Original Name", и передайте исходныеscript,target_urlиproject_id. Дубликат запускается со статусомdraftбез истории версий.list_automations— Список Playwright-скриптов автоматизации. Фильтрация поproject_idилиstatus(draft,active,paused). Возвращает массив автоматизаций с именем, target_url, last_run_status и run_count.get_automation— Получение полных деталей автоматизации, включая Playwright-скрипт и недавние запуски. Требуетсяid. Возвращает автоматизацию с актуальнымscript, стекомscript_versions(от старых к новым, до 100 предыдущих записей, каждая{ script, source, timestamp }) и массивомrecent_runs, где каждый запуск содержитscript_version_label/script_version_source, которые выполнялись. Вызовите это передrun_automation, если нужно выбрать конкретную историческую версию.run_automation— Запуск немедленного выполнения Playwright-теста. Требуетсяautomation_id. Самовосстанавливающиеся локаторы (автоматически): когда действие локатора истекает по таймауту, исполнитель запрашивает у Claude рабочий селектор и повторяет шаг один раз — утверждения никогда не восстанавливаются, поэтому реальные регрессии по-прежнему приводят к сбоям — и каждое восстановление регистрируется в stdout запуска. Режим эмуляции (по умолчанию): необязательныйdeviceдля профиля эмулируемого устройства (например,desktop,iphone-15). Реальный режим: установитеbrowserstack: trueсbs_browser(chrome,firefox,safari,edge),bs_os(Windows,OS X) иbs_os_versionдля запуска в реальном настольном браузере. Реальный мобильный: установитеbs_os: "android"(устройства:"Samsung Galaxy S25 Ultra","Google Pixel 10","OnePlus 13R") илиbs_os: "ios"(устройства:"iPhone 17 Pro Max","iPhone 16 Pro Max","iPhone 15 Pro Max") и передайте имя устройства вbs_os_version. Оба режима работают в фоновом режиме; «Реальный» описывает среду выполнения, а не видимую интерактивную сессию. Скрипты Node.js маршрутизируются черезbrowserstack-node-sdk(покрывает desktop + Android + iPhone). Скрипты Python маршрутизируются черезbrowserstack-sdk(pytest-playwright) и покрывают только desktop — реальный мобильный через Python не поддерживается, потому чтоbrowser_type.connect()от pytest-playwright не может управлять реальными мобильными конечными точками BrowserStack. Видео и сетевые журналы захватываются автоматически; консольные журналы только для desktop. Воспроизведение версий: проверьтеscript_versionsс помощьюget_automation, затем передайте предпочтительный устойчивыйversion_label(например,"v103"). Устаревшийversion_indexпо-прежнему поддерживается, но не должен комбинироваться сversion_label. По умолчанию: когда оба селектора опущены, выполняется текущий сохраненный скрипт. Удаленные метки и недопустимые индексы отклоняются вместо молчаливого выполнения текущего. Запись запуска хранит точный снимок, который выполнялся, и любой отчет об ошибке, автоматически созданный из неудачного запуска, содержит глубокую ссылку на эту версию в редакторе.list_automation_runs— Список недавних запусков для автоматизации. Требуетсяautomation_id. Возвращает запуски со статусом, duration_ms и error_message.list_schedules— Список всех запланированных запусков веб-автоматизации с nullablecron_expression, nullablerun_at,once_status, часовым поясом, устройством и настройками уведомлений. Повторяющиеся строки сохраняют nullrun_atиonce_status; одноразовые строки имеют null cron. Одноразовые состояния:pending,claimed,missed,dispatched,failed,uncertain. Это состояния диспетчеризации, а не результаты тестов; проверьтеlist_automation_runsдля результатов.- Повторяющиеся веб-расписания:
create_scheduleпроверяет пять числовых полей cron и часовой пояс и возвращает будущую UTCnext_run_at. Поддерживаются ежемесячные и ежегодные повторения. Например,30 12 23 9 *вAmerica/Torontoозначает 23 сентября в 12:30 каждый год, а не одноразовый запуск. Недопустимое или невозможное время отклоняется до создания. Когда ограничены и день месяца, и день недели, оба должны совпадать. Несуществующее время перехода на летнее время пропускается; повторяющееся настенное время может встречаться дважды. Диспетчеризация происходит при следующем опросе планировщика, не обязательно в точную минуту. Существующее повторяющееся поведение не изменяется. - Одноразовые веб-расписания: вызовите
create_scheduleс{ "automation_id": "AUTOMATION_UUID", "run_at": "2030-12-15T09:30:00-05:00", "timezone": "America/Toronto" }, выбрав будущую дату и опустивcron_expression. Укажите ровно одно поле времени.run_atтребует будущую временную метку ISO 8601 с указанием смещения (явное смещение илиZ); часовой пояс IANA предназначен для отображения. Включенное ожидающее расписание выполняется при первом опросе cron после наступления срока; более чем на один час позже помечается какmissed. Оно атомарно захватывается и отключается перед диспетчеризацией и не может быть повторно включено после использования. Окончательные сбои диспетчеризации — этоfailed; неоднозначная диспетчеризация — этоuncertainи никогда не повторяется автоматически. Проверьте запуски перед планированием новой попытки.dispatchedне означает завершено или пройдено. Создание доступно только через API/MCP, а не через новый режим создания в панели управления. - Часовые пояса веб-расписаний — это идентификаторы IANA, такие как
America/Argentina/Buenos_Aires. Селектор в панели управления включает все поддерживаемые сервером регионы и города и по умолчанию использует часовой пояс вашего профиля; часовой пояс MCP по умолчанию остаетсяUTC. create_schedule— Создание запланированного запуска веб-автоматизации. Требуетсяautomation_idи ровно одно изcron_expressionилиrun_at. Поддерживаются необязательные настройки устройства, часового пояса, уведомлений о сбоях, электронной почты и Slack-канала. Сначала подключите Slack через панель управления и выберите канал, в котором состоит бот; установки вебхука недостаточно. См. Настройка Slack и обнаружение каналов.- Одноразовое развертывание и восстановление: примените миграцию базы данных
374_one_time_web_schedules.sqlперед развертыванием соответствующего кода API/MCP и планировщика.claimedможет сохраняться после сбоя воркера: проверьте историю запусков перед созданием замены для захваченной или неоднозначной диспетчеризации. Временная метка более чем на один час позже никогда не выполняется автоматически. - Черновики веб-автоматизаций: активируйте автоматизацию перед созданием расписания, повторным включением расписания или изменением его cron-выражения или часового пояса.
create_scheduleпроверяет доступ к рабочему пространству и проекту перед отклонением статуса «Черновик». Существующие расписания пропускают циклы, пока автоматизация находится в статусе «Черновик»; пауза, удаление, закрепление и изменения только уведомлений остаются доступными. Нет веб-инструмента MCPupdate_schedule; используйте панель управления для этих обновлений. delete_schedule— Удаление запланированного запуска веб-автоматизацииlist_mobile_schedules— Список всех запланированных запусков мобильной автоматизации с устройствами, cron, часовым поясом и уведомлениямиcreate_mobile_schedule— Создание запланированного запуска мобильной автоматизации на реальных устройствах. Требуетсяautomation_idиcron_expression;devicesнеобязателен.delete_mobile_schedule— Удаление запланированного запуска мобильной автоматизацииoptimize_automation_script— Отправка Playwright-скрипта в Sonnet 4 для оптимизации с помощью ИИ. Применяется контрольный список из 12 пунктов, который исправляет селекторы, стратегии ожидания, утверждения, обработку ошибок, паттерны аутентификации, мобильную совместимость и строгий режим. Требуетсяautomation_id. Текущая версия скрипта сохраняется перед оптимизацией. Возвращает оптимизированный скрипт и сводку изменений.undo_automation_script— Откат скрипта автоматизации к предыдущей версии. Сохраняется до 100 предыдущих версий. Требуетсяautomation_id. Возвращает восстановленный скрипт и количество оставшихся версий.
Пример рабочего процесса
create_automation→ создание теста с пользовательским скриптомlist_automations→ просмотр доступных тестовget_automation→ проверка Playwright-скриптаrun_automation→ запуск тестаlist_automation_runs→ проверка результатов и длительности
⏱️
Учет времени
list_time_entries— Список записей времени для команды. Фильтрация поperiod(today,week,month,all),project_id,categoryиsort(newest,oldest,most_time,least_time). Только для тарифа Enterprise.create_time_entry— Запись времени, затраченного на задачи контроля качества. Требуетсяdescription,categoryиduration_minutes. Необязательно можно установитьproject_idиentry_date(по умолчанию — сегодня). Только для тарифа Enterprise.update_time_entry— Обновление существующей записи времени. Требуетсяid. Можно обновитьdescription,category,duration_minutes,project_idилиentry_date. Только для тарифа Enterprise.delete_time_entry— Окончательное удаление записи времени. Требуетсяid. Только для тарифа Enterprise.
Пример рабочего процесса
create_time_entry→ запись 45 минут регрессионного тестированияlist_time_entries→ просмотр записей времени за эту неделюupdate_time_entry→ корректировка длительности или категорииdelete_time_entry→ удаление неверной записи
☑️
Тестовые случаи
Управление тестами с иерархическими папками, вложенными наборами (до 3 уровней глубины с автоматическим разворачиванием поднаборов при запусках), перетаскиванием для изменения порядка и вкладкой аналитики «Отчеты» с трендами KPI, анализом сбоев, состоянием наборов, покрытием и производительностью тестировщиков. Все инструменты обращаются к Supabase напрямую — без HTTP-передачи, та же задержка, что и в панели управления.
Бесплатные ограничения: 10 сохраненных тестовых случаев, 1 набор, 3 папки, 128 КБ структурированного содержимого на случай, 2 активных ключа API рабочего пространства и 10 всего тестовых запусков за календарный месяц UTC. До 3 из этих запусков могут использовать Hermes или другого внешнего агента, с 1 активным внешним запуском и максимум 10 случаями в каждом внешнем плане. Бесплатный трафик MCP с API-ключами ограничен 30 запросами на ключ и 60 на рабочее пространство в минуту. Хранилище тестовых случаев и запуски Enterprise не ограничены, при условии общих защитных мер платформы.
Генерация тестовых случаев с помощью ИИ, предложения тегов с помощью ИИ, импорт из Figma и вложения файлов тестовых случаев требуют Enterprise. Бесплатное ограничение структурированного содержимого в 128 КБ отделено от вложений файлов Enterprise. Бесплатный тариф может хранить ссылки URL. Основные инструменты MCP для тестовых случаев остаются доступными на бесплатном тарифе в пределах указанных выше ограничений.
Выполнение без рук: страница обзора запуска — это карусель с одним видимым случаем за раз, сочетания клавиш (P Пройден · F Провален · B Заблокирован · S Пропущен) и голосовое управление. Нажмите на микрофон, затем скажите «Пройден», «Провален», «Заблокирован», «Пропущен», «Далее», «Назад», «Добавить заметки» (транскрибируется в поле заметок), «Сохранить заметки» или «Выключить голос». Автоматически переходит к следующему непротестированному случаю при успешных результатах; остается на месте при провале, чтобы тестировщики могли продиктовать детали и создать ошибку. Работает в Chrome, Edge и Safari.
Случаи и папки
list_test_cases— Список доступных тест-кейсов с необязательным селекторомprojectи фильтрамиsearch,priority,type,statusиsort. Добавьтеfolder_id(null для несгруппированных) илиsuite_idдля прямого членства, без потомков. Вызывающим с API-ключом требуетсяtest_cases:read. Значениеlimitпо умолчанию — 50 (1–200); значениеoffsetпо умолчанию — 0 (0–1000000). Неизмененный массивcasesсопровождаетсяtotal/total_countдля всех авторизованных совпадений,limit,offset,has_moreи обнуляемымnext_offset. Ранееtotalошибочно означал длину страницы. Следуйте next_offset, пока не получите null; не делайте вывод о завершении по длине страницы. Продолжение за пределами смещения 1000000 явно завершается ошибкой; сузьте фильтры, а не получайте непригодный курсор или ложное завершение. Страницы, превышающие 1 МиБ данных кейсов, явно завершаются ошибкой: повторите с меньшим лимитом, а не принимайте пропущенные записи. Используется стабильное разрешение конфликтов по ID, но параллельные изменения могут сдвигать страницы смещения.- Пример пагинации: вызовите
list_test_casesс{"project":"test-bed","limit":50,"offset":0}. Для 55 совпадений ответ содержитtotal:55, has_more:true, next_offset:50. Повторите сoffset:50для оставшихся пяти иhas_more:false, next_offset:null. create_test_case— Создание тест-кейса в обязательном селектореproject(UUID, слаг, точное имя или префикс тикета; сначала вызовитеlist_projects). Два варианта шаблона:steps(по умолчанию) — сетка{ action, expected }для каждого шага через массивsteps;text— одно свободное описание черезtext_content. Оба поля можно отправить в одном вызове. Необязательный массивurls(максимум 10 URL http/https) прикрепляет ссылки и доступен на Free. Вложения файлов требуют Enterprise и сеанса в панели управления. Вызывающим с API-ключом требуетсяtest_cases:write.- Восстановление пагинации: запрос смещения кейса за пределами доступных результатов возвращает явную ошибку; перезапустите со смещения 0. Это также может произойти, если кейсы удалены между запросами. Следуйте возвращенному продолжению, а не угадывайте следующее смещение.
- Идентификаторы кейсов:
list_test_cases,get_test_case,create_test_caseиupdate_test_caseвозвращают UUIDid, неизменяемыйshort_id(например,TEST-BA-CASE-123) и числовойcase_number, включая компактные ответы обновления/без изменений. Устаревшие кейсы без проекта используютTEST-CASE-123. Отсутствующие идентификаторы возвращаются какnull; используйте UUID как запасной вариант. База данных назначает идентификаторы; вызывающие не могут изменить их или выбрать при создании. Переименование префикса не переписывает существующие ID. - Поиск одного кейса:
get_test_caseиupdate_test_caseпринимают UUID или полный короткий ID вid;link_test_case_to_bugиlist_test_case_linksпринимают любой из них вcase_id. Окружающие пробелы, регистр букв и числовое дополнение нормализуются перед точным поиском в активном рабочем пространстве. Авторизация использует сохраненное рабочее пространство и проект, а не префикс ID. Голые числа, частичные ID и поиск по подстановочным знакам не принимаются. Массовые массивы кейсов, результат выполненияcase_id, ID ошибок, ID папок и ID наборов остаются только UUID. Записи ссылок сохраняют UUIDcase_id. - Пробелы в нумерации: номера кейсов не обязательно должны быть последовательными. Редактирование URL или увеличение номера может привести к отсутствующему или недоступному кейсу; это не гарантированное действие для следующего кейса. Обнаруживайте кейсы с помощью инструмента списка и следуйте его пагинации.
- Область рабочего пространства: один и тот же короткий ID может существовать в разных рабочих пространствах. MCP разрешает его только в активном рабочем пространстве; переключите контекст рабочего пространства перед использованием короткого ID другого рабочего пространства. При обмене URL-адресом короткого ID панели управления сохраняйте
?team=<case.team_id>, например/dashboard/test-cases/TEST-BA-CASE-123?team=<team-uuid>. Постоянные ссылки UUID сохраняют существующее авторизованное поведение между рабочими пространствами. MCP не создает постоянную ссылку. get_test_case— Получение авторизованной записи кейса, включая шаги и идентификаторы. Не загружает историю изменений или историю выполнения. Пример:{"id":"TEST-BA-CASE-123"}.- Оценки выполнения:
get_test_caseвозвращаетestimated_time_secondsи псевдоним совместимостиestimated_time, оба в секундах. Сохраненное значение0остается0; неизвестная или отсутствующая оценка —null. Каноническое поле побеждает, когда присутствуют оба имени, включая явноеnull; значения только для устаревшегоestimated_timeобрабатываются как секунды без преобразования.list_test_casesиспользуетestimated_time_seconds. Входное значениеcreate_test_caseостаетсяestimated_time, также в секундах; REST-запросы и ответы используютestimated_time_seconds. list_test_case_folders— Список доступных папок. Ограничено 500; принимает гибкий селекторprojectи фильтрparent_folder_id(используйте"root"только для верхнего уровня). Вызывающим с API-ключом требуетсяtest_cases:read.get_test_case_folder— Чтение одной папки тест-кейсов напрямую с обязательнымid(UUID). Возвращает только запись папки, без неявной загрузки вложенных папок или тест-кейсов. Требуется доступ к ее рабочему пространству и проекту; вызывающим с API-ключом требуетсяtest_cases:read.- Значения
typeтест-кейсов дляlist_test_cases,create_test_caseиbulk_update_test_cases:functional(по умолчанию при создании),regression,smoke,integration,performance,security,usability,exploratory. Недействительные типы отклоняются перед записью. Используйтеintegrationдля сквозных потоков;e2e,accessibilityиotherне принимаются как типы тест-кейсов. Типы скриптов автоматизации — отдельный контракт. create_test_case_folder— Создание папки в обязательномproject, возвращаемомlist_projects(вложенность до 3 уровней черезparent_folder_id). Требуется доступ к рабочему пространству на уровне участника или выше и доступ к проекту. Вызывающим с API-ключом также требуетсяtest_cases:write.update_test_case_folder— Обновление по UUID папки:id, необязательныйname(обрезка, 1–120 символов), обнуляемыйdescription(максимум 50000 символов), обнуляемыйparent_folder_idи обнуляемыйcard_color. UUID родителя перемещает папку и ее поддерево в том же рабочем пространстве и проекте;nullперемещает ее в корень. Цвет принимает палитру в нижнем регистре#1e293b, #7c2d12, #713f12, #14532d, #1e3a5f, #312e81, #581c87, #831843, #4a044e, #fef08a, #fca5a5, #93c5fd;nullочищает его. Опущенные поля сохраняются. Требуется хотя бы одно поле обновления. Неизвестные, с ошибками или недействительные поля отклоняют весь запрос без сохранения изменений. Циклы себя/потомков, имена, совпадающие с соседним, прямым родителем или прямым потомком (без учета регистра и окружающих пробелов), и глубины поддерева выше 3 (корень — глубина 0) отклоняются. Глубины потомков обновляются атомарно; ID кейсов и членство не изменяются. Конфликтующие параллельные изменения могут завершиться ошибкой; перечитайте папку перед повторной попыткой. Требуется активный доступ к проекту на уровне участника или выше иtest_cases:writeдля API-ключей. Пример:{"id":"folder-uuid","card_color":"#93c5fd"}. Возвращает обновленные id, team_id, project_id, name, description, card_color, parent_folder_id, depth и updated_at. Чтение папок get/list также включает card_color.update_test_case— Изменение существующего кейса по UUID или полному короткому ID вidс хотя бы одним полем:name(или псевдонимtitle),description,preconditions,steps,template_type,text_content,priority,type,statusилиfolder_id. Опущенные поля сохраняются;stepsзаменяет полный массив ([]очищает). Явноеnullочищает описание, предварительные условия, text_content или размещение в папке; пустой text_content также очищает. Если отправлены и name, и title, они должны совпадать. Приоритет и тип используют перечисления создания; статус —active,draftилиdeprecated. Изменение типа выравнивает type_tags с новым типом, соответствуя PATCH API. Нет перемещений рабочего пространства/проекта или записи метаданных файлов. Папки должны иметь точно такое же рабочее пространство и проект. Требуетсяtest_cases:write. Возвращает сводку кейса,id,short_id,case_numberиchanged; неизмененные значения даютchanged: false. Подтвержденное обновление с неподтвержденной записью истории возвращаетwarnings; не повторяйте обновление для исправления истории. При ошибке параллельного изменения перечитайте кейс перед повторной попыткой. Членство в наборе отдельно: используйте массовый инструмент ниже, а неsuite_idв этом инструменте. Инструмент удаления не предоставляется.bulk_update_test_cases— Применение одного действия к 1–500 UUID кейсов; передайте один ID для одного кейса.set_folderпринимаетparams.folder_id(UUID для перемещения, явныйnullдля снятия с группировки).add_to_suiteиremove_from_suiteпринимаютparams.suite_id; добавление никогда не удаляет другие членства и не перемещает папку. Также поддерживаетset_priority,set_status,set_type,add_tags,remove_tags,pinиunpin. API-ключи требуютtest_cases:write. Возвращаетapplied,skippedиerrors; организационные действия подсчитывают подтвержденные измененные строки, дедуплицируют ID и пропускают существующие членства.- Размещение при создании:
create_test_caseпринимает необязательныеfolder_idиsuite_id. Обнаруживайте цели с помощьюlist_test_case_foldersиlist_test_suites(обнаружение наборов требуетtest_runs:readдля API-ключей). Папки — единое место каталога; наборы — членства в тест-планах «многие ко многим». Цели должны принадлежать тому же авторизованному рабочему пространству и точному проекту, включая устаревшие кейсы без области. Недоступные ID кейсов пропускаются без деталей; несовпадающие цели отклоняются. Недействительные цели создания завершаются ошибкой до создания кейса. - Частичное создание: создание кейса и прикрепление к набору — отдельные записи. Если прикрепление не удается, ответ возвращает созданный ID кейса,
suite_id: nullи массивwarnings. Не повторяйтеcreate_test_case; повторитеbulk_update_test_casesсadd_to_suiteдля этого возвращенного ID. link_test_case_to_bug— Установление трассируемости между тест-кейсом и UUID отчета об ошибке (verified_by,coversилиrelates). Обе записи должны принадлежать активному рабочему пространству и проектам, доступным вызывающему.list_test_case_links— Список всех ссылок трассируемости для тест-кейса.list_test_case_review_candidates— Флаги мертвых тестов:never_run(90+ дней с создания),always_passes(5+ последовательных прохождений за 90 дней),always_skipped(3+ последовательных пропуска).mark_test_case_review_flags— Сохранение текущих флагов кандидатов в архив вtest_cases.review_flag. Запускается автоматически каждый понедельник в 09:00 UTC через pg_cron.
Импорт
- Импорт Figma (Enterprise) (только сеанс панели управления): загрузите zip-экспорт кадров Figma (до 100 МиБ), Claude анализирует каждый экран и создает черновики тест-кейсов в выбранную или созданную вами папку. Перед декодированием архив ограничен 1000 записей, 20 МиБ развернутых (декодированных) данных на запись и 100 МиБ совокупных развернутых данных, включая игнорируемые файлы и каталоги в бюджетах. Декодированные буферы кадров должны соответствовать заявленным размерам. Некорректные архивы, несоответствия размеров и превышенные лимиты завершают задачу до AI-анализа; исходная загрузка сохраняется при сбое для повторной попытки, в соответствии с политикой очистки хранилища. Допустимые архивы проходят многоэтапный конвейер (классификация → кейсы для каждого экрана → кейсы уровня потока для экранов с общим префиксом → самокритика) с кэшированием подсказок, повтором при 429 и изоляцией ошибок AI для каждого кадра. Кейсы попадают как
status=active, помеченныеai_generated=true, сsource='figma'иsource_frame_name, сохраняющими ссылку на исходный кадр. Используется ключ платформы Anthropic — отдельное подключение Claude для команды не требуется.
Наборы и запуски
list_test_suites— Выводит до 50 доступных тестовых наборов с необязательным гибким фильтромproject. Каждый набор включает точное целочисленное значениеcase_count: непосредственно назначенные случаи всех статусов, без вложенных элементов, исключая случаи из других рабочих областей или проектов (устаревшие случаи без проекта остаются включенными). Количество не ограничивается полученными строками членства. Вызывающим с API-ключом требуетсяtest_runs:readдля обратной совместимости с исполнительными рабочими процессами.get_test_suite— Читает один тестовый набор напрямую с обязательным параметромid(UUID). Возвращает только запись набора, без неявной загрузки дочерних наборов или входящих тестовых случаев. Требуется доступ к рабочей области и проекту; вызывающим с API-ключом требуетсяtest_runs:read.create_test_suite— Создает набор в обязательной рабочей областиproject, возвращаемойlist_projects. Вложенность до 3 уровней черезparent_suite_id. Вызывающим с API-ключом требуетсяtest_cases:write.update_test_suite— Обновляет набор по UUID:id, необязательныйname(обрезанный, 1–120 символов), допускающий nulldescription(максимум 50000 символов) иstatus(активен/архивирован). Пропущенные поля и членство в случаях сохраняются. Требуется активный доступ к проекту уровня «участник или выше» иtest_cases:write. Перемещение родительских наборов и закрепление не поддерживаются; перемещение родительских наборов требует атомарного обслуживания глубины вложенных элементов. Возвращает id, team_id, project_id, name, description, parent_suite_id, depth, status и updated_at. Пример:{"id":"suite-uuid","name":"Checkout regression","description":null}.list_test_runs— Выводит список тестовых прогонов с именем набора, исполнителем и сводкой по пройденным/непройденным.create_test_run— Создает прогон набора, управляемый панелью управления. Запуск родительского набора автоматически включает каждый случай во всех вложенных под-наборах (случай, связанный с обоими, добавляется ровно один раз). Каждая строкаtest_run_resultsзаписывает, из какого исходного под-набора поступил случай, чтобы страницы результатов могли группироваться по происхождению.
Выполнение внешним агентом
Эти инструменты позволяют Hermes или другой среде агента выполнить одобренный набор, не становясь системой учета качества. Используйте ключ с областью рабочей области, имеющий только test_runs:read и test_runs:write. Набор задает границы проекта; вызывающие не могут их переопределить.
start_test_plan— Запускает или возобновляет неизменяемый снимок набора со стабильнымexternal_run_id. Повторный идентификатор возвращает существующий соответствующий прогон и первую страницу вместо создания дубликата.get_test_run_plan— Читает каноническое состояние прогона и стабильную страницу плана. Передайте предыдущийnext_cursor; страницы по умолчанию содержат 100 случаев и ограничены 200.report_test_results— Отправляет 1–200 результатов со статусомpassed,failed,blockedилиskipped. Точные повторные попытки безопасны; попытка перезаписать случай другим статусом отклоняется.abort_test_run— Идемпотентно останавливает прерванный прогон, сохраняя принятые частичные результаты и каноническую сводку.
Поведение квоты: повторите start_test_plan с тем же external_run_id, чтобы возобновить соответствующий прогон без расходования дополнительного прогона. Удаление данных не сбрасывает ежемесячное использование прогонов.
Граница выполнения: снимки случаев исключают учетные данные, тела файлов и частные пути вложений. Доказательства результатов — текст в MVP. Целевые учетные данные остаются в среде выполнения. Затраты на браузер, модель и сеть остаются на стороне клиента, и клиенты должны ограничивать целевой доступ и исходящий сетевой трафик. Ответственность за решения о дефектах и выпусках остается на человеке.
Руководство по Hermes Agent упаковывает этот цикл как поддерживаемое сообществом умение bugAgent. Публичный стартовый набор содержит готовую конфигурацию и устанавливаемое умение. Это не официальная интеграция Nous Research.
Отчеты (аналитика Tier 1 + Tier 4)
get_test_reports_overview— Ключевые показатели для окна (процент прохождения, завершенные прогоны, выполненные случаи) с дельтами относительно предыдущего эквивалентного окна. Те же числа, что показывает полоса KPI на вкладке «Отчеты». Это не создает сохраненный проектный отчет. Корпоративные XLSX-отчеты проектов и их расписания управляются на панели управления; в этом выпуске для этих сохраненных артефактов не включен ни один инструмент MCP.get_test_reports_failures— Четыре списка «что исправить?»:failing_cases(≥50% неудач, минимум 3 прогона),flaky_cases(наибольшее количество переключений пройдено/не пройдено),failing_suites(≥30% неудач, минимум 5 прогонов),regressed_cases(самая последняя неудача с более ранним прохождением в окне).
Пример рабочего процесса
create_test_case_folder→ создайте дерево папок (например, Smoke → Auth). Используйте возвращенный идентификатор папки при создании тестового случая в том же проекте; форма «Новый тестовый случай» на панели управления также предлагает встроенное создание папок.create_test_case→ определите случаи; редактируйте содержимое с помощьюupdate_test_case, организуйте членство в наборах с помощьюbulk_update_test_cases- Пример инструментов/вызовов:
{"name":"update_test_case","arguments":{"id":"00000000-0000-4000-8000-000000000001","title":"Verify login rejection","steps":[{"action":"Submit an incorrect password","expected":"An error is shown; no session is created"}],"status":"active","folder_id":null}}. Пропущенные приоритет, тип и описание остаются без изменений. create_test_suite→ создайте тестовый план (под-наборы необязательны, до 3 уровней глубины)create_test_run→ создайте прогон, управляемый человеком/панелью управления, из родительского набора — под-наборы включаются автоматическиstart_test_plan→ запустите или возобновите безопасный для повторных попыток прогон внешнего агентаget_test_run_plan→ получите каждую неизменяемую страницу плана, затем выполните его в выбранной средеreport_test_results→ возвращайте ограниченные пакеты результатов; вызовитеabort_test_run, если выполнение не может безопасно продолжатьсяget_test_reports_failures→ спросите «что исправить на этой неделе?», когда прогон завершитсяget_test_reports_overview→ отслеживайте тенденцию процента прохождения неделя за неделей
⚡
Усиление команды
scale_team— Мгновенно масштабируйте свою команду QA с помощью бустерных тестировщиков. Учетные записи предоставляются автоматически с доступом тестировщика. Укажитеteam_size(1–10),location,duration,budgetи, необязательно,product_url,product_typesиtech_levels. Доступно на тарифном плане Enterprise. Плата не взимается до получения одобрения.
Пример рабочего процесса
scale_team→ предоставьте 5 старших тестировщиков в США на 1 месяцlist_team_members→ убедитесь, что новые тестировщики появились в вашей командеlist_bug_reports→ просмотрите отчеты, поданные бустерными тестировщиками
📱
Мобильное тестирование (Enterprise)
Мобильные ресурсы ограничены проектом. Передайте project_id или гибкий селектор project при создании, импорте и фильтрованных списках. Автоматизации наследуют проект связанного приложения; в противном случае сервер использует проект рабочей области по умолчанию. Нефильтрованные списки могут по-прежнему включать устаревшие строки уровня рабочей области, пока они не будут перенесены.
list_mobile_apps— Список загруженных приложений с необязательными фильтрамиproject_id/project,platformиlimit. Возвращаетproject_idкаждого приложения, чтобы агенты могли выполнять последующие операции в том же проекте.upload_mobile_app— Регистрация приложения APK (Android) или IPA (iOS) для тестирования на реальных устройствах. Требуетname,platform(android/ios) иfile_url; передайтеproject_id, чтобы назначить его активному проекту. Для iOS загрузите IPA для запусков на реальных устройствах, затем используйте панель управления для загрузки сборки.appсимулятора для записи.update_mobile_app— Замена бинарного файла приложения новой версией. Очищает кэшированные URL-адреса и сборки симулятора, чтобы все автоматизации использовали новую версию при следующем запуске. Требуетapp_idиfile_url. Необязательно:version. Приватные связанные профили входа требуют их активного создателя; общие профили требуют активного доступа к тому же проекту. Расписания наследуют защищённое значение по умолчанию автоматизации.list_mobile_automations— Список мобильных автоматизаций с необязательными фильтрамиproject_id/project,app_id,statusиlimit. Результаты включаютproject_idи связанный идентификатор приложения.create_mobile_automation— Создание тестового скрипта. Требуетname,app_id,script_type(maestroдля YAML,appiumдля Appium Python,appium_jsдля Appium JavaScript) иscript; передайтеproject_id, если приложение ещё не привязано к проекту. Для одного внешне проверенного автономного YAML-потока Maestro установитеexecution_modeвbrowserstack_maestro; в противном случае по умолчанию используетсяappium_actions. YAMLappIdдолжен соответствовать сохранённому пакету или идентификатору bundle связанного приложения; если ничего не сохранено, первый проверенный нативный поток устанавливает его. Идентификаторы приложений-заглушек и обфусцированные идентификаторы ресурсов Android отклоняются. ВстроенныйrunFlowподдерживается, но внешние ссылки на файлы потоков/скриптов отклоняются в v1. Нативный Maestro сохраняет такие команды, какinputRandomTextиcopyTextFrom, а также выражения времени выполнения, такие как${maestro.copiedText}и${output.value}.credential_idтого же проекта может предоставить полные значенияinputTextдля${USERNAME}/${PASSWORD}.variable_profile_idтого же проекта может сохранить значение по умолчанию для указанных значений${DATA_*}; каждый указанный ключ должен существовать. Профили данных содержат только несекретные синтетические данные.import_mobile_script— Импорт существующего мобильного тестового скрипта и превращение его в исполняемую автоматизацию с сохранением собственных локаторов разработчика, чтобы запуски точно разрешали элементы. Поддерживаемые диалекты: Appium‑Python, WebdriverIO, Maestro (YAML-потоки) и Playwright (мобильный веб). Обфусцированные заполнители идентификаторов ресурсов Android пропускаются и сообщаются вwarningsсопоставления селекторов. Только для приложений Android. Требуетname,app_idиscript; необязательноtarget_devicesиproject_id. Возвращает автоматизацию, а такжеaction_count, обнаруженныеdialectиwarningsсопоставления селекторов.run_mobile_automation— Запуск мобильной автоматизации на реальном устройстве. Требуетautomation_id; необязательноdevice,os_version,credential_idи нативный Maestrovariable_profile_id. Для данных опуститеvariable_profile_id, чтобы унаследовать значение по умолчанию автоматизации, передайтеnull, чтобы не использовать профиль, или передайте UUID того же проекта для переопределения. Каждый указанный ключ${DATA_*}должен существовать. Приватный профиль входа требует его активного создателя; общий профиль входа требует активного доступа к тому же проекту. Точные известные значения учётных данных фильтруются, а точные значения профилей данных получают фильтрацию по мере возможности из сохранённых текстовых свидетельств; преобразованные, частичные, закодированные или производные от приложения значения данных могут остаться. Авторизованные приватные видео/скриншоты остаются доступными и могут показывать значения, отображаемые тестируемым приложением, поэтому профили данных должны содержать только синтетические несекретные значения. Если контекст редактирования учётных данных недоступен или безопасность санитизации не может быть доказана, подробный текст с учётными данными скрывается, при этом статус и доступные визуальные свидетельства остаются. Диагностика требует авторизации рабочего пространства и проекта; ссылки на медиа истекают через пять минут.list_mobile_runs— Получение авторизованных результатов мобильных запусков (статус, устройство, сводка результатов, приватные ссылки на видео и скриншоты, сессия BrowserStack, отфильтрованные нативные журналы Maestro с учётными данными и сбои, когда это безопасно доступно, а также любые автоматически созданные ошибки). Членство в рабочем пространстве и доступ к проекту обязательны для диагностики запусков. Необязательные фильтры:project_id,automation_id,status(queued,running,passed,failed,error,archived) иlimit. Архивные запуски исключаются по умолчанию.create_login_profile— Создание профиля имени пользователя/пароля только для записи с шифрованием, пригодного для Mobile, Web Automation и Exploratory AI. Требуетproject_id,name,usernameиpassword; необязательныйvisibility— этоprivate(по умолчанию) илиshared. Приватные профили доступны только создателю. Общие профили доступны активным участникам с доступом к тому же проекту.create_mobile_credential— Совместимое имя дляcreate_login_profile; использует те же входные данные и границы безопасности.list_login_profiles— Список только профилей, видимых вызывающему, необязательно для одногоproject_id. Возвращает несекретные метаданные, включаяvisibility; приватные профили, принадлежащие другим пользователям, и недоступные проекты опускаются.list_mobile_credentials— Совместимое имя дляlist_login_profiles; никогда не возвращает секреты учётных данных.update_login_profile— Переименование, ротация или изменениеvisibility. Активный создатель может обновить любое поле. Активный владелец/администратор рабочего пространства может переименовать или ротировать общий профиль, но не может изменить видимость; приватные профили остаются доступными только создателю.update_mobile_credential— Совместимое имя дляupdate_login_profile; использует те же проверки владения и проекта.delete_login_profile— Мягкое удаление создателем, с возможностью восстановления жизненного цикла владельцем/администратором только для общих профилей. Значения по умолчанию для будущего использования очищаются, при этом история аудита сохраняется.delete_mobile_credential— Совместимое имя дляdelete_login_profile; исторические ссылки остаются для аудита.create_mobile_variable_profile— Создание повторно используемых, привязанных к проекту синтетических тестовых данных сproject_id,nameи объектомvariables, таким как{"DATA_EMAIL":"qa@example.test","DATA_REGION":"ca"}. Ключи должны быть идентификаторамиDATA_*в верхнем регистре. Профили допускают 1–100 строк, 4096 байт UTF-8 на значение и 65536 байт всего. Зарезервированные имена учётных данных/времени выполнения отклоняются. Никогда не храните учётные данные, токены, производственные персональные данные или другие секреты.list_mobile_variable_profiles— Список профилей Mobile/Both и их читаемых несекретных значений для одного авторизованногоproject_id. Применяются правила назначения проектов. Существующие профили и мобильное создание по умолчанию используютboth; создание/обновление принимаетplatform(mobileилиboth). Веб-профили исключаются из мобильного каталога и использования во время выполнения.update_mobile_variable_profile— Переименование профиля или замена его полного объектаvariablesпоid. Только активный создатель или активный владелец/администратор рабочего пространства может обновить его.delete_mobile_variable_profile— Мягкое удаление профиля поid. Только активный создатель или активный владелец/администратор рабочего пространства может удалить его; значения по умолчанию автоматизации очищаются, при этом исторические ссылки на запуски остаются.list_mobile_schedules,create_mobile_schedule,delete_mobile_schedule— Список, создание и удаление расписаний реальных устройств. Расписания наследуют контекст проекта, профиль входа и несекретный профиль переменных от выбранной автоматизации. Приватные профили входа требуют их активного создателя; общие профили входа требуют активного доступа к тому же проекту. Несекретные профили переменных сохраняют политику создателя-или-владельца/администратора. Изменения и удаление расписаний ограничены активным создателем расписания или активным владельцем/администратором рабочего пространства.
Каталог веб-тестовых данных
Тот же несекретный каталог проекта доступен из Automate Web. Эти инструменты требуют права automation рабочего пространства и области automations:write API-ключа, включая чтение. Они не требуют доступа Mobile. Значения никогда не разделяют записи с зашифрованными профилями входа. Поддержка каталога ещё не связывает и не внедряет значения профилей в веб-запуски.
create_web_variable_profile: требуетсяproject_id,name,variables; необязательноplatform(webилиboth), по умолчаниюweb. Использует те же ограничения DATA_*, что и мобильный. Возвращает профиль, включая егоplatform.list_web_variable_profiles: требуетсяproject_id; возвращает{ profiles: [...] }, содержащий только записи Web/Both.get_web_variable_profile: требуетсяid; возвращает доступный профиль Web/Both и его синтетические значения.update_web_variable_profile: требуетсяid; необязательноname, полная заменаvariablesилиplatform(webилиboth). Требует активного создателя или активного владельца/администратора рабочего пространства. Чтобы сузить Both до Mobile, используйте мобильный каталог с доступом Mobile.delete_web_variable_profile: требуетсяid; те же права управления. Мягко удаляет и возвращает{ deleted: true }, сохраняя историю аудита.
Пример: разрешите проект с помощью list_projects, вызовите create_web_variable_profile с {"project_id":"PROJECT_UUID","name":"Canadian checkout","platform":"both","variables":{"DATA_REGION":"CA"}}, затем проверьте его с помощью list_web_variable_profiles. Недоступные проекты/профили завершаются ошибкой без раскрытия их значений; недопустимые данные или дублирующиеся имена в рамках проекта отклоняются.
Пример рабочего процесса — Android
list_projects→ разрешите целевойproject_idupload_mobile_app→ зарегистрируйте APK в этом проекте- Запишите безопасно в панели управления или используйте
import_mobile_script/create_mobile_automation list_mobile_automations→ разрешите автоматизацию в том же проектеrun_mobile_automation→ запустите её на реальном устройстве, необязательно с профилем входаlist_mobile_runs→ проверьте статус, сводку результатов, приватные визуальные ссылки и метаданные сессии BrowserStack- Сбои автоматически создают отчёты об ошибках со снимком сбоя и разбивкой по шагам
Пример рабочего процесса — iOS
upload_mobile_app→ зарегистрируйте ваш IPA сproject_idдля запусков на реальных устройствах- Загрузите сборку симулятора
.appна странице сведений о приложении (для записи) - Запишите тест в браузере → действия захватываются из симулятора
run_mobile_automation→ запустите сохранённую автоматизацию на iPhone (использует IPA)update_mobile_app→ замените IPA новой версией, когда будет готово
Пример рабочего процесса — Native Maestro
upload_mobile_app→ зарегистрируйте APK или IPA в целевом проектеcreate_mobile_credential→ необязательно создайте профиль того же проекта для аутентифицированного потокаcreate_mobile_variable_profile→ необязательно создайте синтетические значенияDATA_*того же проекта, используемые потокомcreate_mobile_automation→ передайте один известный рабочий YAML-поток с точным пакетом/bundleappIdсвязанного приложения,script_type: maestroиexecution_mode: browserstack_maestro. Используйте${USERNAME}/${PASSWORD}для входа и заполнители в стиле${DATA_EMAIL}для синтетического ввода; передайте идентификаторы профилей, чтобы сохранить значения по умолчанию.run_mobile_automation→ выберите совместимое устройство и необязательно переопределите профиль входа или переменных. Опустите профиль переменных, чтобы унаследовать, или передайтеnull, чтобы отключить его для одного запуска.list_mobile_runs→ проверьте авторизованные сводки прохождения/непрохождения, приватные видео/скриншоты, отфильтрованные журналы, реальные имена шагов, подробные сбои и метаданные сессии. Если безопасная санитизация не может быть установлена для запуска с учётными данными, подробный текст скрывается, при этом статус и доступные визуальные свидетельства остаются.
Уточнение с помощью AI: разрешённая бета-версия доступна через панель управления и конечные точки REST для уточнения. Инструменты Refine MCP не являются частью публичного каталога.
✅
Соответствие требованиям и доказательства (Enterprise)
collect_compliance_evidence— Запуск автоматического сбора доказательств из подключенных сервисов (Cloudflare, GitHub, Sentry, Supabase, Railway). Возвращает ID запуска. Собирает настройки SSL/TLS, статус WAF, оповещения Dependabot, тенденции ошибок, историю развертываний и многое другое.check_config_drift— Проверка всех подключенных сервисов на отклонение конфигурации безопасности от базовых показателей (режим SSL, версия TLS, HSTS, правила WAF, заголовки безопасности).generate_access_review— Создание ежеквартального отчета о проверке доступа. Аудит членов команды, ролей, статуса MFA, использования ключей API и формирование рекомендаций (например, отзыв неактивных ключей).get_security_events— Запрос к межсервисной временной шкале событий безопасности. Фильтрация по источнику (cloudflare, sentry, github) и уровню серьезности (critical, high, medium, low, info). События автоматически коррелируются между сервисами.
Покрытие соответствия
Эти инструменты помогают выполнить требования SOC2 (CC4.1, CC6.1, CC7.2, CC8.1), ISO 27001 (A.5.18, A.8.8, A.8.9, A.8.15-16, A.8.29) и GDPR (ст. 5, 25, 32, 33).
Совместимые клиенты
bug Agent работает с любым клиентом, поддерживающим Model Context Protocol. Вот руководства по настройке для популярных клиентов:
Откройте Settings → Developer → Edit Config, затем добавьте:
{
"mcpServers": {
"bugagent": {
"type": "http",
"url": "https://mcp.bugagent.com/mcp",
"headers": {
"Authorization": "Bearer ba_live_YOUR_KEY_HERE"
}
}
}
}
Перезапустите Claude Desktop после сохранения.
✳️
Cursor
Откройте Settings → MCP Servers → Add Server или отредактируйте .cursor/mcp.json в корне вашего проекта:
{
"mcpServers": {
"bugagent": {
"type": "http",
"url": "https://mcp.bugagent.com/mcp",
"headers": {
"Authorization": "Bearer ba_live_YOUR_KEY_HERE"
}
}
}
}
🌊
Windsurf
Откройте Settings → MCP → Add Server или отредактируйте файл конфигурации MCP:
{
"mcpServers": {
"bugagent": {
"type": "http",
"url": "https://mcp.bugagent.com/mcp",
"headers": {
"Authorization": "Bearer ba_live_YOUR_KEY_HERE"
}
}
}
}
Добавьте bug Agent напрямую из терминала:
claude mcp add --transport http bugagent https://mcp.bugagent.com/mcp --header "Authorization: Bearer ba_live_YOUR_KEY_HERE"
Это подключается напрямую к размещенному Streamable HTTP серверу.
Для клиентов, требующих stdio, используйте опубликованный мост bugagent-mcp:
- Команда:
npx - Командная строка:
npx -y bugagent-mcp - Аргументы:
["-y", "bugagent-mcp"] - Переменные окружения:
BUGAGENT_API_KEY
Получить помощь
Нужна помощь? Мы здесь, чтобы помочь.
Discord Community
Присоединяйтесь к нашему Discord для поддержки в реальном времени и обсуждений в сообществе.
Email Support
support@bugagent.com — Обычно мы отвечаем в течение 24 часов.