This MCP server exposes a single dynamically-generated tool ('dynamic_graphql_operations') whose definition is inferred from GraphQL operation files rather than explicitly declared in code. The tool has NO description in the source code (tool/tools.go shows Description: ""), making it impossible for LLMs to understand when or why to select it. The InputSchema is extracted programmatically from GraphQL variables but not validated or documented. Tool annotations (readOnlyHint, destructiveHint, idempotentHint) are present and correctly set based on operation type, but this does not offset the absence of descriptive metadata. The server does not handle error responses beyond basic error messages, and there is no pagination or output schema documentation. The tool name 'dynamic_graphql_operations' is generic and does not follow verb_noun convention (e.g., 'execute_graphql_query', 'run_graphql_operation'). Overall, this server prioritizes GraphQL introspection and dynamic loading over user-facing definition quality.
Dynamically loaded GraphQL operations (queries and mutations) from configured documents. Tools are created from GraphQL operation definitions.
Tool description is empty string; LLMs cannot determine when or why to select this tool
Tool name 'dynamic_graphql_operations' is generic and does not start with action verb; should be 'execute_graphql_operation' or 'run_graphql_query'
No input schema documentation or parameter descriptions in the tool definition; InputSchema is extracted from GraphQL but never explained to the LLM
No output schema documented; tool response is raw GraphQL result without description of fields, structure, or pagination
Error handling returns raw error messages without recovery guidance or error classification (retryable, user-fixable, fatal)
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 27 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 21 | 2025-03-26+ | v1 |
No pagination support or result-size limits; a GraphQL query returning thousands of items will blow context window
No per-parameter type declarations or descriptions; LLM must infer variable meaning from GraphQL schema alone