browserstack/mcp-server

browserstack/mcp-server

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

BrowserStack MCP Server

BrowserStack Logo MCP Server Logo

Comprehensive Test Platform

Manage test cases, execute manual or automated tests, debug issues, and even fix code—directly within tools like Cursor, Claude, or any MCP-enabled client, using plain English.

Test from anywhere:

Easily connect the BrowserStack Test Platform to your favourite AI tools, such as IDEs, LLMs, or agentic workflows.

Test with natural language:

Manage, execute, debug tests, and even fix code using plain English prompts.

Reduced context switching:

Stay in flow—keep all project context in one place and trigger actions directly from your IDE or LLM.

⚡️ One Click MCP Setup

Click on the buttons below to install MCP in your respective IDE:

Install in VS Code   Install in Cursor

Note: The hosted Remote MCP server (mcp.browserstack.com) is now fully stateless over Streamable HTTP — any Streamable-HTTP client (Claude, Cursor, VS Code, ChatGPT) connects with no configuration change.

Note : Ensure you are using Node version >= 20.9
  • Check your node version using node --version. Recommended version: v22.15.0 (LTS)
  • To Upgrade Node :
    1. On macOS (Homebrew) - brew update && brew upgrade node or if using (nvm) - nvm install 22.15.0 && nvm use 22.15.0 && nvm alias default 22.15.0
    1. On Windows (nvm-windows) : nvm install 22.15.0 && nvm use 22.15.0
  • 👉 Or directly download the Node.js LTS Installer

Часто задаваемые вопросы

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

Отвечает на вопросы о доступности, a11y и WCAG, используя базу знаний BrowserStack по доступности.

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

    Любой вопрос о доступности, a11y, WCAG или веб-доступности.

addPercySnapshotCommandsтолько чтениеидемпотентный

Добавляет команды снимков Percy в указанные тестовые файлы.

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

    Индекс тестового файла для обновления

addTestResult

Добавляет результат теста в конкретный тестовый прогон через BrowserStack Test Management API. Требует идентификатор проекта (PR-*). Здесь нет инструмента, который выводит список проектов, поэтому если у вас его нет, используйте функции capability, чтобы вывести список проектов Test Management, затем повторите вызов этого инструмента с идентификатором, который они вернут.

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

    Идентификатор проекта (начинается с 'PR-')

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

    Идентификатор тестового примера, например, 'TC-13'.

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

    Идентификатор тестового прогона (например, TR-678)

askBrowserStackAIвнешний мир

(Alpha, ограниченная доступность. Включается отдельно для аккаунта и отдельно для продукта; если не включено, вызов возвращает ошибку entitlement, ничего не выполняется, и задачу нужно выполнить с помощью отдельных инструментов. Чтобы запросить доступ, пользователь должен обратиться к владельцу своего аккаунта BrowserStack.) Используйте этот инструмент, когда ни один другой инструмент BrowserStack здесь не подходит для задачи, или когда те, что вы пробовали, не привели к результату. Отдавайте предпочтение конкретному инструменту, когда он подходит: это быстрее и предсказуемее, чем поручать задачу агенту. В противном случае опишите простыми словами, что вам нужно, и агент BrowserStack решит, какие вызовы сделать, а затем вернёт ответ и список выполненных шагов. Всё, что может изменить данные, приостанавливается и сначала запрашивает ваше подтверждение; удаления отклоняются сразу. Передайте этот запрос на подтверждение пользователю и ответьте тем, что скажет ОН: никогда не решайте за него. Если спросить некого, запуск выполняется в режиме только для чтения, и всё, что он хотел изменить, вместо этого возвращается в needs_approval. Одна задача за вызов.

Параметры
  • decisionenum

    Ответ пользователя. Никогда не считайте, что разрешено: спросите у пользователя.

  • perm_idstring

    perm_id из того же результата.

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

    В каком продукте работать: tm (Test Management), tra (Test Reporting & Analytics).

  • querystring

    Что вы хотите, простыми словами. Одно действие на вызов.

  • run_idstring

    run_id из результата needs_approval.

createAccessibilityAuthConfig

Создает конфигурацию аутентификации для сканирования доступности. Поддерживает как аутентификацию на основе форм, так и базовую аутентификацию.

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

    Пароль сайта; опустите, чтобы он был запрошен у пользователя.

  • passwordSelectorstring

    Селектор CSS для поля пароля (требуется для аутентификации в формах)

  • submitSelectorstring

    CSS-селектор для кнопки отправки (обязательно для авторизации через форму)

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

    Тип аутентификации: 'form' для входа по форме, 'basic' для базовой HTTP-аутентификации.

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

    URL страницы аутентификации

  • usernamestring

    Имя пользователя сайта; если не указано, будет запрошено у пользователя.

  • usernameSelectorstring

    CSS-селектор для поля имени пользователя (обязателен для аутентификации через форму)

createLCASteps

Генерирует шаги Low Code Automation (LCA) для тест-кейса в BrowserStack Test Management с помощью Low Code Automation Agent. Требуется идентификатор проекта (PR-*). Ни один инструмент здесь не перечисляет проекты, поэтому если у вас его нет, используйте функции возможностей, чтобы получить список проектов Test Management, затем повторите вызов этого инструмента с идентификатором, который они вернут.

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

    Базовый URL для теста (например, 'google.com')

  • credentialsobject

    Учётные данные для входа; опускает их, чтобы они были запрошены у пользователя.

  • local_enabledboolean

    Включено ли локальное тестирование

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

    Идентификатор проекта (начинается с 'PR-')

  • requires_authenticationboolean

    Установите true, если тестовый случай требует входа в систему.

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

    Детали тест-кейса, включая шаги

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

    Идентификатор тестового примера, например, 'TC-13'.

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

    Название теста

  • wait_for_completionboolean

    Следует ли ожидать завершения сборки LCA (по умолчанию: true)

createProjectOrFolder

Создаёт проект и/или папку в BrowserStack Test Management. Для создания проекта идентификатор не нужен. Чтобы создать папку внутри СУЩЕСТВУЮЩЕГО проекта, нужен идентификатор этого проекта (PR-*); ни один инструмент здесь не выдаёт список проектов, так что воспользуйтесь функциями capability, чтобы его найти.

Параметры
  • folder_descriptionstring

    Описание для новой папки.

  • folder_namestring

    Название создаваемой папки.

  • parent_idnumber

    Идентификатор родительской папки; если не указан, папка создается в корне.

  • project_descriptionstring

    Описание для нового проекта.

  • project_identifierstring

    Существующий идентификатор проекта для создания папки.

  • project_namestring

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

createTestCase

Создаёт тест-кейс в BrowserStack Test Management с помощью этого инструмента. Требует идентификатор проекта (PR-*). Ни один инструмент здесь не выводит список проектов, поэтому если у вас его нет, воспользуйтесь функциями capability, чтобы получить список проектов Test Management, затем снова вызовите этот инструмент с идентификатором, который они вернут.

