MCP server for Amazon Nova Act browser automation
Server has 20 tools with explicit schemas and descriptions, but quality is inconsistent. Core tools (start_browse, act, act_get) have detailed descriptions (150-300 chars) with clear intent guidance. However, 12 UI verification tools (click, evaluate_js, hover, etc.) have minimal descriptions (20-50 chars) that lack context for LLM selection. Parameter descriptions are present but often generic ('CSS selector or XPath for the element'). No output schemas documented. Error handling guidance absent. Tool composition shows some issues: navigate appears in both server.py and ui_verification.py (duplication risk); click/type_text/press_key lack session_id context, making their relationship to browser sessions unclear. No tool annotations (readOnlyHint/destructiveHint) despite clear risk levels in metadata.
Execute browser actions via natural language
Execute browser actions via natural language and extract data with format=text|json
Click on an element
Evaluate JavaScript on the page
Return current page content as text or html
Navigate directly to URL without LLM call
Hover over an element
Navigate to a URL
UI verification tools (click, evaluate_js, hover, press_key, type_text) have descriptions under 50 characters with no context for LLM selection. 'Click on an element' does not explain when to use click vs act(), or how it relates to browser sessions.
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract required fields. E.g., start_browse returns a dict but structure is not formally specified.
Tool composition unclear: click, type_text, press_key, hover, navigate, scroll, evaluate_js lack session_id parameter but appear to operate on browser state. Relationship to start_browse sessions is undocumented.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 50 | 2026-07-28+ | v2 |
Press a keyboard key
Capture screenshot to local path
Scroll the page
Terminate browser and cleanup
List active sessions (debugging)
Access a URL. Fast HTTP fetch first, browser fallback if needed. This is the main entry point for all URL access. It automatically: - Tries fast HTTP fetch first (10x faster than browser) - Falls back to browser if the page needs JavaScript or is blocked - Picks the right browser backend (local vs cloud) based on the situation
Type text into an element
Verify page accessibility compliance
Verify UI components are present and correct
Verify platform UI conventions are followed
Verify custom project-specific UI rules
Verify visual styling and design consistency
No error handling guidance. Tools do not document what errors are retryable, user-fixable, or fatal. E.g., act() may fail if selector not found, but no recovery path is specified.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk levels in metadata. LLMs cannot infer which tools are safe to retry or have side effects.