Minecraft MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MINECRAFT_MCP_PORT | No | Explicit port value that overrides the value in the connection file. | |
| MINECRAFT_MCP_TOKEN | No | Explicit token value that overrides the value in the connection file. | |
| MINECRAFT_MCP_CONNECTION | No | Path to a connection file to use instead of the default ~/.config/minecraft-mcp/connection.json. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| executeA | Run JS code OR an absolute local .js file in a fresh JsMacros context. Native JsMacros and installed mod Java APIs are available. console.log/print are captured. Returns early with task ID when still running; use read_output. This is GraalJS, not Node.js. |
| read_outputA | Read and consume newly buffered output for a task, plus its native execution state. No filesystem needed. Single-reader stream; no output is repeated. Bounded buffer reports dropped_chars on overflow. |
| stopA | Stop one MCP-owned JsMacros task or all MCP tasks. Also cancel Baritone and release scripted input for player takeover. Does not stop the bridge service. |
| screenshotA | Capture the actual Minecraft framebuffer including HUD, menus and overlays. Returns the image directly; no shared screenshot directory is needed. |
| chatA | Display a progress message in English in the player’s local Minecraft chat as [AGENT] message. Tag, optional name, and colors come from config. Does NOT send server chat or execute chat commands. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 5 tools
Each tool targets a distinct action: run code (execute), consume its output (read_output), cancel work (stop), capture the framebuffer (screenshot), and post a player-facing message (chat). The only soft overlap is output surfaces — execute returns inline results while read_output streams buffered output, and chat displays text vs. console.log capture — but the descriptions explicitly delimit these boundaries.
Casing is consistently lowercase snake_case (read_output), but the conventions mix verb-first names (execute, stop, read_output) with bare nouns (screenshot, chat). It remains readable, though there is no single predictable verb_noun pattern across the set.
Five tools is well-scoped for an execution-bridge server: one general-purpose runner plus the lifecycle tools (output, stop) and two I/O channels (screenshot, chat). Nothing feels redundant or padded, and the powerful generic tool absorbs what would otherwise be many narrow tools.
The core loop of run/observe/stop plus visual capture and player messaging is fully covered, with world/player operations reachable through the injected JsMacros APIs. Minor gap: there is no way to enumerate running tasks, so task IDs must be remembered from execute's return value.