Параметры
  • automation_statusstring

    Статус автоматизации тест-кейса. Типичные значения включают 'not_automated', 'automated', 'automation_not_required'.

  • case_typestring

    Тип тест-кейса: отображаемое или внутреннее имя (для каждого проекта). Оставьте пустым, чтобы использовать значение по умолчанию для проекта.

  • custom_fieldsobject

    Сопоставление имени настраиваемого поля NAME со значением; для полей с множественным выбором используйте массив.

  • descriptionstring

    Краткое описание тест-кейса.

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

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

  • issuesstring[]

    Список ID связанных задач Jira, Asana или Azure. Формат должен быть строго массивом, а не строкой JSON.

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

    Название тестового случая.

  • ownerstring

    Email владельца тест-кейса.

  • preconditionsstring

    Какие-либо предварительные условия (HTML разрешён).

  • prioritystring

    Приоритет тестового случая. Принимает либо отображаемое имя (например, 'Critical', 'High', 'Medium', 'Low'), либо внутреннее имя (например, 'medium'). Если не указано, применяется значение по умолчанию для проекта (обычно 'Medium'). Допустимые значения зависят от проекта и доступны через конечную точку form-fields.

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

    Идентификатор проекта BrowserStack, в котором нужно создать тестовый пример. Если идентификатор проекта не указан, спросите пользователя, хочет ли он создать новый проект с помощью инструмента createProjectOrFolder.

  • tagsstring[]

    Теги, которые нужно прикрепить к тест-кейсу. Они должны быть строго в формате массива, а не строкой JSON.

  • templatestring

    Только системный шаблон slug: 'test_case_steps' или 'test_case_bdd'. Для пользовательского шаблона используйте template_id вместо этого.

  • template_idnumber

    Числовой идентификатор пользовательского шаблона (из listTestCaseTemplates); применяет этот шаблон. Переопределяет 'template'.

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

    Список шагов и ожидаемых результатов.

createTestCasesFromFile

Генерирует тестовые случаи из файла в BrowserStack Test Management с помощью Test Case Generator AI Agent.

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

    Внутренний идентификатор документа

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

    ID папки BrowserStack

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

    Идентификатор проекта BrowserStack - это уникальный идентификатор, который находится в URL проекта на платформе BrowserStack Test Management. Этот идентификатор также возвращается инструментом Upload Document.

createTestRun

Создаёт тестовый прогон в BrowserStack Test Management. Требует идентификатор проекта (PR-*). Здесь нет инструмента, который выводит список проектов, поэтому если у вас его нет, воспользуйтесь capability-функциями, чтобы получить список проектов Test Management, затем повторите вызов этого инструмента с идентификатором, который они вернут.

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

    Идентификатор проекта, в котором создается тестовый запуск.

  • test_runobjectобязательный
describeCapabilityтолько чтениеидемпотентный

Предоставляет полный контракт для ОДНОЙ возможности, выбранной из searchCapability: её параметры, сгруппированные в path_params / query / body под именами из самой спецификации, то, что она возвращает, и объявленные формы ответа в полностью развёрнутом виде. Вызывайте его после search и перед invokeCapability: search намеренно опускает всё это, потому что оно нужно только для той единственной возможности, которую вы на самом деле вызываете. Определяйте её по name ровно так, как search его вернул; только когда результат не содержит name (некоторые продукты пока не публикуют его), передавайте вместо него method и path. Каждый параметр указывает свой тип, обязателен ли он, допустимые значения, если множество замкнуто, и любые ограничения, объявленные продуктом: соблюдайте их перед вызовом, а не узнавайте о них по отклонённому запросу.

Параметры
  • include_responsesenum

    Какие объявленные ответы разворачивать: 'success' (по умолчанию, форма 2xx), 'all' (добавляет формы ошибок - в несколько раз больше и почти одинаковые на всех эндпоинтах), или 'none'.

  • methodstring

    HTTP-метод: только для возможностей, возвращаемых без name.

  • namestring

    Опубликованное название capability, ровно в том виде, в каком его вернул searchCapability.

  • pathstring

    Путь с {placeholders} как есть - только для возможностей, возвращаемых без name.

  • productenum

    Какой продукт им владеет (loadtesting, tm, tra). searchCapability возвращает его в каждом результате; обязателен только когда два продукта совпадают по имени или пути.

describeEntityтолько чтениеидемпотентный

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

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

    Имя сущности, как его возвращает listProducts.

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

    К какому продукту относится сущность: loadtesting, tm, tra.

expandPercyVisualTestingтолько чтениеидемпотентный

Настраивает или расширяет конфигурацию визуального тестирования Percy с полным покрытием для существующих проектов, в которые Percy может быть уже интегрирован. Поддерживает как Percy Web Standalone, так и Percy Automate. Примеры запросов: Расширьте покрытие Percy для этого проекта {project_name}

Параметры
  • detectedBrowserAutomationFrameworkenumобязательный
  • detectedLanguageenumобязательный
  • detectedTestingFrameworkenumобязательный
  • filePathsstring[]

    Массив абсолютных путей к конкретным файлам UI-тестов. Используйте это, когда нужно нацелиться на конкретные файлы тестов, а не на целые папки. Если не указано, будет использоваться folderPaths.

  • folderPathsstring[]

    Массив абсолютных путей к папкам с файлами UI-тестов. Если не указано, проанализируйте кодовую базу на наличие папок UI-тестов, сканируя паттерны тестов, которые содержат UI-тест-кейсы в соответствии с фреймворком. Верните пустой массив, если ничего не найдено.

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

    Укажите тип интеграции Percy: web (Percy Web) или automate (Percy Automate). Если не указано, всегда запрашивайте у пользователя: «Пожалуйста, укажите тип интеграции Percy». Не продолжайте без явного выбора. Никогда не используйте значение по умолчанию.

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

    Уникальное имя для вашего проекта Percy.

fetchAccessibilityIssuesтолько чтениеидемпотентный

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

Параметры
  • cursornumber

    Смещение символов для пагинации (по умолчанию: 0)

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

    Идентификатор сканирования из завершенного сканирования доступности

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

    Идентификатор запуска сканирования из завершённого сканирования доступности

fetchAutomationScreenshotsтолько чтениеидемпотентный

Получает скриншоты, снятые во время сеанса Automate/App Automate.

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

    Идентификатор сессии BrowserStack для получения скриншотов

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

    Тип сессии BrowserStack

fetchBuildInsightsтолько чтениеидемпотентный

Получает детали сборки и результаты проверки качества. Включает hashed_id и session_type для listSessions.

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

    UUID сборки BrowserStack

fetchPercyChangesтолько чтениеидемпотентный

Получает и обобщает все визуальные изменения, обнаруженные Percy AI между последней и предыдущей сборками, помогая быстро просмотреть, что изменилось в вашем проекте.

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

    Название проекта BrowserStack. Если не найдено, спросите пользователя напрямую.

fetchRCAтолько чтениеидемпотентный

Получает AI-анализ корневых причин для упавших тестов текущего пользователя в BrowserStack Automate/App-Automate. Предлагает только исправления; никогда не применяет автоматически, требует явного одобрения пользователя. Требует идентификаторы тестов. Сначала вызовите listTestIds, если у вас его нет.

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

    Массив целочисленных идентификаторов тестов для получения данных RCA (максимум 3 идентификатора). Это должны быть числовые идентификаторы тестов, а не идентификаторы сессий или строки. Если они не предоставлены, используйте инструмент listTestIds, чтобы получить все неудачные тест-кейсы. Если предоставлено более 3 идентификаторов, будут обработаны только первые 3.

fetchSelfHealedSelectorsтолько чтениеидемпотентный

Получает самовосстанавливающиеся селекторы BrowserStack и исходный код теста для запуска. Укажите ровно один из параметров: sessionId (одиночная сессия Automate / App-Automate) или buildUuid (полный отчёт о самовосстановлении для сборки). Передайте возвращённые пары локаторов в prepareSelfHealingPlan, чтобы спланировать правки. Требует идентификатор сессии. listSessions перечисляет их для сборки; если сборки у вас тоже нет, getBuildId или listBuildId находит её по названию проекта и сборки.

