Skip to main content
Glama

🤖 RobotMCP — ИИ-мост для автоматизации тестирования

Python Robot Framework FastMCP License

Простой английский на входе, настоящие тесты Robot Framework на выходе — а печатает за вас ИИ-агент.

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

Впервые с rf-mcp? Переходите к Началу работы. Хотите полную картину? Смотрите справочник инструментов MCP, конфигурацию и примеры из практики.

📺 Видеоурок

RobotMCP Tutorial

Вступление

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 finds

robotmcp 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-mcp

3️⃣ Начните тестировать — просто спросите

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

📚 Документация

Руководство

Что внутри

Начало работы

Установка, подключение к агенту, запуск первого теста

Справочник инструментов MCP

Каждый инструмент, который rf-mcp предоставляет агенту — параметры, возвраты, когда его использовать

Конфигурация

Каждая переменная окружения ROBOTMCP_* и флаг CLI

Примеры

Готовые к копированию сценарии для веб / API / мобильных / рабочего стола / BDD / data-driven

Плагины библиотек

Научите rf-mcp работать с вашими собственными библиотеками Robot Framework

Шаблоны инструкций

Управляйте поведением агента для каждого проекта


🛠️ Установка

В Быстром старте описан рекомендуемый путь (uv tool install). В этом разделе — таблица дополнительных пакетов, альтернативные способы установки и полные детали регистрации агента.

Дополнительные пакеты

Дополнительные пакеты определяют, какие библиотеки Robot Framework подключатся:

Extra

Добавляет

После установки

api

RequestsLibrary

нет

web

SeleniumLibrary + Browser

Selenium: нет (Selenium Manager сам загружает драйвер); Browser: robotmcp init --browsers

mobile

AppiumLibrary

сервер Appium (внешний)

database

DatabaseLibrary

драйвер БД

desktop

PlatynUI для нативного рабочего стола (Windows/Linux)

Python 3.12+

frontend

Django-дашборд

memory

Постоянная семантическая память (sqlite-vec + model2vec)

ROBOTMCP_MEMORY_ENABLED=true

all

все библиотеки Robot Framework выше (включая desktop на Python 3.12+)

как указано выше

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 --dev

Docker

