An MCP server that exposes GraphQL operations as tools, enabling AI agents to invoke GraphQL queries and mutations against Apollo-managed GraphQL APIs
Three tools with basic schemas and descriptions, but significant gaps in parameter documentation and output schema clarity. Tool names follow verb_noun convention (introspect, execute, explorer), which is good. However, parameter descriptions are minimal (e.g., 'GraphQL query or mutation document' lacks format/constraint guidance), and output schemas are not documented in the visible code. The 'execute' tool accepts a 'variables' object with no type constraints or description of expected structure. Error handling and recovery guidance are absent. No tool annotations (readOnlyHint/destructiveHint) despite clear risk profiles (execute is WRITE, others are READ_ONLY).
Execute a GraphQL query or mutation against the configured endpoint
Open a GraphQL query in Apollo Explorer for interactive exploration
Introspect the GraphQL schema to discover available types, fields, and operations
Output schemas not documented. LLMs cannot plan downstream calls or extract required fields (e.g., does introspect return type names, field names, or full schema?). Baseline: 100% of A+ tools document return types.
Parameter 'variables' in execute tool has no type constraints or description of expected structure. LLMs cannot infer valid GraphQL variable formats. Should specify: 'JSON object mapping variable names to values, matching the GraphQL operation's variable definitions.'
No tool annotations despite clear risk profiles. 'execute' is marked WRITE but has no destructiveHint. 'introspect' and 'explorer' are READ_ONLY but lack readOnlyHint. Annotations enable agents to reason about safety and retry logic.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 42 | <=2025-11-25 | v2 |
No error handling or recovery guidance. If execute fails (invalid query, network error, permission denied), LLM receives no actionable next step. Should include: 'If query is invalid, check syntax with introspect first. If endpoint unreachable, verify network access.'
Parameter descriptions are generic and lack format/constraint guidance. 'GraphQL query or mutation document' does not specify: is it a string? Can it span multiple lines? What happens if it's invalid? Baseline: 100% of A+ tools have param descriptions ≥50 chars with constraints.