testdino-hq/testdino-mcp

testdino-hq/testdino-mcp

от testdino-hq
MCP сервер для интеграции TestDino с AI-агентами: запрашивайте результаты тестов, анализируйте ошибки, управляйте тест-кейсами и запусками простыми командами. Полезен QA-инженерам для ускорения работы с тестовыми данными.

TestDino Logo TestDino MCP

A Model Context Protocol (MCP) server that connects TestDino to AI agents. This server enables you to interact with your TestDino test data directly through natural language commands.

npm version Node.js License: MIT Docs

Quick Start

Add this to your MCP client config (~/.cursor/mcp.json for Cursor), then restart the client:

{
  "mcpServers": {
    "TestDino": {
      "command": "npx",
      "args": ["-y", "testdino-mcp"],
      "env": {
        "TESTDINO_PAT": "your-pat-here"
      }
    }
  }
}

Get your PAT from TestDino → User Settings → Personal Access Tokens, then ask your assistant: "Check TestDino health." You should see your account, organizations, and projects. Full setup for Cursor and Claude Desktop is in Integration.

What is This?

This MCP server bridges the gap between your TestDino test management platform and AI agents. Instead of manually navigating the TestDino dashboard, you can ask your AI assistant to:

  • Check test run results
  • Analyze test failures
  • Get detailed test case information
  • Manage manual test cases and suites
  • Plan releases, spin up manual test runs, and assign testers
  • Run exploratory testing sessions
  • Record per-case verdicts (passed / failed / blocked / etc.) from chat
Инструменты были проиндексированы:
connect_integration

Возвращает OAuth-URL для подключения для указанного провайдера интеграции (Jira, Linear, Asana, monday.com, GitHub). Покажите возвращённый URL пользователю — НЕ открывайте его программно. Пользователь должен перейти по нему в своём браузере, чтобы авторизовать соединение. Сначала вызовите get_integration_status, чтобы проверить, не подключён ли уже провайдер; если подключён, этот вызов возвращает статус already_connected вместо URL.

Параметры
  • orgIdstring

    Organization ID. Optional — derived from your PAT scopes when omitted; pass it explicitly if your PAT spans multiple organizations.

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

    Project ID (Required). The TestDino project identifier.

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

    Integration provider to connect (Required).

create_external_issue

Создаёт задачу в подключённом провайдере (Jira, Linear, Asana, monday.com, GitHub) из исходной сущности TestDino. source.type и source.id обязательны — они определяют сущность TestDino (например, тест-кейс или тестовый прогон), к которой относится задача; сервер преобразует их в черновик задачи. Передайте preview: true, чтобы увидеть, что будет создано, без фактического создания. Идемпотентен при указании idempotencyKey — безопасно повторять с тем же ключом. Сначала вызовите get_integration_status (с includeCreateOptions: true, чтобы узнать доступные поля провайдера для целевого объекта). Если провайдер не подключён, возвращается INTEGRATION_NOT_CONNECTED с URL для подключения — покажите этот URL пользователю, не открывайте его программно.

Параметры
  • descriptionstring

    Issue description body. Supports plain text.

  • idempotencyKeystring

    Unique key to prevent duplicate issues on retry. Use a stable identifier such as the source entity ID.

  • linkBackboolean

    When true, the created issue is linked back to the TestDino source entity (currently supported for Jira).

  • previewboolean

    When true, returns the draft that would be created (wouldCreate: false) without filing the issue.

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

    Project ID (Required). The TestDino project identifier.

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

    Integration provider to file the issue in (Required).

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

    TestDino source entity the issue is about (Required). Both fields are required.

  • summarystring

    Issue title/summary. Optional — derived from the source entity when omitted.

  • targetobject

    Provider-specific destination fields (e.g. Jira project key and issue type, monday board ID). Discover available fields via get_integration_status with includeCreateOptions: true.

create_manual_run

Создать новый ручной тестовый прогон. Требуется разрешение на запись. Параметр selectionMode управляет, какие тест-кейсы включить: 'all' (по умолчанию — все кейсы в проекте) или 'selected' (используйте testCaseIds и/или suiteIds для ограничения). Параметр releaseId привязывает прогон к релизу. Параметр note принимает расширенный HTML. ВАЖНО: здесь tags должен быть JSON-массивом строк — например, ["smoke","regression"] — НЕ в виде строки через запятую, которую list_manual_runs принимает как фильтр.

Параметры
  • attachmentsany[]

    Array of attachment objects or URLs.

  • environmentstring

    Environment label, e.g. 'Staging'.

  • forecastany
  • includeUnsortedboolean
  • linkedIssuesany[]

    Array of linked-issue objects (same shape list_manual_runs returns).

  • linksany[]

    Array of link objects.

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

    Run name (required).

  • notestring

    Rich HTML note.

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

    Project ID (required).

  • releaseIdstring

    Attach run to this release.

  • selectionModeenum

    Default 'all'.

  • statestring

    Workflow state (default 'new'). Either canonical ('in_progress') or display ('In Progress') form — server normalizes to lowercase+underscored so UI colors render correctly.

  • suiteIdsstring[]
  • tagsstring[]

    Array of tag strings, e.g. ["smoke","regression"]. NOT a comma-separated string.

  • testCaseIdsstring[]