Параметры
  • buildUuidstring

    Создаёт UUID сборки. Получает отчёт о самовосстановлении сборки.

  • sessionIdstring

    Session ID. Взаимоисключающий с buildUuid.

  • sessionTypeenum

    Используется с sessionId. По умолчанию имеет значение automate.

getAccessibilityAuthConfigтолько чтениеидемпотентный

Получает существующую конфигурацию аутентификации по идентификатору. Нужен числовой идентификатор, который возвращает createAccessibilityAuthConfig. Ни один инструмент здесь не выводит список существующих конфигураций, поэтому, если у вас нет идентификатора, создайте новую конфигурацию, а не угадывайте.

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

    ID конфигурации аутентификации для получения.

getBuildIdтолько чтениеидемпотентный

Получает идентификатор сборки BrowserStack для указанного проекта и имени сборки, ограниченный сборками текущего пользователя.

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

    Имя сборки BrowserStack из конфигурации тестового запуска (например, browserstack.yml). Точное совпадение; значение по умолчанию не задано.

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

    Имя проекта BrowserStack из конфигурации запуска тестов (например, browserstack.yml). Точное совпадение; значения по умолчанию нет.

getFailureLogsтолько чтениеидемпотентный

Получает логи или URL-адрес видео для сессии Automate/App Automate. Требуется идентификатор сессии. listSessions перечисляет их для сборки; если у вас тоже нет сборки, getBuildId или listBuildId определяет идентификатор сборки по имени проекта и сборки.

Параметры
  • buildIdstring

    Идентификатор сборки App Automate. Необязательный: если не указан, определяется из сеанса.

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

    Типы журналов для получения.

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

    Идентификатор сессии BrowserStack. Должен быть явно указан пользователем.

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

    Тип сессии BrowserStack. Должен быть явно указан пользователем.

getSubTestPlanтолько чтениеидемпотентный

Получает подтест-план (STP-) в рамках родительского плана (TP-). Возвращает метаданные и связанные тестовые запуски. Требует идентификатор проекта (PR-). Здесь нет инструмента, который перечисляет проекты, поэтому если у вас его нет, используйте capability functions, чтобы перечислить проекты Test Management, затем повторите вызов этого инструмента с идентификатором, который они вернут. Требует идентификатор тест-плана (TP-). Сначала вызовите listTestPlans, если у вас его нет. Создать тест-план или подплан, а также привязать или отвязать тестовые запуски к нему, здесь нельзя: используйте capability functions, которые обращаются к собственному API Test Management для этих операций. Они просят подтвердить перед любыми изменениями.

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

    Идентификатор родительского тест-плана (TP-*).

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

    Идентификатор проекта (PR-*).

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

    Идентификатор под-тестового плана (STP-*).

getTestPlanтолько чтениеидемпотентный

Получает тест-план по идентификатору (TP-) из BrowserStack Test Management. Возвращает метаданные плана, полный список связанных тестовых запусков, общее количество тест-кейсов по всем запускам и сводку по статусу. Подходит для создания тестовой документации или отчётов о статусе QA. Требует идентификатор проекта (PR-). Здесь нет инструмента для перечисления проектов, так что если у вас его нет, используйте функции возможностей, чтобы перечислить проекты Test Management, а затем снова вызовите этот инструмент с идентификатором, который они вернут. Требует идентификатор тест-плана (TP-*). Сначала вызовите listTestPlans, если у вас его нет. Создать тест-план или подплан, а также привязать или отвязать тестовые запуски к нему, здесь нельзя с помощью инструментов: используйте функции возможностей, которые обращаются к собственному API Test Management для этих операций. Они просят подтвердить перед изменением чего-либо.

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

    Идентификатор проекта (начинается с PR-, за которым следует число).

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

    Идентификатор тестового плана (начинается с TP-, за которым следует число).

invokeCapability

Вызывайте capability, контракт которой вы получили из describeCapability. Передавайте name точно как указано - это и есть handle (дескриптор). Только когда результат не содержит name (некоторые продукты пока его не публикуют), передавайте вместо него method и path, точно в том виде, как они возвращены. Аргументы передаются в path_params / query / body под именами из самой спецификации. Один вызов делает ровно один запрос и возвращает собственный ответ продукта без изменений; когда completed равен false, есть следующая страница, которую вы получаете, отправляя собственный параметр страницы capability. Если режим 'write', вы ОБЯЗАНЫ сначала спросить пользователя, затем отправить повторно с user_permission='granted' и change_summary; оба значения записываются. Capabilities, чей режим 'destructive' (то есть удаление), отклоняются безоговорочно: архивирование, закрытие и слияние - это обычные операции записи, и они ВЫПОЛНЯЮТСЯ, поэтому читайте режим и намерение, прежде чем получать подтверждение от пользователя.

Параметры
  • bodyobject

    Поля body, под именами из спецификации.

  • change_summarystring

    Что изменится. Обязательно для операций записи.

  • methodstring

    HTTP-метод: только для возможностей, возвращаемых без name.

  • namestring

    Опубликованное имя capability, ровно в том виде, как оно возвращается (например, 'create_test_run_by_integer_id'). Предпочтительнее, чем method/path.

  • pathstring

    Путь с {placeholders} как есть - только для возможностей, возвращаемых без name.

  • path_paramsobject

    Значения для {placeholders}.

  • productenum

    Какому продукту принадлежит возможность (loadtesting, tm, tra). searchCapability возвращает его в каждом результате; обязателен только когда у двух продуктов совпадают имя или путь.

  • queryobject

    Параметры запроса

  • user_permissionenum

    Устанавливает значение 'granted', только если пользователь подтвердил запись.

listBuildIdтолько чтениеидемпотентный

Получает последний build ID для проекта и имени сборки, для всех пользователей (без фильтрации по пользователю).

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

    Имя сборки BrowserStack из конфигурации тестового запуска (например, browserstack.yml). Точное совпадение; значение по умолчанию не задано.

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

    Имя проекта BrowserStack из конфигурации запуска тестов (например, browserstack.yml). Точное совпадение; значения по умолчанию нет.

listFoldersтолько чтениеидемпотентный

Перечисляет папки в проекте BrowserStack Test Management и возвращает id и name каждой папки (плюс количество кейсов и количество подпапок). Передайте parent_id, чтобы вывести подпапки внутри конкретной папки вместо папок верхнего уровня. Нужен идентификатор проекта (PR-*). Ни один инструмент здесь не перечисляет проекты, поэтому если у вас его нет, используйте capability functions, чтобы перечислить проекты Test Management, затем снова вызовите этот инструмент с идентификатором, который они вернут.

Параметры
  • pnumber

    Номер страницы

  • parent_idnumber

    Если указано, перечисляет подпапки в указанной родительской папке по идентификатору. Если не указано, перечисляет папки верхнего уровня.

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

    Идентификатор проекта, из которого нужно получить папки (начинается с PR-, за которым следует число).

listProductsтолько чтениеидемпотентный

