Minecraft MCP Server
Un servidor MCP en Python para controlar un servidor de Minecraft mediante RCON usando FastMCP.
Documentación
Minecraft-MCP-Server
Servidor MCP en Python para controlar un servidor de Minecraft mediante RCON, usando FastMCP.
🔧 Características
- Expone un conjunto de comandos (diccionario) para contextualizar el LLM
- Ejecuta comandos en el servidor de Minecraft mediante RCON
- Integración con Claude Desktop o cualquier cliente MCP
- Estructura simple:
stdio(desarrollo local) o HTTP/SSE (producción)
📦 Estructura del Proyecto
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
⚙️ Instalación
- Clona el repositorio:
cd Minecraft-MCP-Server/mcp_server - Crea un entorno e instala las dependencias:
python -m venv venv venv\Scripts\activate pip install -r requirements.txt
📝 Configuración
En el archivo commands.json, tendrás una lista de comandos como /give, /weather, /gamemode, etc., con descripciones y ejemplos.
No olvides habilitar RCON en el archivo server.properties de Minecraft:
enable-rcon=true
rcon.password=minemcp
rcon.port=25575
Crea un archivo .env como este:
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
🚀 Ejecutando el Servidor MCP
Activa el entorno virtual y ejecuta:
venv\Scripts\activate
python mcp_server/server.py
Monkey patch: inicia el servidor MCP en STDIO por defecto (apidog.com, reddit.com, github.com)
💬 Ejecutando el Cliente de Chat (@ai)
Después de iniciar el servidor, en una nueva terminal, ejecuta el cliente de chat:
venv\Scripts\activate
python mcp_server/mcp_chat_client.py
Este script monitorea el registro del servidor de Minecraft y escucha los mensajes de chat de los jugadores que comienzan con @ai. Envía el mensaje a la API de Gemini y ejecuta el comando resultante en el servidor mediante MCP.
⚠️
Importante: El servidor debe iniciarse antes de ejecutar el cliente.
La versión actual tiene un error conocido de desbordamiento de memoria si el cliente se inicia antes que el servidor.
⚙️ Integración con Claude Desktop
En claude_desktop_config.json (por ejemplo, %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%"}
}
}
}
Luego reinicia Claude — el servidor 'minecraft-controller' aparecerá.
🧪 Prueba Local con 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())
🧰 Cómo Funciona
- 🎯
FastMCPcarga automáticamente herramientas y recursos (medium.com, github.com) - El recurso
minecraft://commandsproporciona el diccionario de comandos - La herramienta
run_minecraft_commandusamcrconpara enviar comandos a Minecraft
📚 Referencias
🛠 Próximos Pasos
- Soporte para transporte HTTP/SSE con Docker
- Validación/autocompletado de argumentos mediante el diccionario de comandos
- Registro de acciones adicionales:
/start,/stop,/backup,/whitelist
¡Listo para hacer tu servidor inteligente! 🚀