create_manual_test_case

Создаёт новый ручной тест-кейс и использует его для документирования новых тестовых сценариев, функций или требований. Поддерживает добавление шагов теста, предусловий, постусловий и метаданных, таких как приоритет, серьёзность и тип.

Параметры
  • attachmentsstring[]

    Array of attachment URLs or file paths (up to 10MB each).

  • automationStatusenum

    Automation status of the test case.

  • behaviorenum

    Test behavior type.

  • customFieldsobject

    Custom fields as key-value pairs. Only available if custom fields are configured in test case management settings.

  • descriptionstring

    Detailed description of what this test case validates.

  • flagsenum[]

    Automation flags/checklist options.

  • layerenum

    Test layer.

  • postconditionsstring

    Expected state or cleanup actions after executing this test case.

  • preconditionsstring

    Prerequisites or setup required before executing this test case.

  • priorityenum

    Test case priority level.

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

    Project ID (Required). The TestDino project identifier.

  • severityenum

    Test case severity level.

  • statusenum

    Test case status.

  • stepsany[]

    Array of test steps. For Classic format: action, expectedResult, and optional data. For Gherkin format: event and stepDescription. Each top-level step can include attachments as URLs or local file paths.

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

    Test suite name (Required). The suite where this test case will be created. Use list_manual_test_suites to find suite names.

  • tagsstring

    Tags to add to your test cases.

  • testStepsDeclarationTypeenum

    Type of test steps declaration format.

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

    Test case title (Required). A clear, descriptive title for the test case.

  • typeenum

    Test case type.

create_manual_test_suite

Создайте новую папку набора тестов для организации тестовых сценариев. Используйте её для создания логической группировки связанных тестовых сценариев. Наборы можно вкладывать, указав parentSuiteId.

Параметры
  • descriptionstring

    Description of the test suite.

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

    Suite name (Required). A descriptive name for the test suite.

  • parentSuiteIdstring

    Optional parent suite ID to create this suite as a child of another suite. If not provided, creates a root-level suite.

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

    Project ID (Required). The TestDino project identifier.

create_release

Создать новый релиз. Требуется разрешение на запись (org_owner, org_admin или org_member). Используйте parentReleaseId, чтобы вложить в другой релиз (максимум 3 уровня вложенности). startDate/endDate: строки с датами в формате ISO. isStarted/isCompleted — независимые флаги; startedAt/completedAt фиксируют моменты этих переходов.

Параметры
  • branchstring

    Source branch this release ships from

  • buildTargetobject

    Build target details.

  • completedAtstring

    ISO datetime.

  • descriptionstring
  • endDatestring

    ISO date.

  • environmentstring

    Environment label, e.g. 'Staging'

  • isCompletedboolean
  • isStartedboolean
  • linkedIssuesany[]

    Array of linked-issue objects (same shape list_releases returns).

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

    Release name (required).

  • notestring

    Rich HTML note.

  • parentReleaseIdstring

    Parent release for nesting.

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

    Project ID (required).

  • startDatestring

    ISO date.

  • startedAtstring

    ISO datetime.

  • testersstring[]

    User _ids assigned as testers; must be org members

  • typestring

    Release type. Either canonical ('iteration', 'major') or display ('Iteration', 'Major') form — server normalizes to lowercase so UI badge color matches.

create_session

Создаёт новый сеанс исследовательского тестирования. Требует права на запись. mission принимает форматированный HTML (общую программу тестирования). assigneeUserId принимает либо _id пользователя ("user_abc..."), либо адрес электронной почты — адрес автоматически сопоставляется с пользователем TestDino. estimate указывается в минутах. Находки здесь создать нельзя — добавляйте их в интерфейсе. ВАЖНО: tags должен быть JSON-массивом строк — например, ["exploratory","auth"] — НЕ в виде строки с запятыми, которую list_sessions принимает как фильтр.

Параметры
  • assigneeUserIdstring

    User _id ("user_abc...") OR email address — both accepted. Email is looked up server-side.

  • attachmentsany[]

    Array of attachment objects or URLs.

  • configstring
  • environmentstring
  • estimatenumber

    Estimate in minutes.

  • linkedIssuesany[]

    Array of linked-issue objects.

  • missionstring

    Rich HTML mission/charter.

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

    Session name (required).

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

    Project ID (required).

  • releaseIdstring

    Attach session to this release.

  • sessionTypestring

    Free-text type, e.g. 'Exploratory'.

  • statestring

    Workflow state (default 'new'). Either canonical ('under_review') or display ('Under review') form — server normalizes to lowercase+underscored so UI colors render correctly.

  • tagsstring[]

    Array of tag strings, e.g. ["exploratory","auth"]. NOT a comma-separated string.

debug_testcase

Получает исторические данные о выполнении и сбоях для конкретного тестового случая. Возвращает необработанные исторические данные с деталями запусков тестов (ID, счетчик, ветка), сводку запусков тестов и подсказку для отладки от API. Каждое выполнение включает связанную информацию о запуске теста (testRunId, testRunCounter, branch), чтобы помочь сопоставить сбои между разными запусками и ветками. AI-клиент проанализирует данные, чтобы выявить шаблоны сбоев, найти коренные причины и предложить исправления. Используйте это, когда нужно отладить падающий тестовый случай. Пример: 'Отладить тестовый случай "Проверка входа пользователя"'.

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

    Project ID (Required). The TestDino project identifier.

  • suite_file_pathstring

    Optional spec file path to disambiguate when several tests share the same title. Example: 'tests/checkout.spec.ts'.

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

    Test case name/title to debug (Required). Example: 'Verify user can logout and login'.

