RobotMCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| manage_library_pluginsC | Inspect or reload library plugins. |
| recommend_librariesA | Recommend libraries for a scenario or generate/merge sampling prompts. WHEN TO USE THIS TOOL:
This tool analyzes scenario text and suggests relevant libraries, saving you from guessing which libraries to import. |
| analyze_scenarioA | Analyze a natural-language scenario into structured intent and create a session. WORKFLOW: This is the single front door — your FIRST tool call for any test scenario. It CREATES the session, so do NOT also call manage_session(action="init") for the same scenario (that causes redundant session churn). Reuse the returned session_id in every later call. What this tool does:
CRITICAL: Save the session_id from the response and use it in all other tool calls. |
| find_keywordsA | Discover Robot Framework keywords using multiple strategies. WHEN TO USE THIS TOOL:
|
| manage_sessionA | Manage session lifecycle: initialize, configure libraries/variables, and organize tests. For a NEW scenario, prefer analyze_scenario — it is the front door that CREATES the session (and auto-configures libraries). Use manage_session for explicit session ops on an existing session (importing extra libraries/resources/variables, multi-test structure). Do NOT call action="init" right after analyze_scenario — the session already exists; that only causes redundant churn. Workflows: Single test: analyze_scenario -> execute_step (repeat) -> build_test_suite Multi-test: analyze_scenario -> set_suite_setup -> start_test -> execute_step (repeat) -> end_test -> start_test -> ... -> build_test_suite (action="init" is the explicit alternative when you are NOT starting from analyze_scenario, e.g. driving a bare session directly.) Actions and parameters (session_id is always required): Returns: Dict with success, session_id, and action-specific details. On failure: error and guidance fields are present. Examples: Initialize session with libraries: manage_session(action="init", session_id="s1", libraries=["Browser", "BuiltIn", "Collections"]) |
| execute_flowC | Execute structured flow (if/for/try) within a session. |
| get_session_stateC | Retrieve aggregated session state for debugging and visibility. |
| execute_stepB | Execute a single Robot Framework keyword (or Evaluate) within a session. |
| build_test_suiteC | Generate a Robot Framework test suite from previously executed steps. |
| check_library_availabilityA | Verify that specified Robot Framework libraries can be imported/installed. Recommended as step 3 after analyze_scenario and recommend_libraries; use the recommended names to avoid unnecessary checks. |
| execute_batchA | Execute multiple RF keywords in one call with recovery and variable chaining. Reduces N MCP round-trips to 1. Steps run sequentially; each step's return value is available to later steps via ${STEP_N} references in arguments. Both 0-based (${STEP_0} = first step) and 1-based (${STEP_1} = first step) indexing are accepted. When ambiguous, 1-based is preferred. |
| resume_batchA | Resume a failed batch from its failure point, optionally inserting fix steps. After execute_batch returns status=FAIL with a batch_id, call this to:
|
| get_keyword_infoA | Get keyword/library docs or parse a signature. Call this before execute_step when you know the keyword name but not its arguments. Modes: "keyword" (default — document one keyword), "library" (list a library's keywords), "session" (resolve against the live session namespace), "parse" (parse a signature string). Pass session_id to scope the lookup to that session's libraries. |
| set_library_search_orderC | Set explicit library search order for keyword resolution. |
| get_locator_guidanceA | Provide locator/selector guidance for Browser, SeleniumLibrary, AppiumLibrary, PlatynUI.BareMetal, or RequestsLibrary. For API testing, call with library="requests" (or "api") to get a RequestsLibrary request/response cookbook — session setup, response-field access (${resp.json()["field"]}), the $resp-in-Evaluate rule, Status Should Be, JSON body/headers, the Cookie token header, and expected_status= for non-2xx — BEFORE writing Evaluate-based assertions. For VISUAL validation, call with library="visual" (or "screenshot") to learn WHEN a screenshot beats the DOM/ARIA tree (canvas/image text, layout/overlap, obscured elements, color, charts) and the dual read-back pattern — useful for any UI library (Browser/Selenium/Appium/PlatynUI) when a multimodal model drives rf-mcp. |
| visual_checkA | Capture a screenshot of the current UI for VISUAL validation (change: visual-inspection-guidance). Token-cheap by DEFAULT: saves the screenshot to disk and returns the PATH as text — a multimodal agent WITH file access reads that file on demand for checks the DOM/ARIA can't do (canvas/image text, layout/overlap, obscured elements, color, charts). Call get_locator_guidance(library="visual") for when to use it. Set return_image=true ONLY if your model is multimodal AND cannot read the saved file (e.g. a hosted/remote MCP): the response then includes an image content block. This requires ROBOTMCP_SCREENSHOT_MODE to allow images (image|auto); text-only deployments (mode=file, the default) always return just the path so a text-only model is never sent unsupported image content. Works across Browser/SeleniumLibrary/AppiumLibrary/PlatynUI (uses the session's screenshot keyword). Degrades cleanly if capture fails. |
| run_test_suiteB | Validate or execute a Robot Framework suite. |
| manage_attachC | Inspect or control attach bridge configuration. |
| intent_actionA | Execute a high-level intent that auto-resolves to the correct library keyword. Valid intents: navigate, click, fill, hover, select, assert_visible, extract, wait_for. Also accepted but DEPRECATED:
The intent is resolved based on the session's active library (Browser/SeleniumLibrary/AppiumLibrary). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| automate | Uses RobotMCP to create a test suite from a scenario description |
| learn | Guides a user through automation and explains the generated code/choices. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 19 tools
The set has several overlapping clusters: session creation (analyze_scenario vs manage_session init), execution (intent_action, execute_step, execute_batch, execute_flow), and keyword/library discovery (recommend_libraries, find_keywords, get_keyword_info, check_library_availability). The detailed descriptions help differentiate these tools, but the boundaries are not always obvious, and two discovery tools share the same 'No keyword with name' trigger.
Most tools follow a clear verb_noun snake_case pattern such as execute_batch, recommend_libraries, and build_test_suite. A few names deviate—intent_action is noun-oriented and visual_check is adjective+noun—but the overall convention is consistent and readable.
19 tools is on the heavy side and includes several near-duplicate discovery and execution aids that could be consolidated. However, the server covers a broad workflow from scenario analysis through suite generation and visual validation, so the count is not unreasonable for its scope.
The workflow from scenario analysis through keyword discovery, execution, batching, suite generation, and running is well covered. Minor gaps exist, such as no explicit session teardown/reset action and some redundancy among discovery helpers, but agents can work around these.