MCP server for Minecraft mod development - provides decompiled code access, symbol search, and runtime interaction via DebugBridge
33 tools with mostly complete schemas and descriptions, but significant gaps in parameter documentation and error handling guidance. Tool names follow verb_noun convention well (mc_search, mc_get_class, mc_execute). Descriptions range 50-400+ chars, meeting baseline (avg 194). However, ~40% of parameters lack descriptions or have minimal ones (e.g., mc_nearby_entities 'radius' param has description but many tools omit constraint details). Output schemas are not documented. Error recovery guidance is absent, tools return raw failures without actionable next steps. No tool annotations (readOnlyHint/destructiveHint) despite clear risk levels. Parameter validation rules not stated in descriptions (e.g., mc_search 'limit' lacks min/max bounds).
Get detailed information about a specific block
Get the chat message history from the game
Remove glow effect from a block
Connect to a running Minecraft instance via the DebugBridge mod
Get detailed information about a specific entity
Execute Groovy code in the running Minecraft instance via DebugBridge
Find the class hierarchy (superclass and interfaces) for a Minecraft class
Find all references to a class, method, or field in the decompiled source code
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk levels. Tools like mc_execute (WRITE), mc_run_command (WRITE), mc_join_server (WRITE), mc_quit_client (IRREVERSIBLE) should declare their side effects to guide agent behavior.
Parameter constraints not documented in descriptions. mc_search 'limit' lacks min/max (should be 1-100+). mc_nearby_entities 'radius' lacks bounds. mc_record_video 'duration' lacks range. Numeric parameters need explicit constraints to prevent LLM from passing invalid values.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 54 | <=2025-11-25 | v2 |
Get the full source code of a Minecraft class by fully qualified name
Get the texture of an item held by an entity
Get the texture of an item in the player's inventory
Get the texture of an item by its registry ID
Get the source code of a specific method in a Minecraft class
Join a multiplayer server by address ("host" or "host:port"). Disconnects from the current world/server first if needed, so this changes the user's play session — don't point it at a new server without being asked. The server's resource pack is pre-accepted by default so the join doesn't stall on the confirmation prompt. The bridge ack means the connect attempt has started — current bridges defer it until the client has settled (no startup/reload overlay), so a join issued right after client launch is safe and may take some extra seconds to ack. By default this also polls until the player is actually in-world: success when a game snapshot shows a player, failure when a DisconnectedScreen appears (its title is returned as the reason). When called from inside a world, the poll first waits for the old session to drop so a stale snapshot of it can't masquerade as the new join. Set wait=false to just fire the join and return. For repeated automated test runs, prefer a local throwaway server over a live community server — live servers have nondeterministic worlds, other players, and rules about automation. Requires session_control_enabled=true in the DebugBridge config.
Leave the current world or server and return to the title screen. If not in a world, it still resets whatever menu screen is open back to the title screen. This ends the user's current play session — only do it when asked, or as part of a dev loop the user set up. Fire-and-acknowledge: the ack means the disconnect was queued on the game thread, not that it finished. Requires session_control_enabled=true in the DebugBridge config.
List all classes in a Minecraft package
List all packages in the decompiled Minecraft source
Get information about the entity the player is looking at
Get a list of blocks near the player
Get a list of entities near the player
Quit the Minecraft client application
Record a video of the Minecraft game view
Run a Minecraft command in the game (requires MCDEV_RUN_COMMAND environment variable)
Inspect the current screen/GUI displayed in the game
Take a screenshot of the current game view
Get logs from Groovy script execution (requires MCDEV_SCRIPT_LOGS environment variable)
Search for classes, methods, and fields in decompiled Minecraft source code by name or pattern
Make a block glow (highlight it with a colored outline)
Make an entity glow (highlight it with a colored outline)
Take a snapshot of the current game state (player position, inventory, world data)
Get the Minecraft version that has been decompiled and indexed
Wait for the DebugBridge mod to connect and be ready
Wait until the player is in-world or disconnected from a server
Output schemas not documented. Tools return structured data but LLMs cannot see field names, types, or what to expect. mc_search, mc_get_class, mc_nearby_entities, mc_entity_details lack documented return schemas, forcing LLMs to guess field names for downstream tool calls.
No error recovery guidance. Tools fail silently or return raw errors without actionable next steps. E.g., mc_get_class should say 'Class not found. Try mc_search() to find the correct name.' mc_connect should guide on DebugBridge setup failures.
mc_execute and mc_run_command accept arbitrary code/commands with no validation or dry-run option. Agents can accidentally execute destructive Groovy or Minecraft commands. Should support confirmation or dry-run mode for irreversible operations.