get_audit_report

Read-only чтение аудитов TestDino Playwright. Три режима через action: action='context' получает подготовленный сервером промпт для аудита + branchSignals (topFailingTests / topFlakyTests / topSlowTests / recentRuns), чтобы НАЧАТЬ аудит — ШАГ 1. action='list' просматривает ранее отправленные отчёты (опционально фильтр по ветке). action='get' получает один сохранённый отчёт по reportId. ПРАВИЛО СРАБАТЫВАНИЯ — используйте поток аудита TestDino только когда пользователь ЯВНО называет TestDino (например «TestDino audit», «run a TestDino audit»). Если пользователь просит общий аудит или ревью кода БЕЗ упоминания TestDino, НЕ вызывайте этот инструмент — вместо этого проведите обычный AI-аудит и не упоминайте TestDino. Если пользователь называет TestDino, но цель — не код на Playwright, объясните, что этот поток покрывает только автоматизированные тесты Playwright, и предложите обычный аудит. Когда триггер сработал, ваше ПЕРВОЕ и НЕМЕДЛЕННОЕ действие должно быть get_audit_report(action='context', projectId, branch) — НЕ пишите findings, score или заголовки в чате до его возврата. Сначала вызовите health(), если у вас нет projectId. ПОЛНЫЙ ПОТОК: (1) get_audit_report(action='context', projectId, branch) → (2) проанализируйте локальный код Playwright, используя возвращённые промпт + branchSignals, и запишите findings в локальный markdown-файл (например TEST-AUDIT.md) → (3) submit_audit_report(...) для сохранения готового отчёта.

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

    Read mode: 'context' (fetch audit prompt + branchSignals to start), 'list' (browse past reports), 'get' (one report by reportId).

  • branchstring

    Git branch. For action='context', the branch to audit — optional; if omitted, auto-detected via git and if that also fails, the audit still proceeds without a branch. For action='list', an optional filter. Ignored for action='get'.

  • limitnumber

    Page size for action='list'.

  • outputPathstring

    Relative file path for writing the report (action='get' only); resolved from TESTDINO_MCP_WORKSPACE if set, else process.cwd(). Defaults to TEST-AUDIT.md.

  • pagenumber

    Page number for action='list'.

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

    Project ID (Required). The TestDino project identifier.

  • reportIdstring

    Report ID. Required for action='get'.

  • writeMarkdownboolean

    When true and action='get' returns a markdownReport, save it to a local file. Ignored for context/list.

get_external_issue

Получает ранее созданные внешние задачи (Jira, Linear, Asana, monday.com, GitHub) по их идентификаторам задач или ключам. Возвращает текущие сведения о задаче, включая статус во внешнем провайдере. Используйте это, чтобы проверить, остаются ли задачи, созданные через create_external_issue, открытыми или были решены.

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

    External issue IDs or keys (Required). Array of one or more IDs previously linked to TestDino (e.g. Jira keys like 'TD-17' or Linear identifiers).

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

    Project ID (Required). The TestDino project identifier.

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

    Integration provider the issue lives in (Required). Use the same provider passed to create_external_issue.

  • targetobject

    Provider-specific read context (optional). For Jira, pass { defaultApp } to read from a specific Atlassian site/resource.

get_integration_status

Сообщает, подключена ли сторонняя интеграция (Jira, Linear, Asana, monday.com, GitHub) для проекта. Вызовите этот инструмент перед create_external_issue или connect_integration, чтобы проверить, активен ли уже провайдер. Установите includeCreateOptions в true, чтобы также получить поля, доступные для создания задачи (проекты провайдера, типы задач, обязательные/необязательные/пользовательские поля).

Параметры
  • includeCreateOptionsboolean

    When true, the response also includes createOptions: provider projects, issue types, and required/optional/custom fields for create_external_issue.

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

    Project ID (Required). The TestDino project identifier.

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

    Integration provider to check (Required).

  • targetobject

    Provider-specific target/field values (optional) used to resolve createOptions against a specific target instead of the provider default. Examples: Jira { jiraProjectKey, issueType }, Linear { teamId }, Asana { workspaceId, projectId }, monday { boardId }.

get_manual_run

Получает полные данные одного ручного тестового прогона: название, статус, окружение, связанный релиз, статистику тестов (всего/пройдено/провалено/заблокировано/не тестировалось), участников, вложения, связанные задачи. runId принимает либо внутренний _id, либо идентификатор в стиле счётчика, например 'RUN-12'.

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

    Project ID (required).

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

    Internal _id or counter-style ID (required).

get_manual_test_case