Перечисляет продукты BrowserStack, до которых может дотянуться эта поверхность: что каждый из них делает, какие сущности моделирует и строку, говорящую, что такое каждая сущность. НАЧНИТЕ ЗДЕСЬ - searchCapability требует продукт, и это то, что подсказывает, какой именно. Если два продукта могут оба подойти для задачи, спросите пользователя, а не выбирайте за него. ВСЕГДА передавайте запрос пользователя, его собственными словами, как query: тогда ответ прямо скажет, конфликтуют ли продукты из-за слов в нём. КОГДА ОН СООБЩАЕТ О КОНФЛИКТЕ - два продукта претендуют на одно и то же слово для разных вещей - СПРОСИТЕ ПОЛЬЗОВАТЕЛЯ, КАКОЙ ПРОДУКТ ОН ИМЕЕТ В ВИДУ, И ДОЖДИТЕСЬ ЕГО ОТВЕТА, ПРЕЖДЕ ЧЕМ ИСКАТЬ ИЛИ ВЫЗЫВАТЬ ЧТО-ЛИБО. Ответ содержит вопрос, который нужно им задать, и что общее слово означает в каждом продукте. Выбирать за них или искать по каждому продукту по очереди и объединять результаты - это ошибка, которую этот вызов должен предотвратить.

Параметры
  • querystring

    Запрос пользователя его собственными словами. Вместе с ним ответ содержит блок routing, который говорит, используют ли продукты ту же лексику, что и этот запрос, и, если используют, то какой вопрос задать пользователю перед поиском по любому из продуктов.

listSessionsтолько чтениеидемпотентный

Перечисляет сеансы для хешированной сборки Automate/App Automate: идентификаторы сеансов, статус, ОС, браузер/устройство, URL панели мониторинга.

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

    Хэшированный build id из дашборда или observability build id из getBuildId.

  • limitinteger

    Максимум возвращаемых сеансов. По умолчанию - 10.

  • offsetinteger

    Смещение пагинации для списка REST-сессий.

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

    Тип сессии BrowserStack

  • statusstring

    Необязательный фильтр по статусу сессии (например, done, running, error). Применяется на стороне клиента.

listSubTestPlansтолько чтениеидемпотентный

Выводит список подчинённых тест-планов под родительским тест-планом (TP-) в проекте Test Management. Поддерживает пагинацию. Требует идентификатор проекта (PR-). Ни один инструмент здесь не выводит список проектов, поэтому если у вас его нет, перечислите проекты Test Management с помощью функций возможностей, а затем повторите вызов этого инструмента с идентификатором, который они вернут. Требует идентификатор тест-плана (TP-*). Если у вас его нет, сначала вызовите listTestPlans. Создание тест-плана или подплана, привязка и отвязка тестовых прогонов к нему недоступны здесь как инструменты: для этих операций используйте функции возможностей, которые обращаются к собственному API Test Management. Перед любыми изменениями они просят подтверждение.

Параметры
  • pnumber

    Номер страницы

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

    Идентификатор родительского тест-плана (TP-*).

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

    Идентификатор проекта (PR-*).

listTestCasesтолько чтениеидемпотентный

Перечисляет тест-кейсы в проекте, при необходимости ограничиваясь конкретной папкой. Опустите folder_id, чтобы вывести все тест-кейсы проекта; укажите folder_id (его можно узнать через listFolders), чтобы вывести только кейсы этой папки. Поддерживает фильтры: case_type, priority, pagination. Требует идентификатор проекта (PR-*). Здесь нет инструмента для перечисления проектов, поэтому если у вас его нет, воспользуйтесь функциями возможностей, чтобы вывести проекты Test Management, затем повторите вызов этого инструмента с идентификатором, который они вернут.

Параметры
  • case_typestring

    Список типов случаев, разделённых запятыми (например, functional, regression).

  • folder_idstring

    Необязательно. Если указано, возвращайте только тестовые случаи из этой папки. Если не указано, возвращаются все тестовые случаи в проекте. Идентификаторы папок можно узнать с помощью listFolders.

  • pnumber

    Номер страницы

  • prioritystring

    Список приоритетов, разделенных запятыми (например, critical,medium,low).

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

    Идентификатор проекта, из которого нужно получить тестовые примеры. Этот идентификатор начинается с PR- и за ним следует число.

listTestCaseTemplatesтолько чтениеидемпотентный

Выводит шаблоны тест-кейсов с их числовым template_id. Используйте идентификатор с createTestCase для применения пользовательского шаблона (slug 'template' выбирает только системные шаблоны).

Параметры
  • namestring

    Фильтрует имена шаблонов по подстроке без учёта регистра.

listTestFilesтолько чтениеидемпотентный

Перечисляет все тестовые файлы для заданного набора директорий.

Параметры

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

listTestIdsтолько чтениеидемпотентный

Перечисляет все тесты сборки BrowserStack (каждый со своим статусом и идентификатором сессии); необязательный фильтр по статусу. Требует идентификатор сборки BrowserStack. Сначала вызовите getBuildId или listBuildId, если у вас его нет.

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

    Идентификатор сборки Browserstack для тестового запуска. Если он неизвестен, используйте инструмент getBuildId, чтобы получить его по названию проекта и сборки.

  • includeFailureDetailboolean

    Добавляет сигнатуру отказа для каждого теста при кластеризации. По умолчанию false.

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

    Фильтруйте тесты по статусу. Если не указано, возвращаются все тесты. Например, для сценария RCA всегда используйте статус failed.

listTestPlansтолько чтениеидемпотентный

Выводит список тест-планов в проекте BrowserStack Test Management. Возвращает для каждого плана идентификатор (TP-), имя, статус, описание, даты и количество активных/закрытых тестовых запусков. Поддерживает пагинацию. Требует идентификатор проекта (PR-). Здесь нет инструмента, который выводит список проектов, поэтому если у вас его нет, воспользуйтесь capability-функциями, чтобы вывести список проектов Test Management, затем снова вызовите этот инструмент с идентификатором, который они вернут. Создание тест-плана или подплана, а также привязка или отвязка тестовых запусков к нему недоступны здесь как инструменты: воспользуйтесь capability-функциями, которые обращаются к собственному API Test Management для этих операций. Они просят подтвердить перед любыми изменениями.

Параметры
  • pnumber

    Номер страницы

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

    Идентификатор проекта для получения тест-планов (начинается с PR- и последующего числа).

listTestRunsтолько чтениеидемпотентный

Выводит список тестовых запусков в проекте с необязательными фильтрами (диапазоны дат, исполнитель, состояние и т.д.). Требуется идентификатор проекта (PR-*). Здесь нет инструмента, который выводит список проектов, поэтому если у вас его нет, воспользуйтесь функциями возможностей, чтобы получить список проектов Test Management, затем снова вызовите этот инструмент с идентификатором, который они вернут.

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

    Идентификатор проекта, из которого нужно получить тестовые запуски (обычно начинается с PR-).

  • run_statestring

    Возвращает все тестовые запуски с этим состоянием (через запятую)

managePercyBuildApprovalидемпотентный

Одобряет или отклоняет сборку Percy

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

    Действие, которое нужно выполнить над сборкой Percy.

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

    Идентификатор сборки Percy для одобрения или отклонения.

percyVisualTestIntegrationAgentтолько чтениеидемпотентный

Интегрирует Percy visual testing в новые проекты и демонстрирует обнаружение визуальных изменений с помощью пошаговой симуляции. Этот инструмент выполняет начальную интеграцию Percy, настройку и создаёт рабочую демонстрацию для новых пользователей. Основной инструмент для запросов типа: «Integrate percy for this project», «Integrate percy in this project {project_name}»

