Product-agnostic agentic exploratory QA framework for web applications with browser automation, memory management, and multi-agent orchestration
Three tools with clear verb-noun naming and detailed descriptions (194-250 chars, above baseline). All parameters have type definitions and descriptions. However, output schemas are not explicitly documented in the source code, and error handling guidance is minimal. Tool descriptions are strong but lack explicit recovery hints. No tool annotations (readOnlyHint/destructiveHint) visible. fetch_agent_skill and run_agent_skill_script follow progressive-disclosure patterns well; get_mcp_tools is simpler but adequate.
Load an installed Agent Skill from the user's local skills directory. Follows the https://agentskills.io/specification progressive-disclosure model: * Always returns the SKILL.md contents. * By default, lists references/ Markdown files without loading them. * Set include_references=true to load references. Use reference_path to load a single reference when only one document is needed. * Lists available scripts/ entries (names + exec bits) so the agent can decide whether to invoke `run_agent_skill_script`. * Lists available assets/ filenames for awareness.
Load tools from user-configured MCP servers. Reads a Claude-Desktop-compatible JSON file of the form: { "mcpServers": { "<name>": {"transport": "http", "url": "https://..."}, "<name>": {"command": "node", "args": ["server.js"]} } } The path is resolved from (in order): 1. config_path argument 2. MCP_SERVERS_CONFIG env var 3. ./mcp_servers.json Returns an empty list (and logs an info message) if the file is missing or contains no servers — agents can still operate with their browser tools.
Execute a script shipped inside an Agent Skill directory. Scripts must be located under the skill's scripts/ subdirectory and follow the https://agentskills.io/specification layout. The script is executed in a subprocess with a configurable timeout; stdout/stderr are captured and returned (truncated to SKILL_SCRIPT_OUTPUT_LIMIT to avoid flooding the LLM).
Output schemas not documented. Tool descriptions explain inputs but do not specify what fields/structure the response contains. LLMs cannot plan downstream tool calls without knowing return structure.
No error recovery guidance. Descriptions lack hints like 'If skill not found, try list_available_skills()' or 'Script timeout, increase timeout_seconds or check script logs.' Agents cannot self-correct on failure.
No tool annotations. Tools lack readOnlyHint, destructiveHint, or idempotentHint metadata. run_agent_skill_script is destructive (executes code) but not marked as such, agents cannot reason about side effects.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 57 | 2026-07-28+ | v2 |
run_agent_skill_script timeout parameter lacks bounds. Description says 'default from env var or 60' but does not specify min/max. Unbounded integers let LLMs pass absurd values (e.g. 999999 seconds).
get_mcp_tools config_path parameter allows null but description does not explain fallback behavior clearly. 'Resolved from (in order)' is in the tool description, not the parameter description, LLMs may not read it.