MCP server for exploring and analyzing Swagger/OpenAPI specifications using Playwright for web scraping and Chromium browser automation
Server has 2 tools with explicit schemas and descriptions, but quality is uneven. Tool names lack clarity (explore vs getResponseSchemas uses inconsistent verb patterns), and parameter descriptions are present but minimal. Schema definitions are visible in code but output schemas lack detail. Error handling is basic with generic fallback messages. The server's HTTP transport and internal Express architecture are sound, but the tool interface does not follow agentic patterns for agent reasoning.
Explore a Swagger/OpenAPI specification
Get response schemas for a specific path and method
Tool naming inconsistency: 'explore' uses lowercase verb_noun style, but 'getResponseSchemas' uses camelCase. LLMs expect consistent verb_noun patterns like 'explore' and 'get_response_schemas'. Inconsistent naming complicates tool selection.
Parameter descriptions are present but generic and lack actionable constraints. E.g., 'methodFilter' is described as 'Filter paths by HTTP methods' but does not specify: are these case-sensitive? What are valid values (GET, POST, etc.)? Should they be uppercase or can LLMs pass lowercase? Without enum constraints or format details, LLMs will guess and risk malformed requests.
Output schema for 'explore' is documented as ExploreOutputSchema but the schema definition is not visible in the provided code. Only a reference to './schemas' appears. Without seeing the actual output structure, cannot verify if responses include chainable IDs (e.g., path identifiers needed by getResponseSchemas) or if pagination is supported for large API specs.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 45 | 2025-06-18+ | v2 |
| 2026-03-09 | F | 38 | - | v1 |
Error handling provides minimal recovery guidance. Both tools catch errors and rethrow generic messages like 'Explore failed: <error>' or 'Get response schemas failed: <error>'. An LLM receives no indication of whether the failure is retryable (transient network error) or user-fixable (invalid URL, malformed request). No suggestions for next steps.
Tool descriptions are present but lack context for agent selection. 'Explore a Swagger/OpenAPI specification' does not explain WHEN to use explore vs getResponseSchemas, what happens if the URL is invalid, whether it handles YAML and JSON equally, or what 'options' controls. LLMs cannot distinguish explore from getResponseSchemas without explicit guidance.
'getResponseSchemas' requires 'path' and 'method' as separate parameters. If an agent does not know the exact path (e.g., user says 'get user profile'), it must first call explore to discover paths, then parse the response to extract a path, then call getResponseSchemas. The tool chain is broken, explore should return path identifiers that getResponseSchemas can accept directly.
No documentation of output structure. Tool descriptions do not state what fields are returned. For 'explore', the response could be a tree of paths, a flat list of endpoints, or structured objects. For 'getResponseSchemas', the response format is undocumented. Without knowing the response shape, agents cannot plan downstream reasoning or extract required fields.
Parameter 'format' with enum ['minimal', 'detailed'] is present but never documented in tool descriptions or parameter help. LLMs may not discover this parameter or understand its effect. The field should be explicitly mentioned in the tool description so agents know it exists and when to use it.