MCP Server for Robot Framework test automation with Selenium integration for browser automation
This server provides 4 browser automation tools with partial schema definitions. All tools have descriptions and declared input parameters, but critical issues undermine quality: (1) schemas are incompletely visible in source (only 2 of 4 tools shown in full; browser_launch and browser_send_keys are truncated), (2) no output schemas documented anywhere, (3) descriptions lack recovery guidance and prerequisite clarity, (4) no error handling or validation messaging defined, (5) tools lack annotations (readOnlyHint/destructiveHint/idempotentHint). Per-tool analysis shows browser_launch at 48 (critical truncation), browser_navigate at 55 (basic but minimal), browser_click at 52 (incomplete), browser_send_keys at 48 (truncated). Average: 50.75 → rounded to 52. This is a D-grade server: functional definitions but significant gaps in schema completeness, error guidance, and composition patterns.
Click an element identified by selector. Selector formats: id=, name=, css=, xpath=, class=, tag=, link=, partial_link= or plain CSS (default). timeout: seconds to wait for the element to be clickable.
Launch a browser, navigate to url, and start a live session. browser: 'Chrome' (default) or 'Firefox'. headless: run without a visible window when True. Must be called before any other browser_* tool.
Navigate the open browser session to a new URL.
Type text into an input element. clear_first: clear existing content before typing (default True). Selector formats: id=, name=, css=, xpath=, class=, tag= or plain CSS.
No output schemas documented. Tools declare input parameters but nowhere in the source code are return types, response structures, or field definitions visible. LLMs cannot plan downstream operations without knowing what fields a tool returns.
Tool definitions are truncated in source. browser_launch and browser_send_keys are cut off mid-definition in mcp_server.py. Cannot fully assess parameter completeness, default values, or constraint declarations.
No error recovery guidance. Descriptions state what tools do but never explain what to do if they fail. E.g., browser_launch says 'Must be called before any other browser_* tool' but provides no error message for violations.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 47 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 0 | - | v1 |
Missing tool annotations. No tools declare readOnlyHint, destructiveHint, or idempotentHint. browser_launch and browser_click are clearly destructive/write operations (launch browser, click element) but lack annotation to guide agent retry logic.
Descriptions lack prerequisite clarity and dependency hints. browser_navigate says 'Navigate the open browser session to a new URL' but does not explicitly state 'Requires browser_launch() to have been called first' or suggest recovery if no session exists.
Selector parameter descriptions include examples ('id=', 'xpath=//div...') which LLMs may reuse literally. Descriptions should emphasize format constraints via formal patterns, not examples.
No validation or error categorization logic visible. Code includes InputValidator class with validate_url, validate_selector methods, but tool definitions do not reference or document validation outcomes or error messages.