swagger-mcp has critical definition gaps. Tool descriptions are minimal (10-50 chars, well below the 194-char baseline). The makeRequest tool lacks parameter descriptions entirely, 'path', 'method', 'parameters', and 'body' have no guidance on format, constraints, or valid values. Input schemas exist but are incomplete: 'body' is typed as 'unknown' with no structure; 'parameters' uses additionalProperties:true without field guidance. No output schema is documented. Error handling returns raw error text without recovery guidance. The loadSwaggerDoc tool is redundant with the resource endpoint. No tool annotations (readOnlyHint, destructiveHint) despite makeRequest being a WRITE operation.
Loads and returns the Swagger documentation
Make an API request based on the Swagger spec
makeRequest parameters lack descriptions. 'path', 'method', 'parameters', 'body' have no guidance on format, constraints, or valid values. LLMs cannot infer whether 'method' accepts 'GET' or 'get', or what structure 'parameters' expects.
Tool descriptions are too short (10-50 chars vs 194-char baseline). 'Loads and returns the Swagger documentation' and 'Make an API request based on the Swagger spec' lack context on WHEN to use each tool, prerequisites, or side effects. makeRequest modifies state but description does not say so.
No output schema documented. LLMs cannot plan downstream calls or extract fields. makeRequest returns JSON but structure is unknown. loadSwaggerDoc returns full Swagger spec but no guidance on field names or structure.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 36 | 2026-07-28+ | v2 |
makeRequest 'body' parameter typed as 'unknown' with no schema. LLMs cannot validate request body structure before sending. No guidance on JSON vs form-encoded vs other formats.
No tool annotations. makeRequest is destructive (WRITE risk) but lacks destructiveHint. loadSwaggerDoc is read-only but lacks readOnlyHint. Agents cannot distinguish safe from risky operations.