Smuggle your HAR requests and turn them into MCP-usable tools
Critical gaps across all dimensions. Tool definitions lack proper schemas, descriptions are minimal, and parameter documentation is absent. The 'call_tool' tool accepts arbitrary 'arguments' as an untyped object with no validation guidance. 'list_tools' has no input schema visible. Both tools have descriptions under 100 chars that fail to explain WHEN to use them, WHAT they return, or dependencies. No output schemas documented. Error handling is present but generic (McpError with InternalError). No tool annotations (readOnlyHint/destructiveHint). The server acts as a proxy to a Next.js backend, but this architectural detail is not reflected in tool design, tools should expose the actual backend capabilities with proper schemas, not generic wrappers.
Execute a tool by forwarding the request to the Next.js backend
Dynamically list tools from the Next.js backend
No input schemas visible for either tool. 'list_tools' has no documented parameters; 'call_tool' accepts 'arguments' as an untyped object with no validation, type hints, or constraints.
Descriptions are too brief and lack actionable context. 'Dynamically list tools from the Next.js backend' (56 chars) does not explain WHEN to call this vs other discovery tools, WHAT structure is returned, or dependencies. 'Execute a tool by forwarding...' (80 chars) omits return type, error modes, and prerequisites. Baseline: 194 chars average for A+ tools.
'call_tool' is a generic wrapper that accepts arbitrary tool names and arguments. This violates single-responsibility principle (pattern:tool). The tool should either (a) expose individual backend tools with proper schemas, or (b) if wrapping is necessary, document the backend tool catalog structure and validation rules in the description and schema.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 28 | 2026-07-28+ | v2 |
No output schemas documented. LLMs cannot plan downstream calls or extract required fields. 'list_tools' should document the structure of returned tools (fields: name, description, inputSchema, etc.). 'call_tool' should document what the backend returns and what fields are available for chaining.
No tool annotations present. 'list_tools' should have readOnlyHint=true. 'call_tool' should have destructiveHint=true (since it forwards arbitrary operations). These hints are part of current MCP spec (2026-07-28) and guide agent safety reasoning.