MCP Server for validating Minecraft datapack JSON files using Spyglass
The server provides 4 tools for Minecraft datapack validation with clear, domain-specific purposes. Tool naming follows verb_object patterns (validate_*, get_*, list_*) which is good. However, descriptions are adequate but terse (109-165 chars, below the 194-char baseline), lacking guidance on when to call each tool or dependencies between them. All tools have input schemas with proper types and enums, which is strong. Parameter descriptions are present and specific (e.g., 'The relative path to the JSON file within the datapack'). Output schemas are not explicitly documented in the source code provided, which is a significant gap. No error handling guidance is visible, tools return validation results but don't guide the LLM on failure recovery. The tools are read-only (no state mutation), which eliminates some complexity, but descriptions could better explain the intent and typical workflows.
Retrieve the Spyglass schema definition for a specific Minecraft datapack JSON file type and version
List all supported Minecraft versions with their corresponding pack format versions
Validate an entire Minecraft datapack by analyzing its pack.mcmeta file and all JSON files within it
Validate a Minecraft datapack JSON file against the official Spyglass schema for a specific Minecraft version or pack format
Output schemas not documented. Tools return validation or schema data but no structured response type is defined in the provided source. LLMs cannot plan downstream tool calls or extract specific fields without knowing the response structure.
Descriptions lack context about tool relationships and selection criteria. No guidance on when to call validate_json vs validate_full_datapack, or whether to call list_versions or get_json_schema first. Baseline average is 194 chars; these range 109 - 165 chars.
No error handling or recovery guidance. If validation fails or a version is not found, the tools offer no actionable next steps for the LLM. Error responses should guide the agent (e.g., 'Version not found. Call list_versions() to see available versions.').
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 49 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 0 | - | v1 |
Parameter descriptions in validate_json use vague phrasing for optional choice: 'Either version or pack_format must be specified'. This constraint is stated but not enforced in the schema (no oneOf, no allOf). LLMs may pass neither or both.
Missing tool composition guidance. No description hints about multi-step workflows. E.g., 'To validate a datapack, first call list_versions() to confirm the version is supported, then call validate_full_datapack().' would clarify dependencies.