Modding questions split cleanly into 'what does this class actually do' and 'what is happening in the world right now', and this server answers both from the same session — a call-graph lookup over the decompiled client, then a Groovy snippet run inside the live JVM with a screenshot to confirm it. The static half works offline as soon as the version is prepared; the live half is opt-in behind a mod you install yourself.
A Minecraft mod-development server with two halves. The static half downloads and decompiles the Minecraft client and indexes it, so an agent can search classes, methods and call graphs offline. The runtime half talks to a running game through the DebugBridge mod. Package mcdev-mcp, version 2.2.1.
- Symbol search over decompiled sources — `mc_search` by name pattern, `mc_get_class` and `mc_get_method` for the code itself, `mc_list_classes` and `mc_list_packages` to explore
- Relationship answers a grep cannot give: `mc_find_hierarchy` for subclasses and implementors, `mc_find_refs` for callers and callees across the whole codebase
- `mc_version` to set the active Minecraft version, which has to happen before any other static tool
- Live Groovy execution inside the running client JVM — `mc_execute`, with `mc_script_logs` for reviewing past runs
- Game state read back as data: `mc_snapshot` for position, health, dimension, time and weather, `mc_nearby_entities`, `mc_entity_details`, `mc_nearby_blocks`, `mc_block_details`, `mc_looked_at_entity`
- Seeing what the player sees — `mc_screenshot` for a JPEG, `mc_record_video` for a multi-frame contact sheet, `mc_screen_inspect` for the current GUI structure
- Visual markers to point a human at something: `mc_set_entity_glow`, `mc_set_block_glow`, `mc_clear_block_glow`
- Item rendering as PNG through `mc_get_item_texture`, `mc_get_item_texture_by_id` and `mc_get_entity_item_texture`, plus `mc_chat_history` for recent client chat
- Session control for the build-and-relaunch loop — `mc_join_server`, `mc_leave_server`, `mc_quit_client`, `mc_wait_for_bridge`, `mc_wait_until_in_world`
Node.js 18+, Java 8+ for decompilation and the call graph (Java 17+ recommended for the callgraph command), and roughly 2 GB of disk per Minecraft version for the decompiled sources, symbol index and callgraph database. Preparing a version is a terminal step you run yourself — npx mcdev-mcp init with a version such as 1.21.11, taking a few minutes — and this is deliberate: the server exposes only read and query tools, so an agent connected to it cannot trigger init, rebuild, clean or callgraph. Clients then launch the server with the serve subcommand over stdio. Releases from 1.14 onward are supported, with Mojang's mappings downloaded automatically; the newer 26.x scheme ships pre-unobfuscated. The runtime tools additionally need the DebugBridge mod installed in the instance you want to drive — without it they report a connection error and the static half keeps working.
One command — npx -y mcdev-mcp serve