Параметры
  • detectedBrowserAutomationFrameworkenumобязательный
  • detectedLanguageenumобязательный
  • detectedTestingFrameworkenumобязательный
  • filePathsstring[]

    Массив абсолютных путей к конкретным файлам UI-тестов. Используйте это, когда нужно нацелиться на конкретные файлы тестов, а не на целые папки. Если не указано, будет использоваться folderPaths.

  • folderPathsstring[]

    Массив абсолютных путей к папкам с файлами UI-тестов. Если не указано, проанализируйте кодовую базу на наличие папок UI-тестов, сканируя паттерны тестов, которые содержат UI-тест-кейсы в соответствии с фреймворком. Верните пустой массив, если ничего не найдено.

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

    Укажите тип интеграции Percy: web (Percy Web) или automate (Percy Automate). Если не указано, всегда запрашивайте у пользователя: «Пожалуйста, укажите тип интеграции Percy». Не продолжайте без явного выбора. Никогда не используйте значение по умолчанию.

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

    Уникальное имя для вашего проекта Percy.

prepareSelfHealingPlanидемпотентный

Формирует самовосстанавливающийся план правок, который объединяет пары локаторов с исходным кодом тестов, чтобы вызывающая LLM могла применить его своими инструментами редактирования. Этот инструмент НЕ изменяет файлы: он возвращает структурированный контекст, чтобы LLM могла править только нужные места вызовов (без слепого find/replace по общим id/классам). sessions принимает канонический вид [{sessionId, locators: [{original, healed, thought?}]}], один объект сессии, обёртку {sessions: [...]}, сырой отчёт {healing_logs: [...]} (где healed_selectors выступает алиасом для locators) и ключи в snake_case (session_id, original_locator, healed_locator, healing_thought). Требует идентификатор сессии. listSessions перечисляет их для сборки; если у вас тоже нет сборки, getBuildId или listBuildId определяет её по имени проекта и сборки.

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

    Сессии, для которых нужно спланировать правки. Допустимые форматы указаны в описании инструмента.

runAppLiveSession

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

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

    Путь к файлу .ipa или .apk для установки на устройство. Всегда запрашивает у пользователя путь к приложению и не предполагает его. Должен находиться внутри каталога, заданного в MCP_UPLOAD_BASE_DIR.

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

    Полное название устройства, на котором будет запускаться приложение. Например: «iPhone 12 Pro», «Samsung Galaxy S20» или «Google Pixel 6». Всегда спрашивайте у пользователя, какое устройство он хочет использовать, не предполагайте его самостоятельно.

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

    На какой платформе запускать, примеры: 'android', 'ios'. Устанавливайте это на основе предоставленного пути к приложению.

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

    Указывает версию платформы, на которой будет запускаться приложение. Например, используйте '12.0' для Android или '16.0' для iOS. Если пользователь говорит 'latest', 'newest' или подобное, приводите к 'latest'. Аналогично, преобразуйте такие термины, как 'earliest' или 'oldest', к 'oldest'.

runAppTestsOnBrowserStack

