Serveur Minecraft MCP
Gestion de serveur Minecraft via RCON. Intègre FastMCP pour une exécution facile des commandes, prend en charge l'interaction avec Claude Desktop et d'autres clients MCP, et offre une architecture flexible pour le développement local et l'utilisation en production.
Aperçu
Minecraft-MCP-Server
Un serveur MCP en Python conçu pour contrôler un serveur Minecraft via RCON, utilisant FastMCP pour une intégration et une exécution de commandes sans faille.
🔧 Fonctionnalités
- Dictionnaire de Commandes : Fournit un ensemble complet de commandes pour améliorer l'interaction avec le serveur Minecraft.
- Exécution RCON : Exécute des commandes directement sur le serveur Minecraft en utilisant RCON pour un contrôle en temps réel.
- Intégration Client : Compatible avec Claude Desktop ou tout client MCP pour une gestion facile.
- Structure Flexible : Prend en charge le développement local via
stdio
et les environnements de production via HTTP/SSE.
📦 Structure du Projet
mcp_server/
├── commands.json # Contient des commandes et des exemples d'utilisation
├── server.py # Le script principal du serveur pour MCP
├── commands.json # Commandes Minecraft pour une compréhension contextuelle
└── (venv/) # Environnement virtuel optionnel pour les dépendances
⚙️ Installation
-
Cloner le Dépôt :
cd Minecraft-MCP-Server/mcp_server
-
Configurer l'Environnement et Installer les Dépendances :
python -m venv venv venv\Scripts\activate pip install mcp[cli] mcrcon
📝 Configuration
Dans le fichier commands.json
, vous trouverez une variété de commandes telles que /give
, /weather
, et /gamemode
, complètes avec des descriptions et des exemples d'utilisation.
Assurez-vous que RCON est activé dans votre fichier server.properties
de Minecraft :
enable-rcon=true
rcon.password=minemcp
rcon.port=25575
🚀 Lancer le Serveur
Pour démarrer le serveur, activez l'environnement virtuel et exécutez :
venv\Scripts\activate
python server.py
Par défaut, le serveur MCP démarre en mode STDIO.
⚙️ Intégration avec Claude Desktop
Pour intégrer avec Claude Desktop, modifiez le fichier claude_desktop_config.json
(situé dans %APPDATA%\Claude\
) :
{
"mcpServers": {
"minecraft-controller": {
"type": "stdio",
"command": "C:\\...\\venv\\Scripts\\python.exe",
"args": ["C:\\...\\mcp_server\\server.py"],
"env": {"PATH": "%PATH%"}
}
}
}
Redémarrez Claude pour voir le serveur ‘minecraft-controller’ listé.
🧪 Test Local avec Python
Vous pouvez tester le serveur localement en utilisant le script Python suivant :
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("Joueurs :", res)
cmds = await client.read_resource("minecraft://commands")
print("Commandes :", list(cmds.keys())[:5])
asyncio.run(test())
🧰 Comment Ça Fonctionne
- Fonctionnalité FastMCP : Charge automatiquement les outils et ressources pour une gestion efficace des commandes.
- Ressource de Commandes : La ressource
minecraft://commands
fournit un dictionnaire des commandes disponibles. - Exécution de Commandes : L'outil
run_minecraft_command
utilisemcrcon
pour envoyer des commandes au serveur Minecraft.
📚 Références
🛠 Prochaines Étapes
- Implémenter le support pour le transport HTTP/SSE en utilisant Docker.
- Améliorer la validation des arguments et les fonctionnalités d'autocomplétion via le dictionnaire de commandes.
- Ajouter des journaux pour des actions supplémentaires telles que
/start
,/stop
,/backup
, et/whitelist
.
Préparez-vous à élever votre expérience de serveur Minecraft ! 🚀
Détail
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/
├── commands.json # Commands dictionary and examples
├── server.py # Main MCP server
├── commands.json # Minecraft commands for context
└── (venv/) # Virtual environment (optional)
⚙️ Installation
-
Clone the repository:
cd Minecraft-MCP-Server/mcp_server
-
Create an environment and install dependencies:
python -m venv venv venv\Scripts\activate pip install mcp[cli] mcrcon
📝 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
🚀 Running
Activate the virtual environment and run:
venv\Scripts\activate
python server.py
Monkey patch: starts MCP server in STDIO by default (apidog.com, reddit.com, github.com)
⚙️ Integration with Claude Desktop
In claude_desktop_config.json
(e.g., %APPDATA%\Claude\
):
{
"mcpServers": {
"minecraft-controller": {
"type": "stdio",
"command": "C:\\...\\venv\\Scripts\\python.exe",
"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 (medium.com, github.com) - Resource
minecraft://commands
provides the commands dictionary - Tool
run_minecraft_command
usesmcrcon
to send commands to Minecraft
📚 References
🛠 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! 🚀
Configuration du serveur
{
"mcpServers": {
"minecraft-controller": {
"type": "stdio",
"command": "C:\\...\\venv\\Scripts\\python.exe",
"args": [
"C:\\...\\mcp_server\\server.py"
],
"env": {
"PATH": "%PATH%"
}
}
}
}