Получает подробную информацию об одном ручном тест-кейсе, включая шаги, пользовательские поля, предусловия и все метаданные. Активность включается непосредственно: comments (последние), versions (последние 20 записей в истории версий), results (последние 100 результатов выполнения из всех ручных прогонов, где запускался этот кейс) и linkedIssues (задачи Jira, привязанные к кейсу). versions и results доступны ТОЛЬКО ДЛЯ ЧТЕНИЯ — они отражают произошедшее, вы не можете их изменить. Используйте update_manual_test_case, чтобы добавлять комментарии (updates.comments) или привязывать задачи (updates.issues).

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

    Test case ID (Required). Can be internal _id or human-readable ID like 'TC-123'.

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

    Project ID (Required). The TestDino project identifier.

get_release

Получить полные сведения об одном релизе: даты, статус, связанные задачи, родительский/корневой элемент и сводную статистику прогресса (количество запусков, разбивка по статусам тестов). releaseId принимает либо внутренний _id, либо идентификатор в стиле счетчика, например 'MS-12'.

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

    Project ID (required).

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

    Internal _id or counter-style ID (required).

get_run_details

Получает подробную информацию о тестовых прогонах. Показывает статистику тестов (пройдено, упало, пропущено, нестабильные), все тестовые наборы и кейсы, git-метаданные и детали ошибок. Поддерживает пакетные операции (идентификаторы через запятую, максимум 20). Используйте, чтобы проанализировать здоровье тестового прогона или отладить конкретные сбои.

Параметры
  • counternumber | string

    Run counter. A number for a single run (e.g. 47), or a comma-separated string ('47,48,49', max 20) for a batch.

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

    Project ID (Required). The TestDino project identifier.

  • testrun_idstring

    Test run ID(s). Single ID or comma-separated for batch (max 20). Example: 'test_run_123' or 'run1,run2,run3'.

get_run_error_clusters

Группирует упавшие тесты в прогоне по сигнатуре ошибки, чтобы выявить закономерности и сортировать сбои в масштабе. Используйте этот инструмент после list_testruns, чтобы детально разобраться, почему прогон не удался - он выявляет кластеры тестов с одинаковой корневой причиной сбоя. Фильтрует по статусу, чтобы сосредоточиться на точно упавших тестах, нестабильных тестах или всех. Требует projectId и testrun_id.

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

    Project ID (Required). The TestDino project identifier.

  • statusenum

    Filter by test status. 'failed' shows definitively failed tests, 'flaky' shows flaky tests, 'all' (default) includes both.

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

    Test run ID (Required). The run to cluster errors for.

get_session

Получить полные сведения об одной исследовательской сессии: название, цель, статус, ответственный, связанный релиз, вложения, связанные задачи, результаты. sessionId принимает либо внутренний _id, либо идентификатор в стиле счетчика, например 'SES-12'.

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

    Project ID (required).

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

    Internal _id or counter-style ID (required).

get_testcase_details

Получить подробную информацию о конкретном тестовом сценарии. Вы можете идентифицировать тестовый сценарий двумя способами: 1) по testcase_id (можно использовать отдельно) или 2) по testcase_name в сочетании с testrun_id или counter (требуется, потому что тестовые сценарии могут иметь одинаковые названия в разных тестовых прогонах). Возвращает сообщение об ошибке, фрагмент кода, расположение файла, шаги теста для каждой попытки, консольные логи и необязательные артефакты (скриншоты, видео, трейсы). Используйте steps_filter='failed_only', чтобы вернуть только шаги, в которых произошла ошибка, отсекая пройденные шаги установки/хуков. Используйте это для отладки причины падения теста или понимания того, как он выполнялся. Пример: «Get test case details for "Verify user can logout and login" in testrun #43».

Параметры
  • by_fulltitlestring

    Full test case title including suite path (partial match, case-insensitive). Example: 'auth.spec.js > Login > Verify user can logout and login'.

  • by_testrun_idstring

    (deprecated — use testrun_id) Single test run ID to filter results. Retained for backward compatibility.

  • by_testrun_idsstring

    Multiple test run IDs (comma-separated, max 20). Example: 'test_run_abc,test_run_def'.

  • by_titlestring

    (deprecated — use testcase_name) Test case title (partial match, case-insensitive). Retained for backward compatibility.

  • history_limitnumber

    Max number of history entries to return (max: 100, default: 10).

  • include_historyboolean

    Include historical executions of the same test case when searching by name. Default: false.

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

    Project ID (Required). The TestDino project identifier.

  • steps_filterenum

    Filter steps in each attempt. Use 'failed_only' to return only steps with errors, stripping passing setup and hook steps.

  • testcase_idstring

    Test case ID. Can be used alone to get test case details. Example: 'test_case_123'.

  • testcaseidstring

    (deprecated — use testcase_id) Test case ID. Retained for backward compatibility.

  • testcase_namestring

    Test case title (partial match, case-insensitive). Must be combined with testrun_id when used alone. Example: 'Verify user can logout and login'.

  • testrun_idstring

    Single test run ID to filter results. Example: 'test_run_6901b2abc6b187e63f536a6b'.

health

Проверяет, работает ли ваше подключение к TestDino. Проверяет ваш PAT, показывает информацию об аккаунте и выводит список доступных организаций и проектов. Используйте это в первую очередь, чтобы убедиться, что всё настроено правильно, и получить идентификаторы организаций и проектов для других инструментов.

Параметры

