Конфигурация
На этой странице документированы все параметры конфигурации для сервера WebdriverIO MCP.
Конфигурация сервера MCP
Сервер MCP настраивается через конфигурационные файлы Claude Desktop или Claude Code.
Базовая конфигурация
macOS
Редактируйте ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"wdio-mcp": {
"command": "npx",
"args": ["-y", "@wdio/mcp"]
}
}
}
Windows
Редактируйте %APPDATA%\Claude\claude_desktop_config.json:
{
"mcpServers": {
"wdio-mcp": {
"command": "npx",
"args": ["-y", "@wdio/mcp"]
}
}
}
Claude Code
Редактируйте .claude/settings.json вашего проекта:
{
"mcpServers": {
"wdio-mcp": {
"command": "npx",
"args": ["-y", "@wdio/mcp"]
}
}
}
Переменные окружения
Настройте соединение с сервером Appium и другие параметры через переменные окружения.
Соединение с Appium
| Переменная | Тип | По умолчанию | Описание |
|---|---|---|---|
APPIUM_URL | string | 127.0.0.1 | Хост сервера Appium |
APPIUM_URL_PORT | number | 4723 | Порт сервера Appium |
APPIUM_PATH | string | / | Путь сервера Appium |
Пример с переменными окружения
{
"mcpServers": {
"wdio-mcp": {
"command": "npx",
"args": ["-y", "@wdio/mcp"],
"env": {
"APPIUM_URL": "192.168.1.100",
"APPIUM_URL_PORT": "4724",
"APPIUM_PATH": "/wd/hub"
}
}
}
}
Опции сессии браузера
Опции, доступные при запуске сессии браузера через инструмент start_browser.
headless
- Тип:
boolean - Обязательно: Нет
- По умолчанию:
false
Запуск Chrome в режиме без интерфейса (без видимого окна браузера). Полезно для сред CI/CD или когда вам не нужно видеть браузер.
windowWidth
- Тип:
number - Обязательно: Нет
- По умолчанию:
1920 - Диапазон:
400-3840
Начальная ширина окна браузера в пикселях.
windowHeight
- Тип:
number - Обязательно: Нет
- По умолчанию:
1080 - Диапазон:
400-2160
Начальная высота окна браузера в пикселях.
navigationUrl
- Тип:
string - Обязательно: Нет
URL для перехода сразу после запуска браузера. Это эффективнее, чем вызов start_browser с последующим вызовом navigate.
Пример: Запуск браузера и переход за один вызов:
Start Chrome and navigate to https://webdriver.io
Опции мобильной сессии
Опции, доступные при запуске сессии мобильного приложения через инструмент start_app_session.
Опции платформы
platform
- Тип:
string - Обязательно: Да
- Значения:
iOS|Android
Мобильная платформа для автоматизации.
platformVersion
- Тип:
string - Обязательно: Нет
Версия ОС устройства/симулятора/эмулятора (например, 17.0 для iOS, 14 для Android).
automationName
- Тип:
string - Обязательно: Нет
- Значения:
XCUITest(iOS),UiAutomator2|Espresso(Android)
Драйвер автоматизации для использования. По умолчанию XCUITest для iOS и UiAutomator2 для Android.
Опции устройства
deviceName
- Тип:
string - Обязательно: Да
Имя устройства, симулятора или эмулятора для использования.
Примеры:
- iOS Simulator:
iPhone 15 Pro,iPad Air (5th generation) - Android Emulator:
Pixel 7,Nexus 5X - Реальное устройство: Имя устройства, как показано в вашей системе
udid
- Тип:
string - Обязательно: Нет (Требуется для реальных устройств iOS)
Уникальный идентификатор устройства. Требуется для реальных устройств iOS (40-символьный идентификатор) и рекомендуется для реальных устройств Android.
Как найти UDID:
- iOS: Подключите устройство, откройте Finder/iTunes, нажмите н а устройство → Серийный номер (нажмите, чтобы увидеть UDID)
- Android: Выполните команду
adb devicesв терминале
Опции приложения
appPath
- Тип:
string - Обязательно: Нет*
Путь к файлу приложения для установки и запуска.
Поддерживаемые форматы:
- iOS Simulator: директория
.app - iOS Real Device: файл
.ipa - Android: файл
.apk
*Должен быть предоставлен либо appPath, либо noReset: true для подключения к уже запущенному приложению.
appWaitActivity
- Тип:
string - Обязательно: Нет (Только для Android)
Активность, которую нужно дождаться при запуске приложения. Если не указано, используется основная активность приложения.
Пример: com.example.app.MainActivity
Опции состояния сессии
noReset
- Тип:
boolean - Обязательно: Нет
- По умолчанию:
false
Сохранять состояние приложения между сессиями. Когда true:
- Данные приложения сохраняются (состояние входа, предпочтения и т.д.)
- Сессия будет отсоединяться, а не закрываться (приложение продолжает работать)
- Полезно для тестирования пользовательских путей в нескольких сессиях
- Можно использовать без
appPathдля подключения к уже запущенному приложению
fullReset
- Тип:
boolean - Обязательно: Нет
- По умолчанию:
true
Полностью сбросить приложение перед сессией. Когда true:
- iOS: Удаляет и переустанавливает приложение
- Android: Очищает данные и кэш приложения
- Полезно для начала с чистого состояния
Установите fullReset: false с noReset: true для полного сохранения состояния приложения.
Таймаут сессии
newCommandTimeout
- Тип:
number - Обязательно: Нет
- По умолчанию:
60
Сколько времени (в секундах) Appium будет ждать новой команды, прежде чем предположить, что клиент вышел, и завершить сессию. Увеличьте это значение для бо лее длительных сессий отладки.
Примеры:
60- По умолчанию, подходит для большинства автоматизаций300- 5 минут, для отладки или более медленных операций600- 10 минут, для очень длительных тестов
Опции автоматической обработки
autoGrantPermissions
- Тип:
boolean - Обязательно: Нет
- По умолчанию:
true
Автоматически предоставлять разрешения приложению при установке/запуске. Когда true:
- Разрешения на камеру, микрофон, местоположение и т.д. предоставляются автоматически
- Не требуется ручная обработка диалогов разрешений
- Оптимизирует автоматизацию, избегая всплывающих окон разрешений
Эта опция в основном влияет на Android. Разрешения iOS должны обрабатываться иначе из-за системных ограничений.
autoAcceptAlerts
- Тип:
boolean - Обязательно: Нет
- По умолчанию:
true
Автоматически принимать системные предупреждения (диалоги), которые появляются во время автоматизации.
Примеры автоматически принимаемых предупреждений:
- "Разрешить уведомления?"
- "Приложение хочет получить доступ к вашему местоположению"
- "Разрешить приложению доступ к фотографиям?"
autoDismissAlerts
- Тип:
boolean - Обязательно: Нет
- По умолчанию:
false
Отклонять (отменять) системные предупреждения вместо их принятия. Имеет приоритет над autoAcceptAlerts при установке в true.
Переопределение сервера Appium
Вы можете переопределить соединение с сервером Appium для каждой сессии:
appiumHost
- Тип:
string - Обязательно: Нет
Хост сервера Appium. Переопределяет переменную окружения APPIUM_URL.
appiumPort
- Тип:
number - Обязательно: Нет
Порт сервера Appium. Переопределяет переменную окружения APPIUM_URL_PORT.
appiumPath
- Тип:
string - Обязательно: Нет
Путь сервера Appium. Переопределяет переменную окружения APPIUM_PATH.
Опции обнаружения элементов
Опции для инструмента get_visible_elements.
elementType
- Тип:
string - Обязательно: Нет
- По умолчанию:
interactable - Значения:
interactable|visual|all
Тип возвращаемых элементов:
interactable: Кнопки, ссылки, поля ввода и другие кликабельные элементыvisual: Изображения, SVG и визуальные элементыall: И интерактивные, и визуальные элементы
inViewportOnly
- Тип:
boolean - Обязательно: Нет
- По умолчанию:
true
Возвращать только элементы, которые видны в текущей области просмотра. При false возвращает все элементы в иерархии представления (полезно для поиска элементов за пределами экрана).
includeContainers
- Тип:
boolean - Обязательно: Нет
- По умолчанию:
false
Включат ь элементы-контейнеры/макеты в результаты. При true:
Включаемые контейнеры Android:
ViewGroup,FrameLayout,LinearLayoutRelativeLayout,ConstraintLayoutScrollView,RecyclerView
Включаемые контейнеры iOS:
View,StackView,CollectionViewScrollView,TableView
Полезно для отладки проблем с макетом или понимания иерархии представления.
includeBounds
- Тип:
boolean - Обязательно: Нет
- По умолчанию:
false
Включать границы/координаты элементов (x, y, ширина, высота) в ответе. Установите true для:
- Взаимодействия на основе координат
- Отладки макета
- Позиционирования визуальных элементов
Опции пагинации
Для больших страниц с множеством элементов используйте пагинацию для уменьшения использования токенов:
limit
- Тип:
number - Обязательно: Нет
- По умолчанию:
0(без ограничений)
Максимальное количество возвращаемых элементов.
offset
- Тип:
number - Обязательно: Нет
- По умолчанию:
0
Количество элементов, которые нужно пропустить перед возвратом результатов.
Пример: Получить элементы 21-40:
Get visible elements with limit 20 and offset 20