MCP Server for Swagger/OpenAPI documentation and API testing
The server defines 5 tools with explicit schemas and descriptions. However, quality is inconsistent. Tool naming follows verb_noun convention (fetch_*, list_*, get_*, execute_*, validate_*), which is good. Descriptions are present but vary in actionability, some are generic ('List all available API endpoints') while others provide context ('Fetch Swagger/OpenAPI documentation to discover available API endpoints'). Parameter descriptions are minimal: 'URL to the swagger.json or swagger.yaml file' is adequate, but many parameters lack detail about format, constraints, or valid values. The execute_api_request tool is particularly weak, 'Query parameters as key-value pairs' tells an LLM nothing about structure, nesting, or type. No output schemas are documented anywhere in the source code, leaving the agent guessing what fields to expect from responses. Error handling is not visible in the provided code. The validator tool (validate_api_response) accepts a 'responseBody' as type 'object' with no constraint on structure, inviting malformed payloads. Overall, tools are defined but lack the precision and detail expected of production-grade agent tools.
Execute an API request to a specific endpoint
Fetch Swagger/OpenAPI documentation to discover available API endpoints
Get detailed information about a specific API endpoint
List all available API endpoints after fetching Swagger documentation
Validate an API response against the schema from Swagger documentation
list_endpoints has no input parameters but also no documented output schema. LLM cannot infer what fields the response contains, forcing guesswork and potential tool misuse.
execute_api_request accepts 'params', 'body', and 'headers' as generic 'object' types with vague descriptions. No format guidance, no constraint on nesting, no example structures. LLM will hallucinate keys and structures.
No output schemas documented for any tool. Agents cannot predict response structure, making multi-step tool chains unreliable and forcing redundant discovery calls.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 51 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 0 | - | v1 |
validate_api_response expects 'responseBody' as an untyped object. No guidance on what valid/invalid responses look like. Validation logic is opaque to the LLM.
No error handling visible in tool implementation. Code does not show recovery guidance, error classification, or actionable error messages. Silent failures risk agent deadlock.
Tool descriptions lack 'when to use' context. E.g., 'List all available API endpoints after fetching Swagger documentation' does not explain when to call list vs get_endpoint_details, or what preconditions must be met.
fetch_swagger_info allows optional URL parameter but no guidance on how URL discovery works if not provided ('will try to use the base URL with common Swagger paths'). Implementation details leak into description; LLM cannot predict behavior.