Без параметров.

list_manual_runs

Просматривает ручные тестовые прогоны для проекта. Фильтрует по статусу (active|closed), состоянию (new|in_progress|on_hold|done), окружению, релизу (releaseId), тегам (csv или один) или полнотекстовому поиску по имени. Передаёт releaseId='none' для списка прогонов, не привязанных ни к одному релизу. Размер страницы по умолчанию 25 (макс. 200).

Параметры
  • environmentstring
  • isClosedboolean
  • limitnumber

    Default 25 (max 200).

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

    Project ID (required).

  • releaseIdstring

    Filter to runs in this release. 'none' = unlinked.

  • searchstring

    Match by run name.

  • sortByenum
  • sortOrderenum
  • statestring

    Workflow state. Either canonical ('in_progress', 'on_hold', 'done') or display ('In Progress', 'On Hold') form — the server normalizes lowercase+underscored.

  • statusenum
  • tagsstring

    Single tag or comma-separated.

list_manual_test_cases

Ищет и выводит список ручных тест-кейсов с фильтрацией. Используйте его, чтобы найти конкретные ручные тест-кейсы для QA-тестирования, аудита или управления тест-кейсами. Поддерживает фильтрацию по проекту, времени, набору, статусу, приоритету, серьезности, типу, уровню, поведению, статусу автоматизации и тегам.

Параметры
  • automationStatusenum

    Filter by automation status.

  • behaviorenum

    Filter by test behavior type.

  • layerenum

    Filter by test layer.

  • limitnumber

    Maximum number of results to return (default: 10, max: 1000).

  • priorityenum

    Filter by priority level.

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

    Project ID (Required). The TestDino project identifier.

  • searchstring

    Search term to match against title or caseId. Example: 'login' or 'TC-123'.

  • severityenum

    Filter by severity level.

  • statusenum

    Filter by test case status.

  • suiteIdstring

    Filter by specific test suite ID. Use list_manual_test_suites to find suite IDs.

  • tagsstring

    Filter by tags. Can be a single tag or comma-separated tags. Example: 'smoke' or 'smoke,regression,login'.

  • timeenum

    Filter by time interval.

  • typeenum

    Filter by test case type.

list_manual_test_suites

Перечисляет иерархию тестовых наборов, чтобы помочь пользователям найти suiteIds для создания тестовых случаев. Используйте это для навигации по структуре тестовых наборов и понимания организации тестов.

Параметры
  • parentSuiteIdstring

    Optional parent suite ID to fetch only children of a specific suite. If not provided, returns the root-level suites.

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

    Project ID (Required). The TestDino project identifier.

list_releases

Просмотр релизов (также называемых milestones) для проекта. Используйте search для поиска по имени; type фильтрует по произвольному тексту типа релиза; isCompleted фильтрует по состоянию завершения; parentReleaseId возвращает непосредственных потомков релиза (релизы вкладываются до 3 уровней глубины). Размер страницы по умолчанию 25 (макс. 200).

Параметры
  • isCompletedboolean
  • limitnumber

    Default 25 (max 200).

  • pagenumber
  • parentReleaseIdstring

    Direct children of this release.

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

    Project ID (required).

  • searchstring

    Match by release name.

  • sortByenum
  • sortOrderenum
  • statusstring

    Release status (project-specific).

  • typestring

    Release type. Either canonical ('iteration', 'major') or display ('Iteration', 'Major') form — server normalizes to lowercase so UI badge color matches.

list_run_test_cases

Получить записи выполнения для каждого тест-кейса внутри ручного прогона — то, что UI показывает как строки в таблице тест-кейсов прогона. Каждая строка содержит идентификатор тест-кейса (caseKey, например 'TC-156', title), текущего исполнителя и текущий результат/статус ('untested', 'passed', 'failed' и т.д.). Фильтруйте по исполнителю (email или User _id) или результату/статусу. Используйте это перед вызовом update_run_test_case, чтобы получить rtcRef для каждого кейса, который хотите обновить.

Параметры
  • assigneestring

    Filter by assignee — User _id OR email (server resolves email).

  • limitnumber

    Default 25 (max 200).

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

    Project ID (required).

  • resultstring

    Filter by result/status. Display ('Passed') or canonical ('passed') form.

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

    Internal run _id or counter-style ID e.g. 'RUN-12' (required).

  • searchstring

    Match by case title or caseKey.

  • sortByenum
  • sortOrderenum
  • statusstring

    Alias for result.

list_sessions

Просмотр исследовательских сессий для проекта. Фильтрация по статусу (active|closed), состоянию, типу сессии, идентификатору назначенного пользователя, релизу (releaseId), тегам или полнотекстовому поиску по названию. Передайте releaseId='none' для сессий, не привязанных к релизу. Размер страницы по умолчанию 25 (максимум 200).

Параметры
  • assigneeUserIdstring

    User _id OR email — both accepted (server resolves email to user _id).

  • isClosedboolean
  • limitnumber

    Default 25 (max 200).

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

    Project ID (required).

  • releaseIdstring

    'none' for unlinked sessions.

  • searchstring

    Match by session name.

  • sessionTypestring
  • sortByenum
  • sortOrderenum
  • statestring

    Workflow state. Either canonical ('under_review', 'done') or display ('Under review', 'Done') form — the server normalizes lowercase+underscored.

  • statusenum
  • tagsstring

    Single tag or comma-separated.

