A server that helps you build a MCP wrapper around your Swagger API
The Swagger MCP server provides 6 tools for API schema introspection and code generation. Strengths: all tools have descriptions (10-64 chars), input schemas are present with typed properties, and there is a clear domain focus. Critical weaknesses: (1) Descriptions are extremely brief and lack context about WHEN and WHY to use each tool, falling below the 50-200 char ideal range for LLM reasoning. (2) Parameters lack description fields in most tools, LLMs cannot infer what 'swaggerFilePath' controls without explicit guidance. (3) No documented output schemas, callers don't know what structure to expect. (4) Error handling is absent from visible code; no guidance on recovery paths. (5) No tool composition, tools don't chain well because outputs lack the IDs or references downstream tools need. (6) The 'version' tool is trivial and questionable value. Overall: Functional definitions with clear structure, but insufficient prose and no output documentation make this a fair-to-poor implementation by production standards.
Generates TypeScript code for an MCP tool definition based on a Swagger endpoint. Priority: CLI --swagger-url > swaggerFilePath parameter.
Generates TypeScript code for a model from the Swagger definition. Priority: CLI --swagger-url > swaggerFilePath parameter.
Fetch Swagger definition from a URL
List all models used by a specific endpoint from the Swagger definition
List all endpoints from the Swagger definition
Get the version of the Swagger MCP Server
Parameter descriptions are missing or minimal. Tools like 'listEndpoints' and 'listEndpointModels' have parameters (swaggerFilePath, path, method) with no description fields in the schema. LLMs cannot infer what these control without explicit text guidance. Per the rubric, every parameter needs a description explaining its purpose and constraints.
Tool descriptions are too brief (10-64 characters). Baseline for LLM-optimized descriptions is 50-200 chars. Current descriptions like 'Fetch Swagger definition from a URL' lack WHEN to use this tool, WHAT it returns, and any prerequisites. Per the rubric, descriptions must answer: What does it do? When should the LLM call it instead of a similar tool? What does it return?
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 46 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 37 | - | v1 |
No documented output schemas. The visible code in generateEndpointToolCode.ts shows the service generates TypeScript code (strings), but the tool definition does not declare what fields or structure the LLM should expect. Per the rubric, document the output schema so LLMs can plan downstream calls and extract the right data. A response_schema or example output is required.
No error handling or recovery guidance visible. The code shows try-catch blocks (e.g., in generateEndpointToolCode.ts) but no error responses that tell the LLM what to do next. Per the rubric, error responses must categorize as retryable, user-fixable, or fatal, and include the invalid value and constraint violated to enable self-correction.
Tool composition is weak. Response schemas are not documented, so downstream tools (e.g., after listEndpoints, how does the LLM know which fields to pass to listEndpointModels?) cannot chain effectively. The code mentions '.swagger-mcp file' for SWAGGER_FILEPATH but doesn't explain how to discover or use it dynamically.
The 'version' tool provides minimal value. It has no parameters and likely returns a simple version string. This is a trivial meta-tool that adds noise and doesn't help achieve user intents. Consider removing it or integrating version info into the server capabilities instead.
Parameter naming could be more consistent and explicit. 'swaggerFilePath' appears in multiple tools with the same long description about '.swagger-mcp file'. Consider standardizing on a parameter type suffix (e.g., swagger_file_path vs swaggerFilePath) and moving the explanation to a shared discovery mechanism rather than repeating it in every tool.