Ask an AI about your Minecraft server and let it run it: players, worlds, stats, and live events.
Runs on your machine from its package; the steps are below.

At most: moves money, runs code or commands, deletes data, or sends messages for you.
Odel charges nothing per call. The publisher may charge for its own service.
Runs locally over stdio
This server isn't hosted — your MCP client launches it from a package registry. Use one of the commands below, or drop the config into your client (e.g. Claude Desktop).
Run
npx -y @mairwunnx/minecraft-mcp
MCP client config
{
"mcpServers": {
"minecraft": {
"command": "npx",
"args": [
"-y",
"@mairwunnx/minecraft-mcp"
]
}
}
}🤖 minecraft-mcp lets an AI agent see and run your Minecraft server. Ask Claude “who’s online and where are they?”, “why is the server lagging?”, or “give everyone bread and set the time to morning”, and it answers with real data from your world.
It talks to WorldAPI, a Paper plugin, so it works with any Paper 26.3 server that runs WorldAPI. The token you give it decides what the agent may do.
🎬 Video proof is coming soon.
WORLDAPI_READ_ONLY=1 hides every write, whatever the token allows.WORLDAPI_PLAYER, and the agent knows who “I” is.Moonlands, my hard survival server with friends, runs WorldAPI and lets anyone read it. Point the agent there without a token and ask about a real server:
claude mcp add moonlands -e WORLDAPI_URL=https://minecraft.mairwunnx.com/worldapi/api/v1 -- npx -y @mairwunnx/minecraft-mcp
Join at minecraft.mairwunnx.com. The site has the live map, player stats, and the hall of fame.
You need a server with WorldAPI and a token from it: run /worldapi token create agent in game and pick the scopes. Clients that start the server themselves need Node.js 22 or newer.
Download minecraft-mcp-<version>.mcpb from Releases and open it. Claude Desktop asks for the WorldAPI URL, your token, and, if you like, your player name.
claude mcp add minecraft \
-e WORLDAPI_URL=https://your-server.example.com/worldapi/api/v1 \
-e WORLDAPI_TOKEN=your-token \
-- npx -y @mairwunnx/minecraft-mcp
Run /mcp in Claude Code to see the tools.
Any client that starts a server over stdio takes the same block:
{
"mcpServers": {
"minecraft": {
"command": "npx",
"args": ["-y", "@mairwunnx/minecraft-mcp"],
"env": {
"WORLDAPI_URL": "http://localhost:8110/api/v1",
"WORLDAPI_TOKEN": "your-token"
}
}
}
}
For agents on another machine:
MCP_HTTP_TOKEN=a-long-random-secret WORLDAPI_URL=... WORLDAPI_TOKEN=... \
npx -y @mairwunnx/minecraft-mcp --http --host 0.0.0.0 --port 3333
Clients connect to http://host:3333/mcp and send Authorization: Bearer <MCP_HTTP_TOKEN>. Without that token, the server listens only on localhost.
| Variable | Meaning |
|---|---|
WORLDAPI_URL | WorldAPI address including /api/v1. Required |
WORLDAPI_TOKEN | A WorldAPI token. Without one, the agent sees what visitors may read |
WORLDAPI_PLAYER | Your player name: who “I” and “me” are |
WORLDAPI_READ_ONLY | 1 hides every tool that changes anything |
MCP_HTTP_TOKEN | With --http, the token clients must send |
Scopes come from WorldAPI: admin includes read, write:world, and write:players, but not code.
Read (read, 27)
get_server_status: version, players, uptime, TPS, memory; detail adds tick percentiles, CPU, and load per worldlist_plugins, get_events, wait_for_event: plugins, recorded events, and waiting for a live onelist_worlds, get_world: time, weather, difficulty, spawn, the border, game rules, sizelocate_structure, find_nearby: the nearest village or stronghold, the nearest blocks of a type, the nearest biomeget_block, get_biome, get_highest_block, list_chunks, get_chunk: what’s at a spot; chunks sorted by loadlist_entities, get_entity: mobs and items around a pointlist_players, list_online_players, get_player, get_player_inventory, get_player_effects, get_player_statistics, get_player_advancements, get_player_sessions, check_permissionget_leaderboard, get_aggregates, get_recipes: rankings, server totals, and how to craft anythingWorld (write:world, 10)
set_world: time, weather, difficulty, PvP, spawnset_gamerule, set_world_borderset_block, fill_blocks, force_load_chunkspawn_entity, update_entity, remove_entity (one, or many by type and area)world_effect: lightning, explosions, sounds, particlesPlayers (write:players, 7; the player must be online)
teleport_player, set_player_property, send_messagegive_item, edit_inventory, set_effects, set_advancementAdmin (admin, 10)
broadcast, run_command, get_server_log, save_worlds, restart_server (with a countdown, or cancel)get_access, manage_whitelist, set_operator, manage_bans, kick_playerJava (code, 5)
execute_java: compile and run Java once and get the resultload_java_script, list_java_scripts, get_java_script, unload_java_script: scripts that stay loaded and react to eventsPrompts: server_health_check, investigate_lag, investigate_grief, new_player_guide, player_whereabouts. Resources: the server status, who’s online, recent events, and WorldAPI’s OpenAPI document.
Ask in plain words; the agent picks the tools.
The agent acts on a live server with real players. Here is what keeps that safe:
read token, or WORLDAPI_READ_ONLY=1, can’t change anything.--http, the server refuses to listen beyond localhost without MCP_HTTP_TOKEN.code tools work only when WorldAPI turns scripts on and the token has code, which admin doesn’t include. Treat a code token like SSH access.The narrowest token that does the job is the best protection: with a read token, every trick is harmless.
git clone https://github.com/MairwunNx/minecraft-mcp
cd minecraft-mcp
npm install # also builds dist/
npm test
npm run pack:mcpb # the Claude Desktop bundle in build/
npm run generate refreshes the WorldAPI client from ../minecraft-worldapi/docs/openapi.json. Releases come from the “Release” workflow on GitHub, which takes the version as input.
AI wrote most of the code and the documentation from my task descriptions, and I review what it makes. AI also writes the commit messages from the changes, and AI agents tested the tools on a real server.
WorldAPI—🌍 the Paper plugin that puts your server on HTTP; this server talks to it.
MCBuddy Server—🛠️⚡ the backend for MCBuddy, an AI assistant for Minecraft, built on OpenRouter.
MCBuddy Spigot—💬 brings MCBuddy into the game: ask the AI anything with /ask, right in the chat. 🎮
Mo’Joins—🎉 join and quit messages in each player’s own language, picked by IP.
Mo’Afks—🛡️ a safe AFK mode: AFK players take no damage and don’t block the night.
MIT, see LICENSE.
🫡 Made by Pavel Erokhin (Павел Ерохин), aka mairwunnx.