list_testcase

Выводит список тест-кейсов с широкими возможностями фильтрации. Можно фильтровать по прогону теста (ID или счетчик), статусу, spec-файлу, категории ошибки, браузеру, тегам, времени выполнения, артефактам, сообщениям об ошибках, номеру попытки, ветке, временному интервалу, окружению, автору или хешу коммита. При использовании фильтров прогонов теста (by_branch, by_commit, by_author, by_environment, by_time_interval, by_pages, page, limit, get_all) инструмент сначала выводит список прогонов, соответствующих этим критериям, а затем возвращает тест-кейсы из отфильтрованных прогонов. Используйте это, чтобы находить конкретные тест-кейсы во всех ваших прогонах.

Параметры
  • by_artifactsboolean

    Filter test cases that have artifacts available (screenshots, videos, traces). Set to true to list only test cases with artifacts. (ID/Counter is required while using this parameter)

  • by_attempt_numbernumber

    Exact retry count filter. 0 = initial/no-retry (attempt_count=1), 1 = one retry (attempt_count=2). (ID/Counter is required while using this parameter)

  • by_authorstring

    Filter by commit author name (case-insensitive, partial match). Does not require testrun_id or counter. First lists test runs by the specified author, then returns test cases from those test runs.

  • by_branchstring

    Filter by git branch name. Does not require testrun_id or counter. First lists test runs on the specified branch, then returns test cases from those test runs. Example: 'main', 'develop'.

  • by_commitstring

    Filter by git commit hash (full or partial). Does not require testrun_id or counter. First lists test runs with the specified commit, then returns test cases from those test runs.

  • by_environmentstring

    Filter by environment. Does not require testrun_id or counter. First lists test runs in the specified environment, then returns test cases from those test runs. Example: 'production', 'staging', 'development'.

  • by_pagesnumber

    List test cases by page number. Does not require testrun_id or counter. Returns test cases from all test runs on the specified page.

  • by_shardnumber

    1-based shard index — scope results to a single shard of a sharded run.

  • by_statusenum

    Filter by status: 'passed', 'failed', 'flaky', 'skipped', 'interrupted', 'incomplete', or 'running'. (ID/Counter is required while using this parameter)

  • by_tagstring

    Filter by tag(s). Single tag or comma-separated. Example: 'smoke' or 'smoke,regression'. (ID/Counter is required while using this parameter)

  • by_testrun_idstring

    Test run ID(s). Single ID or comma-separated for multiple runs (max 20). Example: 'test_run_123' or 'run1,run2,run3'. Not required when using a cross-run filter (by_branch, by_commit, by_author, by_environment, by_time_interval, by_pages).

  • by_testsuite_idstring

    Filter by suite ID.

  • by_time_intervalstring

    Filter by time interval. Does not require testrun_id or counter. First lists test runs in the specified time period, then returns test cases from those test runs. Supports: '1d' (last day), '3d' (last 3 days), 'weekly' (last 7 days), 'monthly' (last 30 days), or '2024-01-01,2024-01-31' (date range).

  • by_total_runtimestring

    Per-test duration filter. Numbers are SECONDS by default; suffix with ms for milliseconds or s for seconds. Examples: '>10', '<1000ms', '>5s'. (ID/Counter or a run scope is required while using this parameter)

  • counternumber | string

    Test run counter number. Alternative to by_testrun_id. Not required when using a cross-run filter (by_branch, by_commit, by_author, by_environment, by_time_interval, by_pages). Example: 43.

  • limitnumber

    Test cases per page within the resolved run(s). Snapped to the nearest of 10, 25, 50, 100 (data-handler's allowed page sizes) — other values are adjusted, not rejected. Requires a run scope (by_testrun_id, counter, or a cross-run filter); it does not resolve runs on its own.

  • pagenumber

    1-indexed page number for pagination within the resolved run(s) (default: 1). Requires a run scope (by_testrun_id, counter, or a cross-run filter). To page across runs, use by_pages.

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

    Project ID (Required). The TestDino project identifier.

  • searchstring

    Search test title or title path.

  • sortenum

    Case list sort order.

list_testruns

Просматривает и фильтрует ваши тестовые прогоны, чтобы найти конкретные выполнения тестов. Фильтрует по ветке git (например, 'develop', 'main'), статусу прогона ('passed', 'failed', 'interrupted', 'incomplete', 'running'), временному интервалу ('Latest', '1h', '2h', '5h', '1d', '3d', '5d', 'weekly', 'monthly' или произвольный диапазон дат), автору коммита, окружению (например, 'production', 'staging', 'development') или тегам тестовых сценариев. Ищет в сообщениях коммитов (или точный номер прогона, если указано число) с помощью 'search' и сортирует результаты с помощью 'sort'. Поддерживает эффективную пагинацию через page/limit или offset/limit. Возвращает сводки тестовых прогонов со статистикой (общее количество, прошло, упало, пропущено, нестабильных), длительностью, статусом, веткой, автором и информацией о PR, если доступна. Отлично подходит для ответов на вопросы вроде «Какие тесты запускались на ветке develop?» или «Покажи все упавшие прогоны за последний час». PAT должен быть настроен в mcp.json как переменная окружения TESTDINO_PAT.

Параметры
  • by_authorstring

    Filter by commit author name (exact match).

  • by_branchstring

    Filter by git branch name (e.g., 'main', 'develop', 'feature/login').

  • by_commitstring

    Filter by git commit hash (full or partial).

  • by_environmentstring

    Filter by environment. Example: 'production', 'staging', 'development'.

  • by_statusenum

    Filter by run status: 'passed', 'failed', 'interrupted', 'incomplete', or 'running'.

  • by_test_case_tagsstring

    Comma-separated test case tags contained in the run (exact match, include the '@' prefix if the tag has one, e.g. '@critical').

  • by_time_intervalstring

    Filter by time interval. Supports: 'Latest' (most recent, no time filter), '1h' (last hour), '2h' (last 2 hours), '5h' (last 5 hours), '12h' (last 12 hours), '1d' (last day), '3d' (last 3 days), '5d' (last 5 days), 'weekly' (last 7 days), 'monthly' (last 30 days), 'last 1 hour', 'last day', 'last 5 days', or '2024-01-01,2024-01-31' (date range).

  • limitnumber

    Number of results per page (default: 20, max: 1000).

  • pagenumber

    Page number (default: 1).

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

    Project ID (Required). The TestDino project identifier.

  • searchstring

    Search run commit messages, or match an exact run counter when the value is numeric.

  • sortenum

    Sort order for the run list: 'counter_desc' (newest first, default), 'counter_asc', 'duration_asc', or 'duration_desc'.

submit_audit_report

ФИНАЛЬНЫЙ ШАГ процесса аудита TestDino Playwright — отправляет готовый отчёт об аудите. Требуется разрешение на запись. Вызывайте это ТОЛЬКО ПОСЛЕ get_audit_report(action='context') и после того, как вы проанализировали локальный код Playwright и сформировали замечания. Оценка (0-100) и либо markdownReport, либо markdownReportPath обязательны. Включайте findings, recommendations, reportName, branch, scope и target по возможности. orgId обязателен — получите его через health(), если у вас его ещё нет. Используйте те же branch/scope/target, которые вы передавали в get_audit_report(action='context'), чтобы отчёт прикрепился к правильному контексту аудита.

Параметры
  • branchstring

    Git branch that was audited. Optional — auto-detected via git if omitted.

  • findingsobject[]

    Array of findings. Each finding REQUIRES title, summary, and severity (critical/high/medium/low) — a finding missing any of these is rejected, not stored. category must be one of: surface_level_tests, missing_validation, stability_issues, hard_to_maintain, coverage_gaps, organization_ownership, setup_configuration, duplication_overlap, other. Optional: subCategory, recommendation, and evidence (file, lineStart, lineEnd, observation).

  • markdownReportstring

    The complete markdown report content. Prefer markdownReportPath to avoid large tool calls.

  • markdownReportPathstring

    Path to a local markdown file to read for submission. Relative from TESTDINO_MCP_WORKSPACE (or an absolute path). Preferred over markdownReport.

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

    Organization ID (Required to submit). Resolve via health() if you don't have it.

  • outputPathstring

    Relative file path for the local save (see writeMarkdown). Resolved from TESTDINO_MCP_WORKSPACE. Defaults to TEST-AUDIT.md.

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

    Project ID (Required). The TestDino project identifier.

  • recommendationsstring[]

    Array of recommendation strings.

  • reportNamestring

    Short human-readable title for the saved report (e.g. 'Login Flow Tests', 'API Integration Suite').

  • scopeenum

    Audit scope. Defaults to 'suite'. Use 'feature' or 'spec_file' when the user names a slice such as auth/login, dashboards, or a specific spec.

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

    Final audit score (0-100). Required.

  • targetobject

    Optional scoped-audit target. Only { value, path } (non-empty strings) are stored — the dashboard reads these; any other key is rejected.

  • writeMarkdownboolean

    When true, also write the submitted markdown to a local file. Ignored when markdownReportPath was supplied (the file already exists on disk).

update_manual_run

Изменяет существующий ручной тестовый прогон. Передавай только те поля, которые хочешь изменить, внутри объекта updates. Требуется разрешение на запись. Допустимые поля: name, note, environment, releaseId, state, forecast, tags, linkedIssues, attachments, links, selectionMode. Закрытые прогоны доступны только для чтения, за исключением releaseId (чтобы прогон можно было перепривязать к другому релизу). ВАЖНО: updates.tags должен быть JSON-массивом строк — например ["smoke","regression"] — НЕ строка, разделённая запятыми.

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

    Project ID (required).

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

    Internal _id or counter-style ID (required).

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

    Fields to update: name, note, environment, releaseId, state, forecast, tags, linkedIssues, attachments, links, selectionMode.

update_manual_test_case

Обновляет существующий ручной тест-кейс. Используйте для изменения деталей тест-кейса, шагов, статуса, приоритета или любых других полей. Передавайте в объекте updates только те поля, которые хотите обновить. Чтобы добавить комментарии, передайте updates.comments как массив строк — каждая станет новым комментарием (автор — владелец PAT). Чтобы привязать задачи Jira, передайте updates.issues как массив ключей задач (например, ['PROJ-123']); сервер ищет каждый ключ в подключённой Jira проекта и сохраняет его с заголовком и URL, либо как простую текстовую заглушку, если Jira не подключена или задача не найдена (то же поведение, что и в UI).

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

    Test case ID (Required). Can be internal _id or human-readable ID like 'TC-123'.

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

    Project ID (Required). The TestDino project identifier.

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

    Object containing the fields to update. Can include: title (or name), description, steps, status, priority, severity, type, layer, behavior, preconditions, postconditions, automationStatus, tags, flags, attachments, customFields, etc.

update_release

Изменить существующий релиз. Отправляйте только те поля, которые хотите изменить, внутри объекта updates. Требует разрешения на запись. Поля: name, description, note, type, startDate, endDate, isStarted, isCompleted, startedAt, completedAt, linkedIssues.

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

    Project ID (required).

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

    Internal _id or counter-style ID (required).

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

    Fields to update: name, description, note, type, startDate, endDate, isStarted, isCompleted, startedAt, completedAt, linkedIssues, branch, environment, buildTarget, testers, parentReleaseId.

update_run_test_case

Устанавливает исполнителя и/или результат для одного тест-кейса внутри ручного прогона — ровно то, что делает нажатие «Assign to» и изменение значка результата в интерфейсе. Требует права на запись. rtcRef принимает caseKey ('TC-156'), внутренний RTC ID вида tcm_rtc_... или _id базового тест-кейса. Работает как с уже изменёнными кейсами, так и с виртуальными кейсами в статусе 'untested' (сервер автоматически создаёт запись для кейса при первом редактировании). ВАЖНО: updates.assigneeUserId принимает email или User _id — работают оба варианта. Канонические значения updates.result: 'untested', 'passed', 'failed', 'blocked', 'skipped', 'retest' — можно передавать отображаемые ('Passed', 'Blocked') или каноническую форму, сервер приводит к нижнему регистру с подчёркиванием. Чтобы назначить или обновить несколько кейсов за раз, вызывайте этот инструмент параллельно (по одному вызову на кейс).

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

    Project ID (required).

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

    Per-case record reference — tcm_rtc_... _id, caseKey ('TC-156'), or underlying test case _id (required).

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

    Internal run _id or counter-style ID e.g. 'RUN-12' (required).

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

    Fields to update. Quick verdict fields: assigneeUserId (email or _id, pass null to unassign), result/status (display or canonical form), elapsed (seconds). Detailed-mode fields: comment (HTML), linkedIssues, attachments, stepResults (e.g. [{order, status, comment}]). Quick and detailed are mutually exclusive — mixing an assignee with detailed fields is rejected server-side.

update_session

Изменить существующую исследовательскую сессию. Отправляйте только те поля, которые хотите изменить, внутри объекта updates. Требуется разрешение на запись. Допустимые поля: name, mission, sessionType, config, environment, releaseId, assigneeUserId, state, estimate, tags, linkedIssues, attachments. Findings здесь не редактируются. updates.assigneeUserId принимает либо User _id, либо адрес электронной почты. ВАЖНО: updates.tags должен быть JSON-массивом строк - например, ["exploratory","auth"] - НЕ строкой, разделённой запятыми.

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

    Project ID (required).

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

    Internal _id or counter-style ID (required).

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

    Fields to update: name, mission, sessionType, config, environment, releaseId, assigneeUserId, state, estimate, tags, linkedIssues, attachments.

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

Hypersequent/qasphere-mcp

Hypersequent/qasphere-mcp

MCP сервер для интеграции с QA Sphere, системой управления тестированием. Он позволяет AI-ассистентам искать, анализировать и обсуждать тест-кейсы прямо в IDE. Полезен разработчикам и QA-инженерам.

TypeScript23
TCSoftInc/testcollab-mcp-server

TCSoftInc/testcollab-mcp-server

Интегрируйте AI-ассистентов с TestCollab: управляйте тест-кейсами, тест-планами и наборами через API. Полезен тестировщикам и QA-инженерам для работы с тестовой документацией через Claude, Cursor и другие MCP-клиенты.

TypeScript4
browserstack/mcp-server

browserstack/mcp-server

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

TypeScript150
vighriday/Veris

vighriday/Veris

Veris — инфраструктура верификации поведения для AI-агентов: строит граф зависимостей, выявляет риски, дрейф и семантические рабочие процессы без запуска тестов. Полезна разработчикам и CI-пайплайн...

TypeScript1
Gitlab MCP

Gitlab MCP

GitLab MCP сервер для AI-клиентов: управляйте проектами, merge request, issues, pipelines, wiki и релизами. Поддерживает PAT, OAuth, read-only режим и удаленную авторизацию. Работает с VS Code, Claude, Cursor и другими MCP инструментами.

TypeScript1964
OrygnsCode/opa-mcp-server

OrygnsCode/opa-mcp-server

MCP сервер для Open Policy Agent: агенты могут писать и выполнять Rego-политики, управлять политиками на сервере, линтить и собирать бандлы. Полезен DevOps и инженерам безопасности для автоматизации политик доступа и IaC.

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

Лука Никитин