RobotMCP
🤖 RobotMCP — ИИ-мост для автоматизации тестирования
Простой английский на входе, настоящие тесты Robot Framework на выходе — а печатает за вас ИИ-агент.
RobotMCP (rf-mcp) — это сервер Model Context Protocol (MCP), который даёт вашему
кодинг-агенту ключи от Robot Framework. Агент обнаруживает ключевые слова, выполняет шаги вживую
против Browser, Selenium, Appium, Requests, базы данных или рабочего стола, видит, что
происходит на самом деле, и — как только шаги проходят — пишет вам чистый .robot-сьют.
Никаких угаданных локаторов, никаких галлюцинированных ключевых слов, никакого «работает на моей машине». Построен на
Robot Framework: с открытым исходным кодом и постоянно развивается.
Впервые с rf-mcp? Переходите к Началу работы. Хотите полную картину? Смотрите справочник инструментов MCP, конфигурацию и примеры из практики.
📺 Видеоурок

Вступление
https://github.com/user-attachments/assets/ad89064f-cab3-4ae6-a4c4-5e8c241301a1
✨ Быстрый старт
Три команды и одно предложение. Вот и вся настройка.
1️⃣ Установите как инструмент
Предварительные требования?
Установите Python +v3,12
От имени администратора в Powershell > winget install astral-sh.uv # Чтобы включить команды uv
Установите VScode и расширения (GitHub copilot и выполните вход) # Чтобы включить терминалы агента
Установите расширения Vscode Material Icon themes, Save Typing, Dracula, Robocorp # Чтобы включить robot framework
# Everything (Browser, Selenium, Appium, Requests, Database)
uv tool install "rf-mcp[all]"
# ...or just what you need — API testing is pure Python, nothing else to do:
uv tool install "rf-mcp[api]"Это добавляет команду robotmcp в ваш PATH. Дополнительные пакеты определяют, какие тестовые библиотеки
подключатся — см. таблицу дополнительных пакетов в разделе «Установка».
2️⃣ Подключите к вашему кодинг-агенту
robotmcp init # detects libraries, prints the MCP config to paste
robotmcp install # registers rf-mcp into the agents it findsrobotmcp install записывает правильную конфигурацию MCP для Claude Code, Codex, GitHub
Copilot, opencode, Gemini CLI, Kilo Code, goose и Cursor — для каждого в своём
формате, не затрагивая ваши другие серверы. Предпочитаете вручную? Каждый агент
принимает:
{ "mcpServers": { "robotmcp": { "command": "robotmcp" } } }{
"servers": {
"robotmcp": {
"type": "stdio",
"command": "uv",
"args": ["run", "-m", "robotmcp.server"],
"env": { "UV_COMPILE_BYTECODE": "1" }
}
}
}
UV_COMPILE_BYTECODE=1предварительно компилирует дерево зависимостей при установке. Без этого первый запуск сервера после установки/обновления тратит несколько секунд на компиляцию.pycдо завершения рукопожатия MCP (некоторые клиенты выходят по таймауту и показывают сервер как недоступный). Это разовая стоимость на этапе установки.
HTTP
Запустите MCP-сервер с HTTP-транспортом:
uv run -m robotmcp.server --transport http --host 127.0.0.1 --port 8000Затем настройте вашего ИИ-агента:
{
"servers": {
"robotmcp": {
"type": "http",
"url": "http://localhost:8000/mcp"
}
}
}Claude Code
claude mcp add rf-mcp -- uvx rf-mcp3️⃣ Начните тестировать — просто спросите
Use #robotmcp to create a TestSuite and execute it step wise.
Create a test for https://www.saucedemo.com/ that:
- Logs in to https://www.saucedemo.com/ with valid credentials
- Adds two items to cart
- Completes checkout process
- Verifies success message
Use Selenium Library.
Execute the test suite stepwise and build the final version afterwards.Вот и всё. rf-mcp проводит агента через обнаружение, живое выполнение и генерацию сьютов — вы просто описываете тест.
Related MCP server: robotframework-mcp
📚 Документация
Руководство | Что внутри |
Установка, подключение к агенту, запуск первого теста | |
Каждый инструмент, который rf-mcp предоставляет агенту — параметры, возвраты, когда его использовать | |
Каждая переменная окружения | |
Готовые к копированию сценарии для веб / API / мобильных / рабочего стола / BDD / data-driven | |
Научите rf-mcp работать с вашими собственными библиотеками Robot Framework | |
Управляйте поведением агента для каждого проекта |
🛠️ Установка
В Быстром старте описан рекомендуемый путь (uv tool install). В этом
разделе — таблица дополнительных пакетов, альтернативные способы установки и полные детали
регистрации агента.
Дополнительные пакеты
Дополнительные пакеты определяют, какие библиотеки Robot Framework подключатся:
Extra | Добавляет | После установки |
| RequestsLibrary | нет |
| SeleniumLibrary + Browser | Selenium: нет (Selenium Manager сам загружает драйвер); Browser: |
| AppiumLibrary | сервер Appium (внешний) |
| DatabaseLibrary | драйвер БД |
| PlatynUI для нативного рабочего стола (Windows/Linux) | Python 3.12+ |
| Django-дашборд | — |
| Постоянная семантическая память (sqlite-vec + model2vec) |
|
| все библиотеки Robot Framework выше (включая | как указано выше |
Browser Library также требует браузеры Playwright — выполните robotmcp init --browsers (или
rfbrowser init) один раз, внутри собственного окружения rf-mcp. Node.js нужен только для Browser.
Другие способы установки
pip install "rf-mcp[all]" # pip instead of uv
uv add "rf-mcp[all]" && uv sync # into an existing uv project
# From source (development)
git clone https://github.com/manykarim/rf-mcp.git && cd rf-mcp
uv sync --all-extras --devDocker
Готовые образы (headless для CI, плюс образ с VNC для визуальной отладки):
docker pull ghcr.io/manykarim/rf-mcp:latest # headless
docker run -p 8000:8000 -p 8001:8001 ghcr.io/manykarim/rf-mcp:latest # HTTP + frontend
docker run -it --rm ghcr.io/manykarim/rf-mcp:latest uv run robotmcp # STDIO
docker pull ghcr.io/manykarim/rf-mcp-vnc:latest # X11 desktop over VNC/noVNC
docker run -p 8000:8000 -p 8001:8001 -p 5900:5900 -p 6080:6080 ghcr.io/manykarim/rf-mcp-vnc:latestHeadless включает Chromium, Firefox ESR и браузеры Playwright. Порты VNC: 8000 (MCP HTTP), 8001 (frontend), 5900 (VNC), 6080 (noVNC — http://localhost:6080/vnc.html).
Регистрация в кодинг-агентах
robotmcp list # supported agents + what's detected/registered
robotmcp install # interactive: registers into detected agents
robotmcp install --agents claude-code,codex,gemini
robotmcp install --agents all --scope user
robotmcp install --dry-run # show the plan, write nothing
robotmcp uninstall # safe, reversible removalПоддерживаемые агенты (каждый записывается в свой файл/формат, другие MCP-серверы сохраняются):
Claude Code, OpenAI Codex, GitHub Copilot, opencode, Gemini CLI, Kilo Code, goose,
Cursor (плюс pi, указан как запланированный, пока его конфигурация не подтверждена).
Использует окружение вашего проекта. Установите в проект с собственным настроенным
окружением (uv, poetry, pdm, pipenv, rye, hatch или обычный .venv) — и rf-mcp будет
работать именно с этим окружением, то есть видит библиотеки, ключевые слова и ресурсы вашего
проекта, а не только встроенные. Он запускает разрешённую команду и проверяет, что ваши библиотеки
доступны до записи конфигурации; слепая или сломанная команда отклоняется. Глобальная
установка через uvx / uv tool по-прежнему обслуживает каждый проект без настройки на проект.
Укажите -C <dir>, согласитесь на установку rf-mcp в окружение проекта с помощью --into-project
и выполните robotmcp doctor --project-dir <dir>, чтобы увидеть, какие из ваших библиотек
достигаются при запуске.
Область действия. Установка по умолчанию использует --scope project (записывает в текущий
проект, например, ./.mcp.json), если агент это поддерживает; используйте --scope user для
глобальной (домашней) установки. goose поддерживает только user scope; GitHub Copilot — только
project scope.
Безопасно и обратимо. Каждое изменение фиксируется в манифесте с отслеживанием хэшей
(~/.local/state/robotmcp/install-manifest.json). robotmcp uninstall удаляет только те записи,
которые не менялись с момента установки — вручную отредактированная запись остаётся на месте и
сообщается, а посторонние серверы никогда не затрагиваются. Предпочитаете редактировать конфиг
сами? Добавьте { "mcpServers": { "robotmcp": { "command": "robotmcp" } } }.
🔌 Плагины библиотек
Расширяйте RobotMCP с помощью пользовательских библиотек через систему плагинов. Доступны два режима обнаружения:
Точки входа (
robotmcp.library_plugins) для упакованных плагинов.Файлы манифеста (JSON) в
.robotmcp/plugins/для переопределений в рабочем пространстве.
Подробные инструкции см. в Руководстве по созданию плагинов библиотек, а для быстрого старта изучите пример плагина в examples/plugins/sample_plugin.
🖥️ Фронтенд-дашборд
RobotMCP поставляется с опциональным дашбордом на Django, который отображает активные сессии, ключевые слова и активность инструментов.

Установите дополнительные пакеты для фронтенда
pip install rf-mcp[frontend]Запустите MCP-сервер с включённым фронтендом
uv run -m robotmcp.server --with-frontendURL по умолчанию: http://127.0.0.1:8001/
Быстрые переключатели:
--frontend-host,--frontend-port,--frontend-base-pathЭквиваленты в окружении:
ROBOTMCP_ENABLE_FRONTEND=1,ROBOTMCP_FRONTEND_HOST,ROBOTMCP_FRONTEND_PORT,ROBOTMCP_FRONTEND_BASE_PATH,ROBOTMCP_FRONTEND_DEBUG
Подключите ваш MCP-клиент (Cline, Claude Desktop и т. д.) к тому же процессу сервера — дашборд автоматически транслирует события, как только сессия активна.
Чтобы отключить дашборд для конкретного запуска, либо не передавайте флаг, либо передайте --without-frontend.
📋 Шаблоны инструкций
RobotMCP отправляет инструкции уровня сервера LLM через ответ MCP initialize, направляя их на обнаружение ключевых слов перед выполнением. Это значительно сокращает количество неудачных вызовов инструментов и потраченных токенов, особенно для небольших LLM.
Конфигурация
Три переменные окружения управляют поведением инструкций:
Переменная | Значения | По умолчанию |
|
|
|
|
|
|
| Путь к файлу | (нет, требуется при mode=custom) |
|
|
|
| установите | (выкл) |
Вывод и журналирование. Канал MCP stdio (stdout) несёт только JSON-RPC; все журналы и однострочный баннер готовности идут в stderr. По умолчанию журналирование установлено на
WARNING, чтобы не заваливать клиента — установитеROBOTMCP_LOG_LEVEL=INFO/DEBUGдля устранения неполадок. Журналирование никогда не блокирует выполнение (оно обрабатывается в фоновом потоке с отбрасыванием при переполнении), и fd 1 никогда не перенаправляется из-под транспорта.
Встроенные шаблоны
Шаблон | ~Токенов | Для чего лучше всего |
| ~40 | Мощные LLM (Claude Opus, GPT-4) — только краткое напоминание |
| ~400 | LLM среднего уровня (Claude Sonnet, GPT-4o) — сбалансированное руководство |
| ~600 | Менее мощные LLM (Claude Haiku, GPT-4o-mini) — пошагово с примерами |
| ~350 | Сценарии тестирования только в вебе |
| ~300 | Сценарии тестирования только через API |
Пример
{
"servers": {
"robotmcp": {
"type": "stdio",
"command": "uv",
"args": ["run", "-m", "robotmcp.server"],
"env": {
"ROBOTMCP_INSTRUCTIONS": "default",
"ROBOTMCP_INSTRUCTIONS_TEMPLATE": "detailed"
}
}
}
}Пользовательские инструкции
Установите ROBOTMCP_INSTRUCTIONS=custom и укажите файл через ROBOTMCP_INSTRUCTIONS_FILE. Пользовательские файлы поддерживают подстановку плейсхолдера {available_tools}. Допустимые расширения: .txt, .md, .instruction, .instructions. Если файл отсутствует или не проходит проверку, сервер автоматически переключается на шаблон standard.
Полное руководство см. в docs/INSTRUCTION_TEMPLATES_GUIDE.md.
🪝 Мост отладки (Debug Attach Bridge)
https://github.com/user-attachments/assets/8d87cd6e-c32e-4481-9f37-48b83f69f72f
RobotMCP поставляется с robotmcp.attach.McpAttach — легковесной библиотекой Robot Framework, которая предоставляет живой ExecutionContext через HTTP-мост на localhost. Когда вы отлаживаете набор тестов из VS Code (RobotCode) или другой IDE, мост позволяет RobotMCP переиспользовать переменные, импорты и порядок поиска ключевых слов внутри процесса, вместо создания отдельного контекста.
Настройка MCP-сервера
Пример конфигурации с переданными переменными окружения для Debug Bridge
С использованием UV
{
"servers": {
"RobotMCP": {
"type": "stdio",
"command": "uv",
"args": ["run", "src/robotmcp/server.py"],
"env": {
"ROBOTMCP_ATTACH_HOST": "127.0.0.1",
"ROBOTMCP_ATTACH_PORT": "7317",
"ROBOTMCP_ATTACH_TOKEN": "change-me",
"ROBOTMCP_ATTACH_DEFAULT": "auto"
}
}
}
}С использованием Docker
{
"servers": {
"RobotMCP": {
"command": "docker",
"args": ["run", "-i", "--rm", "ghcr.io/manykarim/rf-mcp:latest", "uv", "run", "robotmcp"],
"env": {
"ROBOTMCP_ATTACH_HOST": "127.0.0.1",
"ROBOTMCP_ATTACH_PORT": "7317",
"ROBOTMCP_ATTACH_TOKEN": "change-me",
"ROBOTMCP_ATTACH_DEFAULT": "auto"
}
}
}
}Настройка Robot Framework
Импортируйте библиотеку и запустите цикл обслуживания внутри набора тестов, который вы отлаживаете:
*** Settings ***
Library robotmcp.attach.McpAttach token=${DEBUG_TOKEN}
*** Variables ***
${DEBUG_TOKEN} change-me
*** Test Cases ***
Serve From Debugger
MCP Serve port=7317 token=${DEBUG_TOKEN} mode=blocking poll_ms=100
[Teardown] MCP StopMCP Serve port=7317 token=${TOKEN} mode=blocking|step poll_ms=100— запускает HTTP-сервер (если он не запущен) и обрабатывает команды моста. Используйтеmode=stepво время выполнения тела ключевого слова, чтобы обработать ровно один запрос из очереди.MCP Stop— подаёт сигнал циклу обслуживания на выход (используется из набора тестов или удалённо через RobotMCPattach_stop_bridge).MCP Process Once— обрабатывает один ожидающий запрос и немедленно возвращается; полезно, когда набор тестов опрашивает мост между действиями.MCP Start— псевдоним дляMCP Serveдля обратной совместимости.
По умолчанию мост привязывается к 127.0.0.1 и ожидает, что клиенты будут отправлять общий токен в заголовке X-MCP-Token.
Настройка RobotMCP для подключения
Запустите robotmcp.server с маршрутизацией подключения, указав данные для подключения к мосту через переменные окружения (токен должен совпадать с токеном набора тестов):
export ROBOTMCP_ATTACH_HOST=127.0.0.1
export ROBOTMCP_ATTACH_PORT=7317 # optional, defaults to 7317
export ROBOTMCP_ATTACH_TOKEN=change-me # optional, defaults to 'change-me'
export ROBOTMCP_ATTACH_DEFAULT=auto # auto|force|off (auto routes when reachable)
export ROBOTMCP_ATTACH_STRICT=0 # set to 1/true to fail when bridge is unreachable
uv run python -m robotmcp.serverКогда задан ROBOTMCP_ATTACH_HOST, execute_step(..., use_context=true) и другие инструменты, учитывающие контекст, сначала пытаются выполниться внутри живого сеанса отладки. Используйте новые MCP-инструменты для управления мостом из любого агента:
attach_status— сообщает конфигурацию, доступность и диагностику от моста (/diagnostics).attach_stop_bridge— отправляет команду/stop, которая, в свою очередь, запускаетMCP Stopв отлаживаемом наборе тестов.
🎪 Примеры рабочих процессов
🌐 Тестирование веб-приложений (BDD)
Промпт:
Use RobotMCP to create a test suite and execute it step wise.
It shall:
- Open https://demoshop.makrocode.de/
- Add item to cart
- Assert item was added to cart
- Add another item to cart
- Assert another item was added to cart
- Checkout
- Assert checkout was successful
Execute step by step and build final test suite afterwards
Create in BDD style and use Keywords with embedded arguments when applicableРезультат: BDD-стиль набора тестов Robot Framework с ключевыми словами Given/When/Then, встроенными аргументами и извлечёнными переменными.
🌐 Тестирование веб-приложений (на основе данных)
Промпт:
Use RobotMCP to create a test suite and execute it step wise.
It shall:
- Open https://saucedemo.com
- Login with different user/password combinations
- Assert message or login
Execute step by step and build final test suite afterwards
Create in datadriven style and add multiple test rows with different scenarios
Use Test Template setting in suiteРезультат: Набор тестов Robot Framework на основе данных с Test Template и параметризованными строками для каждого сценария входа.
📱 Тестирование мобильных приложений
Промпт:
Use RobotMCP to create a TestSuite and execute it step wise.
It shall:
- Launch app from tests/appium/SauceLabs.apk
- Perform login flow
- Add products to cart
- Complete purchase
Appium server is running at http://localhost:4723
Execute the test suite stepwise and build the final version afterwards.Результат: Набор мобильных тестов с ключевыми словами AppiumLibrary и возможностями устройства.
🔌 Тестирование API
Промпт:
Read the Restful Booker API documentation at https://restful-booker.herokuapp.com.
Use RobotMCP to create a TestSuite and execute it step wise.
It shall:
- Create a new booking
- Authenticate as admin
- Update the booking
- Delete the booking
- Verify each response
Execute the test suite stepwise and build the final version afterwards.Результат: Набор API-тестов с использованием RequestsLibrary и корректной обработкой ошибок.
🧪 Тестирование XML/баз данных
Промпт:
Create a xml file with books and authors.
Use RobotMCP to create a TestSuite and execute it step wise.
It shall:
- Parse XML structure
- Validate specific nodes and attributes
- Assert content values
- Check XML schema compliance
Execute the test suite stepwise and build the final version afterwards.Результат: Тест обработки XML с использованием библиотеки XML Robot Framework.
🔍 MCP-инструменты
rf-mcp предоставляет агенту свои возможности в виде MCP-инструментов, сгруппированных по назначению: планирование и оркестрация, сеанс и выполнение, обнаружение и документация, наблюдаемость и диагностика, жизненный цикл набора тестов, подсказки по локаторам, визуальная проверка и опциональная постоянная память.
Полная справка: docs/MCP_TOOLS.md — каждый инструмент с его параметрами, возвращаемыми значениями и случаями применения. Ваш агент читает эти описания напрямую; вам редко приходится вызывать их вручную.
🧪 Генерация BDD- и data-driven-тестов
Стиль BDD (Given/When/Then)
Промпт:
Use RobotMCP to create a test suite and execute it step wise.
It shall:
- Open https://demoshop.makrocode.de/
- Add item to cart
- Assert item was added to cart
- Add another item to cart
- Assert another item was added to cart
- Checkout
- Assert checkout was successful
Execute step by step and build final test suite afterwards
Create in BDD style and use Keywords with embedded arguments when applicableРезультат: RobotMCP выполняет каждый шаг, проверяет DOM между действиями и генерирует набор тестов в стиле BDD с ключевыми словами Given/When/Then:
*** Test Cases ***
Demoshop BDD Purchase Workflow
Given the demoshop is open
When the user adds the first product to cart
Then the cart should contain 1 item
When the user adds the second product to cart
Then the cart should contain 2 items
When the user proceeds to checkout
And the user fills in the checkout form
And the user places the order
Then the order confirmation should be displayed
*** Keywords ***
the demoshop is open
New Browser chromium
New Context
New Page ${DEMOSHOP_URL}
the user adds the first product to cart
Click ${FIRST_PRODUCT_BUTTON}Во время пошагового выполнения используйте bdd_group и bdd_intent в execute_step, чтобы управлять группировкой шагов в поведенческие ключевые слова. В конце вызовите build_test_suite(bdd_style=True).
Шаблоны на основе данных
Промпт:
Use RobotMCP to create a test suite and execute it step wise.
It shall:
- Open https://saucedemo.com
- Login with different user/password combinations
- Assert message or login
Execute step by step and build final test suite afterwards
Create in datadriven style and add multiple test rows with different scenarios
Use Test Template setting in suiteРезультат: RobotMCP создаёт параметризованный набор тестов с использованием Test Template и именованных строк данных:
*** Settings ***
Library Browser
Test Template Verify Login
*** Test Cases *** USERNAME PASSWORD EXPECTED
Valid User standard_user secret_sauce Products
Locked Out User locked_out_user secret_sauce locked out
Invalid Password standard_user wrong_pass Username and password do not matchИспользуйте manage_session(action="start_test", template="Verify Login"), чтобы задать ключевое слово шаблона, затем manage_session(action="add_data_row", test_name="Valid User", args=["standard_user", "secret_sauce", "Products"]), чтобы добавить каждую строку.
🧠 Оптимизация для небольших LLM
RobotMCP включает оптимизации для небольших и средних LLM (контекстные окна 8K–32K), которые снижают накладные расходы на токены и повышают точность вызовов инструментов.
Динамические профили инструментов
Управляйте тем, какие инструменты видит LLM, в зависимости от фазы рабочего процесса. Меньшие модели видят меньше инструментов, но более компактных:
manage_session(action="set_tool_profile", tool_profile="browser_exec")Профили: browser_exec, api_exec, discovery, minimal_exec, full. Снижает накладные расходы на описание инструментов с ~7 000 до ~1 000 токенов. Также можно задать через переменную окружения ROBOTMCP_TOOL_PROFILE.
Подробность ответов
Управляйте уровнем детализации ответов, чтобы снизить расход токенов. Доступно в большинстве инструментов через параметр detail_level:
minimal— только основная информация (сокращение токенов на 60–80%)standard— сбалансированный вывод (по умолчанию)full— полный подробный вывод
Задайте значение по умолчанию через ROBOTMCP_OUTPUT_VERBOSITY=compact|standard|verbose.
Дельта-ответы о состоянии
get_session_state поддерживает инкрементальные ответы, которые возвращают только те разделы, которые изменились с момента последнего вызова:
# First call returns full state (version 1):
get_session_state(session_id="...", sections=["variables", "page_source"])
# Subsequent calls return only what changed:
get_session_state(session_id="...", mode="delta", since_version=1)В режиме mode="auto" (по умолчанию) сервер автоматически возвращает дельта-ответы, когда существует предыдущая версия. Это снижает расход токенов на 50–80% для многошаговых рабочих процессов, где между шагами меняются только переменные или содержимое страницы.
Вынос артефактов
Большие выходные данные (HTML-исходный код страницы, журналы выполнения, трассировки стека) автоматически выносятся в загружаемые артефакты вместо включения в ответ:
# Response includes artifact_id instead of full content:
{"result": "...", "artifact_id": "abc123", "artifact_hint": "Full page source available via fetch_artifact"}
# Fetch when needed:
fetch_artifact(artifact_id="abc123")Это сохраняет компактность ответов инструментов, обеспечивая при этом доступ к полному выводу по требованию.
Инструмент Intent Action
Инструмент intent_action предоставляет независимую от библиотеки точку входа для типовых действий тестирования. Вместо того чтобы требовать от LLM знания специфичных для библиотеки имён ключевых слов и синтаксиса локаторов, он выражает намерение:
intent_action(intent="click", target="text=Login", session_id="...")
intent_action(intent="fill", target="#username", value="testuser", session_id="...")Сервер сопоставляет намерение + цель с правильным ключевым словом и форматом локатора для активной библиотеки сеанса (Browser, SeleniumLibrary или AppiumLibrary).
Запасной вариант навигации
Когда intent_action(intent="navigate") завершается ошибкой, потому что не открыт браузер или страница, сервер автоматически открывает браузер/страницу и повторяет попытку:
Browser Library: выполняет
New Browser+New Page(или толькоNew Page, если браузер уже существует)SeleniumLibrary: выполняет
Open Browser about:blank chrome
Ответ включает fallback_applied: true и количество шагов fallback_steps. Экономит 2–4 вызова инструментов за сеанс.
Пакетное выполнение
Инструмент execute_batch выполняет несколько ключевых слов за один вызов MCP, сокращая N циклов запрос-ответ до 1. Шаги могут ссылаться на результаты предыдущих шагов через переменные ${STEP_N}:
execute_batch(session_id="...", steps=[
{"keyword": "Go To", "args": ["https://example.com"]},
{"keyword": "Get Title", "assign_to": "title"},
{"keyword": "Should Be Equal", "args": ["${STEP_2}", "Example Domain"]}
], on_failure="recover")Если шаг завершается ошибкой, resume_batch позволяет вставить исправляющие шаги и повторить попытку с точки сбоя.
Подсказки в строгом режиме
Когда ключевое слово Browser Library завершается ошибкой, потому что селектор соответствует нескольким элементам (строгий режим Playwright), ответ об ошибке включает подсказку с предложением >> nth=0 (индекс с нуля) или цепочки селекторов >> visible=true, с конкретными примерами, использующими фактическое имя ключевого слова и количество элементов.
Параметры с ограничением типов
Все параметры action/mode/strategy используют типы Literal, что даёт ограничения enum в JSON Schema. Это исключает выдуманные значения (например, action="setup" вместо action="init"). Все значения принимаются без учёта регистра.
Автоматическое приведение параметров
Частые ошибки небольших LLM исправляются на стороне сервера:
JSON-строки с массивами (
"[\"Browser\"]") преобразуются в нативные массивыСтроки, разделённые запятыми (
"Browser,BuiltIn"), разбиваются на спискиУстаревшие ключевые слова (
GET) сопоставляются с текущими эквивалентами (GET On Session)
Шаблоны инструкций
Настраиваемые серверные инструкции направляют LLM на следование паттерну «сначала обнаружение, затем действие». Выберите шаблон, соответствующий возможностям вашей LLM — от minimal (~40 токенов) для Claude Opus до detailed (~600 токенов) для Claude Haiku. См. Шаблоны инструкций выше.
🧠 Постоянная семантическая память
RobotMCP может учиться на прошлых сеансах и вспоминать успешные паттерны, локаторы и исправления ошибок — сокращая метод проб и ошибок для повторяющихся сценариев тестирования.
Как это работает
Память работает на основе sqlite-vec (векторный поиск) и model2vec (256-мерные эмбеддинги). Когда она включена, сервер:
Сохраняет успешные последовательности шагов, рабочие локаторы и сопоставления ошибка→исправление после каждого вызова инструмента
Вспоминает релевантные воспоминания и внедряет их как подсказки в ответы инструментов (например, ошибки
execute_stepвключают предыдущие исправления,get_session_stateвключает ранее успешные паттерны шагов)Учится между сеансами — тёплая база данных сохраняется между перезапусками сервера
Установка
pip install rf-mcp[memory]
# or
uv pip install rf-mcp[memory]Конфигурация
Включите через переменные окружения:
{
"servers": {
"robotmcp": {
"type": "stdio",
"command": "uv",
"args": ["run", "-m", "robotmcp.server"],
"env": {
"ROBOTMCP_MEMORY_ENABLED": "true",
"ROBOTMCP_MEMORY_DB_PATH": "./memory.db"
}
}
}
}MCP-инструменты памяти
Когда память включена, становятся доступны пять дополнительных инструментов:
Инструмент | Описание |
| Вспоминает ранее успешные последовательности шагов. Вызывайте перед созданием новых шагов теста, чтобы переиспользовать проверенные паттерны. |
| Вспоминает известные исправления для ошибки. Вызывайте немедленно при сбое |
| Вспоминает рабочие локаторы для элемента интерфейса. Вызывайте перед проверкой DOM для знакомых элементов. |
| Сохраняет знания о предметной области (например, структуру сайта, потоки аутентификации) для будущего использования. |
| Проверяет доступность памяти и статистику в начале сеанса. |
Расширение ответов
Подсказки памяти автоматически внедряются в существующие ответы инструментов — сотрудничество LLM не требуется:
Ошибки
execute_step: предыдущие исправления и рабочие локаторы включаются в ответ об ошибкеget_session_state: ранее успешные паттерны шагов для сценария включаются в ответanalyze_scenario: предлагаются вспомненные последовательности шагов из прошлых сеансов
Все обращения к памяти имеют таймаут 50 мс, чтобы не влиять на задержку ответов.
Результаты бенчмарков
Протестировано на 8 сценариях (72 вызова opencode, по 3 итерации в каждом) с qwen/qwen3-coder:
Тип сценария | Лучший результат | Частота восстановления из памяти |
Сложные веб-сценарии (оформление заказа) | -23% вызовов, -22% токенов | 3/3 итерации |
Просмотр с интенсивным исследованием | -44% вызовов на лучшей итерации | 3/3 итерации |
Восстановление после ошибок API | -3% вызовов ±3% (самый узкий CI) | 3/3 итерации |
Преимущества памяти наиболее сильны для сложных многошаговых сценариев, где прошлые локаторы и последовательности шагов сокращают количество исследовательских вызовов инструментов.
⚙️ Конфигурация
rf-mcp работает с разумными настройками по умолчанию; когда вам нужно его настроить, всё находится на расстоянии переменной окружения — шаблоны инструкций, мост attach, экономия вывода/токенов, память, панель управления frontend, безопасность рабочего стола PlatynUI и многое другое.
Полная справка: docs/CONFIGURATION.md — каждая переменная ROBOTMCP_* с допустимыми значениями и значением по умолчанию, а также флаги и подкоманды CLI robotmcp.
🤝 Вклад
Мы приветствуем вклад! Вот как начать:
Форкните репозиторий
Клонируйте свой форк локально
Установите зависимости для разработки:
uv syncСоздайте ветку функции
Добавьте комплексные тесты для новой функциональности
Запустите тесты:
uv run pytest tests/Отправьте pull request
📝 Журнал изменений
v0.34.0 — Нативная автоматизация рабочего стола (
rf-mcp[desktop], PlatynUI, готовность к Windows); установщик с учётом проекта, использующий собственные библиотеки вашего проекта; более компактные инструкции агента; исправления зависания при холодном старте, взаимоблокировки dry-run в Windows и путей сгенерированных наборов; профили инструментов восстановлены на FastMCP 3v0.31.1 — Очистка упаковки (исключение tests/examples из sdist)
v0.31.0 — Генерация BDD/на основе данных, исправления архитектуры пространств имён, постоянная память, сокращение токенов на 71-88%
v0.30.1 — Слой совместимости FastMCP 3.x
v0.30.0 — Оптимизация для малых LLM (профили инструментов, действие по намерению, оптимизация ответов, ограничения типов)
v0.29.0 — Шаблоны инструкций, многотестовые сессии, пакетное выполнение, умные таймауты
📄 Лицензия
Лицензия Apache 2.0 — см. файл LICENSE для подробностей.
⭐ Поставьте нам звезду на GitHub, если RobotMCP помогает вам в автоматизации тестирования!
Сделано с ❤️ для сообщества Robot Framework и AI-автоматизации.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityAmaintenanceRobotMCP is a comprehensive Model Context Protocol (MCP) server that bridges the gap between human language and Robot Framework automation. It enables AI agents to understand test intentions, execute steps interactively, and generate complete test suites from successful executions.19112Apache 2.0
- AlicenseNot gradedqualityDmaintenanceEnables generating Robot Framework test cases with SeleniumLibrary, creating page object models, and performing performance monitoring through natural language.19MIT
- FlicenseNot gradedqualityCmaintenanceEnables AI assistants to execute browser automation, perform QA tasks, and generate test code through natural language commands using Playwright.5
- AlicenseNot gradedqualityDmaintenanceEnables AI models (Claude, ChatGPT, GitHub Copilot) to run and analyze local tests, rerun failures, and orchestrate QA workflows using existing UI and API test frameworks.7MIT
Related MCP Connectors
AI-powered browser automation — navigate, click, fill forms, and extract data from any website.
AI QA tester — real browsers scan sites for bugs, SEO, perf, and accessibility issues via chat.
AI Agent with Architectural Memory. Impact analysis (free), tests and code from the graph (pro).
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/carlos-eduardo-1984/RobotFrameworkMCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server