Skip to main content
Glama

Minecraft-MCP-Server

Python MCP Server to control a Minecraft server via RCON, using FastMCP.


πŸ”§ Features

  • Exposes a set of commands (dictionary) to contextualize the LLM

  • Executes commands on the Minecraft server via RCON

  • Integration with Claude Desktop or any MCP client

  • Simple structure: stdio (local development) or HTTP/SSE (production)


πŸ“¦ Project Structure

mcp_server/
β”œβ”€β”€ __pycache__/
β”œβ”€β”€ .env                   # Environment variables for Gemini and paths
β”œβ”€β”€ commands.json          # Commands dictionary and examples  
β”œβ”€β”€ mcp_chat_client.py     # NEW: Client that listens to @ai messages from chat
β”œβ”€β”€ server.py              # Main MCP server  
β”œβ”€β”€ .gitattributes
β”œβ”€β”€ .gitignore
β”œβ”€β”€ readme.md
└── requirements.txt

βš™οΈ Installation

  1. Clone the repository:

    cd Minecraft-MCP-Server/mcp_server
  2. Create an environment and install dependencies:

    python -m venv venv
    venv\Scripts\activate
    pip install -r requirements.txt

πŸ“ Setup

In the commands.json file, you will have a list of commands like /give, /weather, /gamemode, etc., with descriptions and examples.

Don’t forget to enable RCON in the Minecraft server.properties file:

enable-rcon=true
rcon.password=minemcp
rcon.port=25575

Create a .env file like this:

MINECRAFT_LOG_PATH=C:\Users\YourUser\Desktop\mineserver\logs\latest.log
MCP_SERVER_PATH=mcp_server/server.py
GEMINI_API_KEY=your_gemini_api_key

πŸš€ Running the MCP Server

Activate the virtual environment and run:

venv\Scripts\activate
python mcp_server/server.py

Monkey patch: starts MCP server in STDIO by default (, , )


πŸ’¬ Running the Chat Client (@ai)

After starting the server, in a new terminal, run the chat client:

venv\Scripts\activate
python mcp_server/mcp_chat_client.py

This script monitors the Minecraft server log and listens for player chat messages that start with @ai. It sends the message to the Gemini API and executes the resulting command on the server via MCP.

⚠️ Important: The server must be started before running the client.
Current version has a known memory overflow bug if the client starts before the server.


βš™οΈ Integration with Claude Desktop

In claude_desktop_config.json (e.g., %APPDATA%\Claude\):

{
  "mcpServers": {
    "minecraft-controller": {
      "type": "stdio",
      "command": "/home/qkeq/Documentos/GitHub/Minecraft-MCP-Server/venv/bin/python3",
      "args": ["C:\\...\\mcp_server\\server.py"],
      "env": {"PATH": "%PATH%"}
    }
  }
}

Then restart Claude β€” the β€˜minecraft-controller’ server will appear.


πŸ§ͺ Local Test with Python

from fastmcp import Client
import asyncio

async def test():
    client = Client("mcp_server/server.py")
    async with client:
        res = await client.call_tool("run_minecraft_command", {"command": "/list"})
        print("Players:", res)
        cmds = await client.read_resource("minecraft://commands")
        print("Commands:", list(cmds.keys())[:5])

asyncio.run(test())

🧰 How It Works

  • 🎯 FastMCP automatically loads tools and resources (, )

  • Resource minecraft://commands provides the commands dictionary

  • Tool run_minecraft_command uses mcrcon to send commands to Minecraft


πŸ“š References

  • [FastMCP v2 – Sample README] ()

  • [mcrcon – Python RCON client] ()


πŸ›  Next Steps

  • Support for HTTP/SSE transport with Docker

  • Argument validation/autocomplete via commands dictionary

  • Logging extra actions: /start, /stop, /backup, /whitelist


Ready to make your server smart! πŸš€

-
security - not tested
F
license - not found
-
quality - not tested

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

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/Peterson047/Minecraft-MCP-Server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server