Выполняет предварительно собранные наборы нативных мобильных тестов (Espresso для Android, XCUITest для iOS) путём прямой загрузки на BrowserStack. ТОЛЬКО для скомпилированных тестовых файлов .apk/.ipa. Это НЕ для интеграции SDK или тестов Appium. Для тестирования на основе Appium с настройкой SDK используйте 'setupBrowserStackAppAutomateTests'.

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

    Путь к файлу вашего приложения: Если в директории IDE для разработки: • Для Android: 'gradle assembleDebug' • Для iOS: xcodebuild clean -scheme YOUR_SCHEME && xcodebuild archive -scheme YOUR_SCHEME -configuration Release -archivePath build/app.xcarchive && xcodebuild -exportArchive -archivePath build/app.xcarchive -exportPath build/ipa -exportOptionsPlist exportOptions.plist Если в другой директории, укажите существующий путь к приложению. Найденный файл должен лежать внутри директории, заданной в MCP_UPLOAD_BASE_DIR.

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

    Фреймворк автоматизации, используемый в проекте, например, 'espresso' (Android) или 'xcuitest' (iOS).

  • devicesobject[]

    Кортежи, описывающие целевые мобильные устройства. Добавляйте устройство только когда пользователь явно просит об этом. По умолчанию: [] . Пример: [['android', 'Samsung Galaxy S24', '14'], ['ios', 'iPhone 15', '17']]

  • projectstring

    Название проекта для организации тестовых запусков на BrowserStack.

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

    Путь к файлу вашего набора тестов: Если в каталоге IDE для разработки: • Для Android: 'gradle assembleAndroidTest' • Для iOS: xcodebuild test-without-building -scheme YOUR_SCHEME -destination 'generic/platform=iOS' && cd ~/Library/Developer/Xcode/DerivedData/*/Build/Products/Debug-iphonesimulator/ && zip -r Tests.zip *.xctestrun *-Runner.app Если в другом каталоге, укажите путь к существующему файлу тестов. Итоговый файл должен находиться внутри каталога, заданного в MCP_UPLOAD_BASE_DIR.

runBrowserLiveSessionвнешний мир

Запускает сеанс BrowserStack Live (настольный или мобильный).

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

    Браузер для настольных компьютеров (Chrome, IE, Firefox, Safari, Edge)

  • desiredBrowserVersionstring

    Версия браузера для настольных компьютеров (например, '133.2', 'latest'). Если пользователь говорит 'latest', 'newest' или что-то подобное, нормализуйте это до 'latest'. Аналогично, преобразуйте такие термины, как 'earliest' или 'oldest', в 'oldest'.

  • desiredDevicestring

    Название устройства для мобильного

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

    Настольная ОС ('Windows' или 'OS X') или мобильная ОС ('android','ios','winphone')

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

    Версия ОС должна быть указана как номер версии (например, '10', '14.0') или как ключевое слово, такое как 'latest' или 'oldest'. Приводите варианты вроде 'newest' или 'most recent' к 'latest', а термины вроде 'earliest' или 'first' — к 'oldest'. Для macOS вместо числовых версий нужно использовать названия версий (например, 'Sequoia').

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

    URL для тестирования

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

    Должно быть 'desktop' или 'mobile'.

runPercyScanтолько чтениеидемпотентный

Запускает визуальное тестирование Percy. Примеры запросов: Запустить эту сборку/сканирование Percy. Никогда не запускайте сканирование/сборку Percy без этого инструмента.

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

    Указывает, нужно ли интегрироваться с Percy Web или Percy Automate. Если тип интеграции явно не задан, спросите пользователя, какой вариант он хочет выбрать.

  • percyRunCommandstring

    Команда теста для запуска с Percy. Необязательно — LLM должен сначала попытаться определить её из контекста проекта.

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

    Название проекта, в котором запускается Percy.

searchCapabilityтолько чтениеидемпотентный

Находит эндпоинты, которые эта поверхность может вызывать, простым языком, в пределах ОДНОГО продукта. СНАЧАЛА ВЫЗОВИ listProducts, передав запрос пользователя в его query: он называет продукты, сообщает, конфликтуют ли они из-за слов в этом запросе, и даёт вопрос, который нужно задать, если конфликтуют. Он всё равно нужен: product здесь принимает имя точно так, как его пишет listProducts. Если два продукта используют одно и то же слово для разных вещей, спросите ПОЛЬЗОВАТЕЛЯ и дождитесь ответа, а не выбирайте сами. Поиск сопоставляет СВОИ слова продукта, а не синонимы. Когда ваши слова не совпадают со словами продукта, ответ сообщает об этом: weak_match: true с картой suggested_vocabulary сущностей продукта и их псевдонимов. Результаты всё равно возвращаются, но считайте их неподтверждёнными: выберите ближайшую сущность из этой карты и выполните поиск снова, используя её словарь, или вызовите describeEntity для неё, чтобы получить более полную картину. Этот один дополнительный обмен гораздо дешевле, чем вызов не той возможности. Дополнительное сужение с помощью entity уточняет результаты. ЭТО СПИСОК КАНДИДАТОВ, А НЕ КОНТРАКТ. Каждый результат несёт только то, что нужно, чтобы ВЫБРАТЬ: name (дескриптор), product, mode (пишет ли он), intent и guidance (что он делает и что идёт не так), а также method/path для продуктов, которые пока не публикуют имя. Он НЕ несёт параметров или форм ответа. Как только вы выбрали один, вызовите describeCapability для его полного контракта, затем invokeCapability. Запрос контракта только для выбранного варианта - это разница между ~1k и ~8.6k токенов на поиск. Результаты ранжируются и ограничиваются. ЧТОБЫ УВИДЕТЬ ВСЁ, а не искать, передайте query='*' - это перечисляет продукт (с учётом entity и mode) в стабильном порядке вместо ранжирования, что вам и нужно, когда задача - 'что этот продукт умеет', а не поиск. ЧТОБЫ ПЕРЕЙТИ НА СТРАНИЦУ, отправьте offset: каждый ответ несёт offset и, когда совпало больше, next_offset - отправьте ТОТ ЖЕ запрос с этим значением. next_offset отсутствует на последней странице, так что идите, пока он не остановится, а не…

Параметры
  • entitystring

    Ограничивает одну сущность (listProducts перечисляет их).

  • limitnumber

    Максимум результатов, по умолчанию 100.

  • modeenum

    Ограничивает выбор чтением или записью. Если пропустить, решение принимает запрос.

  • offsetnumber

    Пропускает столько результатов: отправьте next_offset из предыдущего ответа с ТЕМ ЖЕ запросом, чтобы получить следующую страницу. Для первой страницы не указывайте.

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

    Какой продукт искать, с названием точно как его пишет listProducts. Вызовите listProducts с запросом пользователя, чтобы получить название и выяснить, нет ли конфликта между продуктами из-за него; в таком случае сначала спросите пользователя.

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

    Что вы пытаетесь сделать, простыми словами. Передайте '*' (или 'all'), чтобы ПРОСМОТРЕТЬ вместо поиска: каждую возможность продукта, в стабильном порядке, с пагинацией - используйте это, когда хотите увидеть общую картину, а не найти что-то одно.

  • routing_tokenstring

    routing_token из последнего вызова listProducts или отказа product_ambiguous: он несёт подписанный вывод, который этот шаг сделал о запросе пользователя. Всегда передавайте самый свежий. Когда он сообщает о конфликте, отправляйте ответ пользователя в user_words вместе с ним; по отдельности они не работают.

  • user_wordsstring

    СОБСТВЕННЫЕ СЛОВА ПОЛЬЗОВАТЕЛЯ, дословно, которые определяют, какой это продукт: либо название продукта, либо термин, который использует только один продукт ('quality gate', 'test plan'). Цитируйте их; не перефразируйте и не пишите слова, которых пользователь не говорил. Когда запрос может относиться к любому из продуктов, именно это снимает отказ, потому что проверяется по индексу, а не принимается на веру.

setupBrowserStackAppAutomateTestsтолько чтениеидемпотентный

Настраивает интеграцию SDK BrowserStack App Automate для тестирования мобильных приложений на основе Appium. ТОЛЬКО для фреймворка на основе Appium. Этот инструмент настраивает SDK для различных языков с Appium. Для готовых тестовых наборов Espresso или XCUITest используйте 'runAppTestsOnBrowserStack' вместо этого.

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

    Путь к файлу мобильного приложения (.apk для Android, .ipa для iOS). Может быть локальным путем к файлу или URL-адресом BrowserStack (bs://).

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

    Фреймворк мобильной автоматизации, настроенный в проекте. Пример: 'appium'

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

    Язык программирования, используемый в проекте. Поддерживает Java и C#. Пример: 'java', 'csharp'

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

    Тестовый фреймворк, используемый в проекте. Точно выбирайте фреймворк. Пример: 'testng', 'behave', 'pytest', 'robot'

  • devicesobject[]

    Кортежи, описывающие целевые мобильные устройства. Добавляйте устройство только когда пользователь явно просит об этом. По умолчанию: [] . Пример: [['android', 'Samsung Galaxy S24', '14'], ['ios', 'iPhone 15', '17']]

  • projectstring

    Название проекта для организации тестовых запусков на BrowserStack.

setupBrowserStackAutomateTestsтолько чтениеидемпотентный

Настраивает и запускает автоматизированные веб-тесты на BrowserStack с помощью BrowserStack SDK. Используйте этот инструмент только для настройки функциональных или интеграционных тестов на BrowserStack. Для любого визуального тестирования или интеграции Percy используйте специальный инструмент настройки Percy. Примеры запросов: run this test on browserstack; set up this project for browserstack.

Параметры
  • detectedBrowserAutomationFrameworkenumобязательный
  • detectedLanguageenumобязательный
  • detectedTestingFrameworkenumобязательный
  • devicesobject[]

    Массив объектов устройств. Используйте формат объекта напрямую - преобразование не требуется. Добавляйте только тогда, когда пользователь явно запрашивает устройства. Примеры: [{ platform: 'windows', osVersion: '11', browser: 'chrome', browserVersion: 'latest' }] или [{ platform: 'android', deviceName: 'Samsung Galaxy S24', osVersion: '14', browser: 'chrome' }].

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

    Единое имя для вашего проекта, чтобы организовать все ваши тесты.

startAccessibilityScanвнешний мир

Запускает проверку доступности через BrowserStack и получает путь к локальному CSV-отчёту.

Параметры
  • advancedRulesboolean

    Включите расширенные правила доступности в настройках сканирования.

  • authConfigIdnumber

    Необязательный ID конфигурации аутентификации для аутентифицированных сканирований.

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

    Название сканирования доступности

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

    URL для проверки на проблемы доступности

submitFeedback

Сообщает в BrowserStack о блокере, ошибке инструмента, отсутствующей возможности или отзыве пользователя. Никогда не включайте PII или учётные данные.

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

    Тип отчёта

  • intentstring

    Чего пользователь пытался добиться

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

    Что вы пытались сделать, что произошло, что ожидали

  • toolNamestring

    Инструмент, к которому относится отчёт, если он есть

takeAppScreenshot

Делает снимок экрана приложения, работающего на устройстве BrowserStack. Это полезно для визуального тестирования и отладки.

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

    Путь к файлу .apk или .ipa. Требуется для установки приложения. Файл должен находиться внутри каталога, заданного в MCP_UPLOAD_BASE_DIR.

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

    Полное имя устройства, на котором будет запускаться приложение. Пример: «iPhone 12 Pro» или «Samsung Galaxy S20». Всегда спрашивай пользователя, какое устройство он хочет использовать.

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

    Платформа для запуска приложения. Либо 'android', либо 'ios'.

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

    Версия платформы, на которой запускается приложение. Используйте 'latest' или 'oldest' для динамического разрешения.

updateTestCaseидемпотентный

Обновляет существующий тест-кейс в BrowserStack Test Management. Можно изменить любое подмножество следующих полей: name, description, preconditions, test_case_steps, owner, priority, case_type, automation_status, status, tags, issues, custom_fields. Изменяются только переданные поля. Требуется идентификатор проекта (PR-*). Здесь нет инструмента, который выводит список проектов, поэтому если у вас его нет, вызовите функции capability, чтобы получить список проектов Test Management, затем повторите вызов этого инструмента с идентификатором, который они вернут.

Параметры
  • automation_statusstring

    Обновлённый статус автоматизации. Используйте внутреннее имя, например: 'not_automated', 'automated', 'automation_not_required', 'cannot_be_automated', или 'obsolete'.

  • case_typestring

    Обновлённый тип тест-кейса. Принимает либо отображаемое имя (например, 'Functional', 'Regression', 'Smoke & Sanity'), либо внутреннее имя (например, 'functional', 'smoke_sanity'). Допустимые значения зависят от проекта.

  • custom_fieldsobject

    Сопоставление имени настраиваемого поля NAME со значением; для полей с множественным выбором используйте массив.

  • descriptionstring

    Обновлённое краткое описание тестового примера.

  • issuesstring[]

    Список замен ID связанных задач Jira/Asana/Azure для тест-кейса.

  • namestring

    Обновлённое название тестового примера.

  • ownerstring

    Email владельца тест-кейса.

  • preconditionsstring

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

  • prioritystring

    Обновлённый приоритет. Принимает либо отображаемое имя (например, 'Medium', 'Critical', 'High', 'Low'), либо внутреннее имя (например, 'medium'). Допустимые значения зависят от проекта и доступны через endpoint form-fields.

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

    Идентификатор проекта BrowserStack, содержащего тест-кейс для обновления.

  • statusstring

    Обновлён статус рецензирования тестового случая (например, 'active', 'draft', 'in_review', 'outdated', 'rejected').

  • tagsstring[]

    Список замен тегов для тест-кейса.

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

    Идентификатор тестового случая для обновления. Его можно найти с помощью инструмента listTestCases.

  • test_case_stepsobject[]

    Обновлённый список шагов тестовых сценариев с ожидаемыми результатами.

updateTestRunидемпотентный

Обновляет метаданные тестового прогона и/или добавляет в него тест-кейсы. Требует идентификатор проекта (PR-*). Ни один инструмент здесь не выводит список проектов, поэтому если у вас его нет, используйте функции capability, чтобы получить список проектов Test Management, затем снова вызовите этот инструмент с идентификатором, который они вернут.

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

    Идентификатор проекта (начинается с 'PR-')

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

    Идентификатор тестового прогона (например, TR-678)

uploadProductRequirementFile

Загружает файлы (например, PDRs, PDFs) в BrowserStack Test Management и получает file mapping ID. Это используется для генерации тест-кейсов из файлов и входит в состав Test Case Generator AI Agent в BrowserStack. Требует идентификатор проекта (PR-*). Ни один инструмент здесь не выводит список проектов, поэтому если у вас его нет, используйте capability functions, чтобы вывести список проектов Test Management, затем повторите вызов этого инструмента с идентификатором, который они вернут.

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

    Полный путь к файлу, который нужно загрузить. Должен находиться внутри каталога, заданного через переменную окружения MCP_UPLOAD_BASE_DIR.

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

    ID проекта, в который нужно загрузить файл. Не предполагайте его значение, всегда спрашивайте его у пользователя.

2.2.4основная
2.2.3-beta.2
2.2.4-beta.1
2.3.0-beta.4
2.3.0-beta.3
2.2.3
2.3.0-beta.2
2.2.3-beta.1
2.3.0-beta.1
2.2.2-beta.2
2.2.2-beta.1
2.2.2
2.2.1
2.2.1-beta.1
2.2.0
2.1.1-beta.2
2.2.0-beta.2
2.0.0-beta.1
1.5.0-beta.26
2.1.1
2.1.1-beta.1
1.5.0-beta.25
2.2.0-beta.1
2.1.0
2.0.0
1.5.0-beta.24
1.5.0-beta.23
1.5.1
1.5.1-beta.2
1.5.1-beta.1
1.5.0-beta.22
1.5.0
1.5.0-beta.21
1.5.0-beta.20
1.5.0-beta.19
1.5.0-beta.18
1.5.0-beta.17
1.4.2
1.4.2-beta.1
1.4.1
1.4.1-beta.1
1.4.0
1.3.4
1.3.4-beta.1
1.5.0-beta.16
1.5.0-beta.15
1.3.3
1.5.0-beta.14
1.3.3-beta.1
1.5.0-beta.13
1.5.0-beta.12
1.5.0-beta.11
1.5.0-beta.10
1.5.0-beta.9
1.5.0-beta.8
1.3.2
1.5.0-beta.7
1.3.2-beta.2
1.5.0-beta.6
1.5.0-beta.5
1.5.0-beta.4
1.5.0-beta.3
1.3.2-beta.1
1.4.0-beta.3
1.5.0-beta.2
1.5.0-beta.1
1.4.0-beta.2
1.4.0-beta.1
1.3.1
1.3.1-beta.1
1.3.0
1.2.36-beta.2
1.2.36
1.2.36-beta.1
1.2.35
1.2.35-beta.1
1.2.34
1.2.34-beta.1
1.2.33
1.2.33-beta.2
1.2.33-beta.1
1.2.32
1.2.15-beta.3
1.2.31
1.2.30
1.2.27-beta.3
1.2.29-beta.1
1.2.28
1.2.27-beta.2
1.2.27-beta.1
1.2.27
1.2.25
1.2.25-beta.1
1.2.24
1.2.23-beta.2
1.2.23
1.2.23-beta.1
1.2.22
1.2.22-beta.1
1.2.21
1.2.21-beta.2
1.2.21-beta.1
1.2.20
1.2.20-beta.1
1.2.19
1.2.18-beta.1
1.2.18
1.2.17
1.2.17-beta.1
1.2.16
1.2.16-beta.1
1.2.15-beta.2
1.2.15-beta.1
1.2.14
1.2.13-beta.1
1.2.12-beta.3
1.2.12-beta.2
1.2.13
1.2.12-beta.1
1.2.12
1.2.11-beta.2
1.2.11
1.2.11-beta.1
1.2.10
1.2.9-beta.2
1.2.9-beta.1
1.2.8-beta.2
1.2.8
1.2.8-beta.1
1.2.7
1.2.6-beta.2
1.2.6-beta.1
1.2.6
1.2.5
1.2.4
1.2.3-beta.1
1.2.3
1.2.2-beta.1
1.2.2-beta
1.2.2
1.2.1
1.2.0
1.1.9
1.1.8
1.1.7
1.1.6
1.1.5
1.1.4
1.1.3
1.1.2
1.1.1
1.1.0
1.0.15
1.0.14
1.0.13
1.0.12
1.0.11
1.0.10
1.0.9
1.0.8
1.0.6
1.0.5
1.0.4
1.0.3
1.0.2
1.0.1
1.0.0

Выберите клиент, чтобы установить browserstack/mcp-server:

Любой клиент

Конфиг добавления MCP сервера стандартный, обычно он не меняется вообще, поэтому подходит практически к любому ИИ клиенту, поддерживающему MCP.

{
  "mcpServers": {
    "browserstack-mcp-server-j1qx": {
      "command": "npx",
      "args": [
        "-y",
        "@browserstack/mcp-server@latest"
      ],
      "env": {
        "BROWSERSTACK_USERNAME": "<username>",
        "BROWSERSTACK_ACCESS_KEY": "<access_key>"
      }
    }
  }
}
CursorCursor

Перейдите по ссылке и сервер автоматически будет добавлен в Cursor. Либо откройте/создайте файл ~/.cursor/mcp.json(%USERPROFILE%\.cursor\mcp.json на Windows) и добавьте конфиг сервера:

{
  "mcpServers": {
    "browserstack-mcp-server-j1qx": {
      "command": "npx",
      "args": [
        "-y",
        "@browserstack/mcp-server@latest"
      ],
      "env": {
        "BROWSERSTACK_USERNAME": "<username>",
        "BROWSERSTACK_ACCESS_KEY": "<access_key>"
      }
    }
  }
}
VS Code

Создайте .vscode/mcp.json в проекте (ключ верхнего уровня — servers):

{
  "servers": {
    "browserstack-mcp-server-j1qx": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@browserstack/mcp-server@latest"
      ],
      "env": {
        "BROWSERSTACK_USERNAME": "<username>",
        "BROWSERSTACK_ACCESS_KEY": "<access_key>"
      }
    }
  }
}

Либо добавьте сервер через терминал:

code --add-mcp "{\"name\":\"browserstack-mcp-server-j1qx\",\"type\":\"stdio\",\"command\":\"npx\",\"args\":[\"-y\",\"@browserstack/mcp-server@latest\"],\"env\":{\"BROWSERSTACK_USERNAME\":\"<username>\",\"BROWSERSTACK_ACCESS_KEY\":\"<access_key>\"}}"
ClaudeClaude Desktop

Откройте Settings → Developer → Edit Config — это откроет файл claude_desktop_config.json:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Впишите сервер и полностью перезапустите Claude Desktop:

{
  "mcpServers": {
    "browserstack-mcp-server-j1qx": {
      "command": "npx",
      "args": [
        "-y",
        "@browserstack/mcp-server@latest"
      ],
      "env": {
        "BROWSERSTACK_USERNAME": "<username>",
        "BROWSERSTACK_ACCESS_KEY": "<access_key>"
      }
    }
  }
}
Claude CodeClaude Code

Добавьте сервер одной командой в терминале:

claude mcp add browserstack-mcp-server-j1qx --env BROWSERSTACK_USERNAME=<username> --env BROWSERSTACK_ACCESS_KEY=<access_key> -- npx -y @browserstack/mcp-server@latest

Либо через JSON-конфиг:

claude mcp add-json browserstack-mcp-server-j1qx "{\"command\":\"npx\",\"args\":[\"-y\",\"@browserstack/mcp-server@latest\"],\"env\":{\"BROWSERSTACK_USERNAME\":\"<username>\",\"BROWSERSTACK_ACCESS_KEY\":\"<access_key>\"}}"
CodexCodex

Добавьте сервер командой в терминале:

codex mcp add browserstack-mcp-server-j1qx --env BROWSERSTACK_USERNAME=<username> --env BROWSERSTACK_ACCESS_KEY=<access_key> -- npx -y @browserstack/mcp-server@latest

Либо вручную в ~/.codex/config.toml(%USERPROFILE%\.codex\config.toml на Windows):

[mcp_servers.browserstack-mcp-server-j1qx]
command = "npx"
args = ["-y", "@browserstack/mcp-server@latest"]

[mcp_servers.browserstack-mcp-server-j1qx.env]
BROWSERSTACK_USERNAME = "<username>"
BROWSERSTACK_ACCESS_KEY = "<access_key>"
PerplexityPerplexity

MCP доступен подписчикам Perplexity Pro / Max / Enterprise. Локальные серверы — только в приложении для macOS.

  1. Откройте Настройки аккаунта → Connectors.
  2. Установите вспомогательное приложение PerplexityXPC (один раз).
  3. Нажмите Add Connector → вкладка Simple.
  4. В поле Server Name укажите browserstack/mcp-server, а в поле команды запуска — строку ниже:
npx -y @browserstack/mcp-server@latest

Нажмите Save и дождитесь статуса Running.

WindsurfWindsurf

Откройте Windsurf Settings → Cascade → MCP Servers или отредактируйте файл ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "browserstack-mcp-server-j1qx": {
      "command": "npx",
      "args": [
        "-y",
        "@browserstack/mcp-server@latest"
      ],
      "env": {
        "BROWSERSTACK_USERNAME": "<username>",
        "BROWSERSTACK_ACCESS_KEY": "<access_key>"
      }
    }
  }
}
ClineCline

В панели Cline нажмите иконку MCP Servers → Configure → Configure MCP Servers (или отредактируйте ~/.cline/mcp.json) и добавьте сервер:

{
  "mcpServers": {
    "browserstack-mcp-server-j1qx": {
      "command": "npx",
      "args": [
        "-y",
        "@browserstack/mcp-server@latest"
      ],
      "env": {
        "BROWSERSTACK_USERNAME": "<username>",
        "BROWSERSTACK_ACCESS_KEY": "<access_key>"
      },
      "disabled": false,
      "autoApprove": []
    }
  }
}
Continue

Создайте файл в .continue/mcpServers/ (например browserstack-mcp-server-j1qx.yaml) или добавьте блок в config.yaml. MCP работает только в режиме agent:

mcpServers:
  - name: browserstack-mcp-server-j1qx
    command: npx
    args:
      - "-y"
      - "@browserstack/mcp-server@latest"
    env:
      BROWSERSTACK_USERNAME: <username>
      BROWSERSTACK_ACCESS_KEY: <access_key>
Zed

Выполните agent: add context server или откройте настройки (zed: open settings file) и добавьте сервер в объект context_servers:

{
  "context_servers": {
    "browserstack-mcp-server-j1qx": {
      "command": "npx",
      "args": [
        "-y",
        "@browserstack/mcp-server@latest"
      ],
      "env": {
        "BROWSERSTACK_USERNAME": "<username>",
        "BROWSERSTACK_ACCESS_KEY": "<access_key>"
      }
    }
  }
}

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

Hypersequent/qasphere-mcp

Hypersequent/qasphere-mcp

от hypersequent

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

TypeScript⭐ 23
TCSoftInc/testcollab-mcp-server

TCSoftInc/testcollab-mcp-server

от tcsoftinc

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

TypeScript⭐ 4
testdino-hq/testdino-mcp

testdino-hq/testdino-mcp

от testdino-hq

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

TypeScript⭐ 9
qainsights/jmeter-mcp-server

qainsights/jmeter-mcp-server

от qainsights

MCP инструмент для выполнения JMeter тестов и анализа производительности. Запускает нагрузочные тесты, парсит JTL-отчёты, выявляет узкие места и генерирует HTML-дашборды. Пригодится QA-инженерам и ...

Python⭐ 74
executeautomation/playwright-mcp-server

executeautomation/playwright-mcp-server

от executeautomation

Управляет браузером через Playwright: открывает страницы, делает скриншоты, извлекает данные, эмулирует 143 устройства и пишет автотесты.

TypeScript⭐ 5668
saranshbamania/mobile-device-mcp

saranshbamania/mobile-device-mcp

от saranshbamania

MCP сервер для AI coding assistants, позволяющий видеть и управлять мобильными устройствами. 49 инструментов: скриншоты, Flutter widget tree, AI визуальный анализ, запись видео и генерация тестов. Ускоряет отладку и тестирование без ручных действий.

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

Лука Никитин