Minecraft Ops MCP
Minecraft Ops MCP is a comprehensive management platform for Minecraft servers, providing control over MCSManager instances, file operations, RCON, MSMP, and modpack development through a structured MCP interface.
Server & Instance Management
List daemon nodes, instances, and system status
Create, update, patch, clone, delete, and reinstall instances
Start, stop, restart, and force-kill instances
Send console commands, read logs, save worlds, and broadcast messages
Run configured update tasks on instances
File Operations
List, read, write, create, upload, download, copy, move, and delete files/directories
Compress and uncompress archives; prepare upload/download tokens for direct daemon access
RCON
Send raw RCON commands (with allowlist/denylist enforcement)
List players, query server time, and save the world
MSMP (Minecraft Server Management Protocol)
Discover capabilities and call arbitrary JSON-RPC methods
Manage players (list, kick), bans, IP bans, allowlist, and operators
Get/set game rules and server settings (e.g., difficulty, MOTD)
Get server status, save, or stop the server
Safety & Access Control
High-risk operations require
confirm=trueordry_run=trueAllowlist/denylist policies for raw commands
Bearer token authentication, host/origin validation, and configurable file/upload restrictions
Supports stdio, HTTP+SSE, and Streamable HTTP transports; dynamically resolves RCON/MSMP endpoints to manage multiple servers from a single process
Click on "Install 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., "@Minecraft Ops MCPlist all players currently online"
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.
Minecraft Ops MCP
minecraft-ops-mcp is an MCP service for Minecraft server management and operations, supporting stdio, legacy HTTP+SSE, and current Streamable HTTP. It uses MCSManager as the primary control plane and provides:
Instance lifecycle management, logs, files, uploads, and downloads via MCSManager;
Legacy or command-based operational tasks via per-instance RCON parsing;
Minecraft Java 1.21.9+ management via per-instance MSMP parsing;
Jar metadata, modlist snapshots, apply/rollback, and test logging for modpack development.
Current Backend Model
MCP clients only configure MCSManager. RCON and MSMP are instance-level configurations:
RCON is read from the target instance's MCSManager configuration:
enableRcon,rconIp,rconPort,rconPassword.MSMP is read from the target instance's
server.properties:management-server-*.
Tool calls select the target instance via daemonId and uuid. A single MCP process can manage multiple servers because RCON/MSMP connections are dynamically resolved at each call, rather than reading fixed endpoints from client environment variables.
Related MCP server: mcp-cloudron
Installation and Execution
cd /home/damoc/codes/minecraft-ops-mcp
python3 -m pip install -e .
minecraft-ops-mcpDefault uses stdio transport. For development and debugging:
cd /home/damoc/codes/minecraft-ops-mcp
PYTHONPATH=src python3 -m minecraft_ops_mcpHTTP remote access:
# 旧版 HTTP+SSE transport,兼容 MCP 2024-11-05 客户端
MINECRAFT_OPS_MCP_BEARER_TOKEN=replace-with-long-random-token \
PYTHONPATH=src python3 -m minecraft_ops_mcp \
--transport sse \
--host 0.0.0.0 \
--port 8000 \
--allowed-host mcsm-host.example:8000
# 当前 MCP 标准推荐的 Streamable HTTP transport,适合支持 --url 的客户端
MINECRAFT_OPS_MCP_BEARER_TOKEN=replace-with-long-random-token \
PYTHONPATH=src python3 -m minecraft_ops_mcp \
--transport streamable-http \
--host 0.0.0.0 \
--port 8000 \
--allowed-host mcsm-host.example:8000Endpoint defaults:
SSE:
GET /sse, client then POSTs to/messages/?session_id=....Streamable HTTP:
/mcp.Health check:
/health.
Register remote Streamable HTTP MCP in local Codex:
codex mcp add minecraft-ops --url http://mcsm-host.example:8000/mcpIf the HTTP MCP has a bearer token set, the local Codex also needs to be able to read the environment variable of the same name:
export MINECRAFT_OPS_MCP_BEARER_TOKEN=replace-with-long-random-token
codex mcp add minecraft-ops --url http://mcsm-host.example:8000/mcp --bearer-token-env-var MINECRAFT_OPS_MCP_BEARER_TOKENcodex mcp add --url only registers the client configuration and does not start the remote service. HTTP mode requires keeping the service running on the host where the MCP resides using systemd, tmux, a container, or a process manager.
HTTP transport enables Host/Origin validation by default. Binding to non-local addresses also requires MINECRAFT_OPS_MCP_BEARER_TOKEN by default, unless MINECRAFT_OPS_MCP_ALLOW_UNAUTHENTICATED_HTTP=true is explicitly set. When deploying with a reverse proxy or public domain, --allowed-host or MINECRAFT_OPS_MCP_ALLOWED_HOSTS must be set; browser clients also require --allowed-origin or MINECRAFT_OPS_MCP_ALLOWED_ORIGINS.
Quick Codex Configuration
The repository provides a quick configuration script that installs the minecraft-ops-runbook skill and registers the MCP server via codex mcp add:
cd /home/damoc/codes/minecraft-ops-mcp
MCSM_BASE_URL=http://your-mcsm-host:23333 \
MCSM_API_KEY=replace-me \
MCSM_DEFAULT_DAEMON_ID=replace-me \
MCSM_DEFAULT_INSTANCE_UUID=replace-me \
scripts/quick_setup.py --write --replaceBy default, the script writes sensitive configurations to $CODEX_HOME/minecraft-ops-mcp.env with 0600 permissions and generates $CODEX_HOME/bin/minecraft-ops-mcp-launch as the MCP launcher. The Codex config only saves the launcher path and does not directly save the API key.
Preview without writing:
scripts/quick_setup.pyGenerate generic MCP JSON snippet:
scripts/quick_setup.py --print-jsonGenerate Streamable HTTP client snippet:
scripts/quick_setup.py --mcp-transport streamable-http --print-jsonMCP Client Configuration
Minimal example:
{
"mcpServers": {
"minecraft-ops": {
"command": "python3",
"args": ["-m", "minecraft_ops_mcp"],
"cwd": "/home/damoc/codes/minecraft-ops-mcp",
"env": {
"PYTHONPATH": "src",
"MCSM_BASE_URL": "http://127.0.0.1:23333",
"MCSM_API_KEY": "replace-me",
"MCSM_DEFAULT_DAEMON_ID": "replace-me",
"MCSM_DEFAULT_INSTANCE_UUID": "replace-me",
"MINECRAFT_OPS_AUDIT_LOG": "/tmp/minecraft-ops-mcp-audit.jsonl"
}
}
}
}Production recommended configuration for security boundaries:
MINECRAFT_OPS_RAW_COMMAND_ALLOWLIST=list,time,help
MINECRAFT_OPS_RAW_COMMAND_DENYLIST=stop,op,deop,ban,ban-ip
MINECRAFT_OPS_MAX_BYTES=268435456
MINECRAFT_OPS_UPLOAD_ALLOWED_DIRS=/tmp/minecraft-ops-mcp-downloads,/srv/minecraft-staging
MINECRAFT_OPS_FILE_OPERATION_WHITELIST=server.properties,config,mods,logs,crash-reports
MINECRAFT_OPS_UPLOAD_URL_ALLOWED_DOMAINS=example.com,cdn.example.com
MINECRAFT_OPS_MODPACK_WORKSPACE=/srv/minecraft-ops/modpack-workspaceOptional protocol defaults:
MINECRAFT_OPS_RCON_TIMEOUT_SECONDS=5
MINECRAFT_OPS_RCON_ENCODING=utf-8
MINECRAFT_OPS_MSMP_TIMEOUT_SECONDS=8
MINECRAFT_OPS_MSMP_TLS_VERIFY=trueOptional MCP transport variables:
MINECRAFT_OPS_MCP_TRANSPORT=stdio
MINECRAFT_OPS_MCP_HOST=127.0.0.1
MINECRAFT_OPS_MCP_PORT=8000
MINECRAFT_OPS_MCP_ALLOWED_HOSTS=mcsm-host.example:8000
MINECRAFT_OPS_MCP_ALLOWED_ORIGINS=https://agent.example
MINECRAFT_OPS_MCP_BEARER_TOKEN=replace-with-long-random-tokenSee .env.example for full variables.
Tool Grouping
server.*: Instance status, lifecycle, logs, save, broadcast, console commands.instance.*: Create, update, patch, clone, delete, reinstall, update tasks.file.*: List directory, read/write, create, upload, download, copy, move, compress.rcon.*: RCON configuration read/write, security wrapping, and raw RCON commands.msmp.*: MSMP configuration read/write, status, players, bans, whitelist, OP, gamerule, server settings, raw JSON-RPC.modpack.*: Jar check, modlist snapshot, diff, apply/rollback, startup classification, test records.
High-risk tools require dry_run=true or confirm=true. Raw commands are also subject to allowlist/denylist policies.
Common Workflows
Health check:
server.get_instanceserver.get_logsmsmp.config.get, callmsmp.server.status/msmp.players.listafter enablingrcon.config.get, callrcon.list_players/rcon.time_querywhen needed
Enable or modify RCON:
rcon.config.getrcon.config.set {"dry_run": true, ...}rcon.config.set {"confirm": true, ...}Restart instance if new configuration needs to be loaded
Verify with
rcon.list_players
Enable or modify MSMP:
msmp.config.getmsmp.config.set {"dry_run": true, ...}msmp.config.set {"confirm": true, ...}Restart instance if new configuration needs to be loaded
Verify with
msmp.discoverormsmp.server.status
Modpack compatibility testing:
modpack.snapshot_modlistAgent retrieves candidate version information externally
modpack.apply_modlist {"dry_run": true}modpack.apply_modlist {"confirm": true}Start test server and read logs
modpack.classify_startup_resultmodpack.record_test_runmodpack.rollback_snapshotif necessary
Testing
Local check:
PYTHONPATH=src python3 -B -m unittest discover -s tests
python3 -m compileall -q src scriptsReal backend probes require disposable MCSManager/Minecraft test environments:
python3 -B scripts/mcp_integration_probe.py > /tmp/minecraft-ops-mcp-probe-report.json
python3 -B scripts/msmp_temp_instance_probe.py > /tmp/minecraft-ops-mcp-msmp-probe-report.json
python3 -B scripts/multi_server_backend_probe.py > /tmp/minecraft-ops-mcp-multi-probe-report.jsonMulti-server probes create two temporary instances to verify that the same MCP process can dynamically connect to different RCON/MSMP endpoints based on daemonId and uuid.
Documentation
Developer Guide: docs/DEVELOPER_GUIDE.md
Current Limitations and Roadmap: docs/LIMITATIONS.md
Test Report: docs/TEST_REPORT_2026-04-14.md
Release Checklist: docs/RELEASE_CHECKLIST.md
Security Notice: SECURITY.md
Changelog: CHANGELOG.md
Recommended for use with the minecraft-ops-runbook skill.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityFmaintenanceAn MCP server that enables programmatic management and monitoring of development servers through a unified interface and interactive TUI. It provides tools for process control, log streaming, and experimental browser automation via Playwright.1MIT
- AlicenseAqualityCmaintenanceAn MCP server for managing Cloudron instances that enables monitoring and controlling self-hosted applications, backups, and infrastructure. It provides tools for listing installed apps, retrieving system status, and performing administrative tasks through the Model Context Protocol.1991MIT
- Alicense-qualityBmaintenanceA MCP server integrated with the OPanel server management panel, enabling LLM-assisted management of Minecraft servers.221Mozilla Public 2.0
- AlicenseAquality-maintenanceMCP server for Pterodactyl and Pelican game server panels. 73 tools for server management, power control, file operations, backups, schedules, databases, users, nodes, and eggs.23414
Related MCP Connectors
A MCP server built for developers enabling Git based project management with project and personal…
MCP server for Blockscout
An MCP server for deep research or task groups
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/damocjwj/minecraft-ops-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server