mcpelauncher-agent
Allows launching and controlling Minecraft Bedrock instances on Android, including using separate data directories for per-bot logins and worlds.
Drives the decrypted iOS Minecraft Bedrock client under PlayCover through the libmacfix agent server, supporting launch, stop, hidden background rendering, input injection, screenshots, state queries, and related game control tools.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcpelauncher-agentLaunch a new bot and take a screenshot"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mcpelauncher-agent
MCP server that drives the real Minecraft Bedrock client through the agent socket added to the bedrock-mc mcpelauncher fork. Input is injected below the game (same path as a keyboard and mouse), frames are read back from the GL framebuffer, and no game symbols are involved — so it survives game updates the launcher itself supports.
Requirements
The bedrock-mc fork's client (the stock launcher has no agent socket), a version installed through the launcher UI, and a signed-in Xbox account in that data dir.
macOS: the fork's
Minecraft Bedrock Launcher.appin/Applications(orMCPELAUNCHER_APP=<app path>).Linux:
mcpelauncher-clientfrom the fork onPATH(orMCPELAUNCHER_CLIENT=<binary>); data in~/.local/share/mcpelauncher(orMCPELAUNCHER_DATA=<dir>). Not tested on Linux yet.
Bun.
Truly headless is not possible: the game needs a GPU and a logged-in GUI session. The window stays hidden by default and renders at a low frame cap, so several instances fit on one machine.
iOS backend
launch with backend: "ios" (or MCPELAUNCHER_BACKEND=ios to make it the default) drives the decrypted
iOS client under PlayCover instead, through the agent server in
bedrock-mc/mcbe-macos's libmacfix (enabled by
MACFIX_AGENT_PORT, TCP on 127.0.0.1). It needs that app installed and patched with scripts/setup.sh
(MCPE_IOS_APP=<app path> to override the PlayCover location; MCPE_IOS_AGENT_PORT, default 47555).
One instance per Mac, with the app's own data container:
data_diris rejected, andwidth/heightare ignored (the game renders at PlayCover's resolution setting).hidden(the default) launches the game in the background (open -g) and keeps its window ordered out while it keeps rendering, taking input and giving screenshots; atfps_cap10 it costs about a third of one core. While hidden, the game ignores real background events (it still saves on quit).hidden: falseshows the window.launchquits PlayCover first and refuses to start when PlayCover's keychain database is empty (PlayCover encrypts it whenever the game exits while PlayCover runs; launch the game once from PlayCover to restore it).Screenshot and click coordinates are the game's render pixels. With a visible window the real Mac pointer still reaches the game, so keep it off the window while an agent drives it.
typeneeds a focused text box (state.text_input): chat opens unfocused, and Enter or a click focuses it (chatdoes this).scrollhas no horizontal axis.cursor_lockedis true only while macOS captures the pointer (full screen);pointer_lock_requestedsays the game wants it (in-world).stoptakes ~35 s: UIKit waits for the game's background tasks before it exits, then the process is killed if it is still alive.
Related MCP server: Renge Bot
Run
bun install
bun run src/index.tsClaude Code: claude mcp add minecraft -- bun run /path/to/mcpelauncher-agent/src/index.ts.
Tools
launch · stop · list · state · screenshot · key · hold_key · type · chat · look ·
click · mouse_move_to · scroll · add_server · open_uri · set_fps · wait · log
Every tool takes an optional instance; launch with a separate data_dir gives each bot its own login and
worlds (Android backend only).
Socket protocol
The launcher client listens on --agent-socket <path> (the iOS client on 127.0.0.1:$MACFIX_AGENT_PORT) and
speaks one JSON object per line:
cmd | fields | reply |
|
| |
|
|
|
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
Requests may carry an id, echoed back in the reply. The iOS server also reports pointer_lock_requested and
text_input in state, and text fails when no text box is focused.
This server cannot be deployed
Maintenance
Related MCP Connectors
Drive real devices from your AI Coding tool. Embed a client SDK (Unity, Godot, Flutter, iOS/macOS, Android, React Native, Web) in your app, then capture screenshots, traverse the UI tree, inject taps and key events, and run automated test tasks on the physical device over a secure relay.
Generate AI images and videos from any compatible MCP client.
Connect AI agents to Flato's editable canvas runtime through a hosted MCP server.
Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to control Minecraft bots through a standardized JSON-RPC interface.12 npm40MIT
- FlicenseNot gradedqualityDmaintenanceEnables controlling a semi-autonomous Minecraft bot via MCP, supporting tasks like movement, combat, farming, and chatting.-
- AlicenseNot gradedqualityCmaintenanceEnables MCP-capable AI clients to control a Minecraft bot in a Java world, providing tools for movement, observation, inventory, chat, crafting, mining, and placing.2MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to control Mineflayer bots over Streamable HTTP, allowing them to join Minecraft servers, run commands, interact with GUIs, and verify server behavior.MIT