Spec-driven MCP server for exposing OpenAPI operations as tools
The nest-openapi MCP server exposes a single tool 'dynamic_openapi_tools' that is generated from OpenAPI specifications. However, critical quality issues prevent a higher score: (1) The tool description is vague and generic ('Dynamically generated tools from OpenAPI specification paths and operations'), providing no actionable guidance for LLM selection. (2) The input schema is described as 'dynamically generated' with no visible schema definition in the source code, only a JSON description object with no type constraints, properties, or required field list. (3) No evidence of parameter-level descriptions in the source. (4) The tool name 'dynamic_openapi_tools' (plural) suggests it returns multiple tools rather than executing a single operation, violating the single-responsibility principle. (5) No visible output schema documentation. The server's architecture dynamically generates tools from OpenAPI specs at runtime, which is conceptually sound, but the MCP tool wrapper itself lacks the definitional rigor required for production LLM agent interaction. Source: packages/mcp/src/openapi/tool-extractor.ts (mentioned but code not fully provided).
Dynamically generated tools from OpenAPI specification paths and operations
Tool input schema is not visible or properly defined. Description states 'Schema is dynamically generated from OpenAPI document parameters and request bodies' but no actual JSON Schema with type constraints, properties, or required fields is shown in source code.
Tool description is vague and generic (28 characters). It does not explain WHAT the tool does (which OpenAPI operations?), WHEN to use it (prerequisite: OpenAPI spec loaded?), or WHAT it returns. LLMs cannot determine when to select this tool over alternatives.
Tool name 'dynamic_openapi_tools' does not follow verb_noun convention and is plural, suggesting batch operation or tool enumeration rather than a single action. Ambiguous naming violates LLM clarity principle.
No visible output schema documentation. LLMs need to know what fields and structure are returned so they can chain downstream operations and extract needed data.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-21 | F | 31 | 2025-06-18+ | v2 |
| 2026-03-09 | F | 32 | - | v1 |
No parameter-level descriptions are visible in the source. Even if schema is dynamically generated, each parameter must have a description explaining its purpose and constraints.
No evidence of error handling guidance in tool definition. If OpenAPI spec is malformed or operation fails, LLMs need clear recovery paths (e.g., 'Check OpenAPI spec syntax', 'Verify endpoint is callable').