MCP server for browser automation using Amazon Nova Act. Provides tools for automated web browsing, task execution, and data collection from web pages.
This is a sample/educational server with mixed quality. The simple math and greeting tools (greet, add, subtract, multiply, divide, tell_joke) are well-structured with complete schemas and clear descriptions (194-character baseline met). However, the browser automation tools (browser_session, execute_parallel_browser_tasks, stop_browser_session, get_browser_session_status) have significant gaps: incomplete descriptions, vague action parameters, and no output schema documentation. The 'actions' parameter in browser_session is a free-form string array with minimal guidance on format or constraints, LLMs will struggle to compose valid action sequences without examples or an enum of valid action types. Error handling is absent across all tools; there is no guidance on retryability, user-fixable vs. fatal conditions, or recovery steps. The server is STDIO-only (fastmcp run() with no explicit HTTP transport), which caps protocol readiness at 50 and makes it unsuitable for production hosted deployments.
Add two numbers together.
Start a browser and perform a sequence of actions in a single command. USE THIS TOOL for tasks that need to be executed in sequence within the same browser session, where each action depends on the state created by previous actions. For multiple independent tasks that can run in parallel, use execute_parallel_browser_tasks instead.
Divide the first number by the second.
Execute multiple independent browser tasks in parallel. USE THIS TOOL for tasks that can be executed independently without depending on each other's results.
Get the current status of the browser session including the current URL and available actions.
Greet a person with their name.
browser_session and execute_parallel_browser_tasks have free-form 'actions' parameter (List[str]) with no schema, enum, or format constraints. LLMs cannot infer valid action syntax and will hallucinate invalid sequences. Output schema for browser_session is also undocumented.
stop_browser_session and get_browser_session_status have no documented output schema. LLMs cannot predict what fields or structure to expect, breaking tool chaining and downstream reasoning.
No error handling guidance across any tool. No indication of retryability, user-fixable vs. fatal errors, or recovery suggestions. Raw exceptions will block agent reasoning.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 56 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 45 | - | v1 |
Multiply two numbers together.
Stop the currently active browser session and clean up resources.
Subtract the second number from the first.
Tell a programming joke.
divide tool does validate denominator (raises ValueError if b==0) but does not document this in the description. Error message guidance is missing, LLMs will not know to anticipate or handle division by zero gracefully.
browser_session description contains incomplete text ('Break complex tasks into sma' is truncated) and uses prose guidance that duplicates information already in the descriptions. The 'starting_page' and 'headless' parameters lack detailed format constraints (what constitutes a valid URL? what does headless affect?).
tell_joke tool name is not verb-led (expect 'get_joke' or 'generate_joke'). Minor but inconsistent with Arcade baseline: 90% of A+ tools start with action verbs like get_, create_, search_.