Готовые образы (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:latest

Headless включает 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, который отображает активные сессии, ключевые слова и активность инструментов.

RobotMCP Frontend Dashboard

  1. Установите дополнительные пакеты для фронтенда

    pip install rf-mcp[frontend]
  2. Запустите MCP-сервер с включённым фронтендом

    uv run -m robotmcp.server --with-frontend
    • URL по умолчанию: 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

  3. Подключите ваш MCP-клиент (Cline, Claude Desktop и т. д.) к тому же процессу сервера — дашборд автоматически транслирует события, как только сессия активна.

Чтобы отключить дашборд для конкретного запуска, либо не передавайте флаг, либо передайте --without-frontend.


📋 Шаблоны инструкций

RobotMCP отправляет инструкции уровня сервера LLM через ответ MCP initialize, направляя их на обнаружение ключевых слов перед выполнением. Это значительно сокращает количество неудачных вызовов инструментов и потраченных токенов, особенно для небольших LLM.

Конфигурация

Три переменные окружения управляют поведением инструкций:

Переменная

Значения

По умолчанию

ROBOTMCP_INSTRUCTIONS

off / default / custom

default

ROBOTMCP_INSTRUCTIONS_TEMPLATE

minimal / standard / detailed / browser-focused / api-focused

standard

ROBOTMCP_INSTRUCTIONS_FILE

Путь к файлу .txt или .md

(нет, требуется при mode=custom)

ROBOTMCP_LOG_LEVEL

DEBUG / INFO / WARNING / ERROR — подробность журнала в stderr

WARNING

ROBOTMCP_MCP_LOG_NOTIFICATIONS

установите 1, чтобы также пересылать журналы клиенту как MCP notifications/message (структурированные, с тегами уровней)

(выкл)

Вывод и журналирование. Канал MCP stdio (stdout) несёт только JSON-RPC; все журналы и однострочный баннер готовности идут в stderr. По умолчанию журналирование установлено на WARNING, чтобы не заваливать клиента — установите ROBOTMCP_LOG_LEVEL=INFO/DEBUG для устранения неполадок. Журналирование никогда не блокирует выполнение (оно обрабатывается в фоновом потоке с отбрасыванием при переполнении), и fd 1 никогда не перенаправляется из-под транспорта.

Встроенные шаблоны

Шаблон

~Токенов

Для чего лучше всего

minimal

~40

Мощные LLM (Claude Opus, GPT-4) — только краткое напоминание

standard

~400

LLM среднего уровня (Claude Sonnet, GPT-4o) — сбалансированное руководство

detailed

~600

Менее мощные LLM (Claude Haiku, GPT-4o-mini) — пошагово с примерами

browser-focused

~350

Сценарии тестирования только в вебе

api-focused

~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 Stop
  • MCP Serve port=7317 token=${TOKEN} mode=blocking|step poll_ms=100 — запускает HTTP-сервер (если он не запущен) и обрабатывает команды моста. Используйте mode=step во время выполнения тела ключевого слова, чтобы обработать ровно один запрос из очереди.

  • MCP Stop — подаёт сигнал циклу обслуживания на выход (используется из набора тестов или удалённо через RobotMCP attach_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-мерные эмбеддинги). Когда она включена, сервер:

  1. Сохраняет успешные последовательности шагов, рабочие локаторы и сопоставления ошибка→исправление после каждого вызова инструмента

  2. Вспоминает релевантные воспоминания и внедряет их как подсказки в ответы инструментов (например, ошибки execute_step включают предыдущие исправления, get_session_state включает ранее успешные паттерны шагов)

  3. Учится между сеансами — тёплая база данных сохраняется между перезапусками сервера

Установка

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-инструменты памяти

Когда память включена, становятся доступны пять дополнительных инструментов:

Инструмент

Описание

recall_step

Вспоминает ранее успешные последовательности шагов. Вызывайте перед созданием новых шагов теста, чтобы переиспользовать проверенные паттерны.

recall_fix

Вспоминает известные исправления для ошибки. Вызывайте немедленно при сбое execute_step, перед повторной попыткой.

recall_locator

Вспоминает рабочие локаторы для элемента интерфейса. Вызывайте перед проверкой DOM для знакомых элементов.

store_knowledge

Сохраняет знания о предметной области (например, структуру сайта, потоки аутентификации) для будущего использования.

get_memory_status

Проверяет доступность памяти и статистику в начале сеанса.

Расширение ответов

Подсказки памяти автоматически внедряются в существующие ответы инструментов — сотрудничество 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.

🤝 Вклад

Мы приветствуем вклад! Вот как начать:

  1. Форкните репозиторий

  2. Клонируйте свой форк локально

  3. Установите зависимости для разработки: uv sync

  4. Создайте ветку функции

  5. Добавьте комплексные тесты для новой функциональности

  6. Запустите тесты: uv run pytest tests/

  7. Отправьте pull request

📝 Журнал изменений

  • v0.34.0 — Нативная автоматизация рабочего стола (rf-mcp[desktop], PlatynUI, готовность к Windows); установщик с учётом проекта, использующий собственные библиотеки вашего проекта; более компактные инструкции агента; исправления зависания при холодном старте, взаимоблокировки dry-run в Windows и путей сгенерированных наборов; профили инструментов восстановлены на FastMCP 3

  • v0.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-автоматизации.

Install Server
A
license - permissive license
B
quality
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • A
    license
    A
    quality
    A
    maintenance
    RobotMCP 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.
    19
    112
    Apache 2.0
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables generating Robot Framework test cases with SeleniumLibrary, creating page object models, and performing performance monitoring through natural language.
    19
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables 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.
    7
    MIT

View all related MCP servers

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).

View all MCP Connectors

Latest Blog Posts

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