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
stdioet 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://commandsfournit un dictionnaire des commandes disponibles. - Exécution de Commandes : L'outil
run_minecraft_commandutilisemcrconpour 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
Configuration du serveur
{
"mcpServers": {
"minecraft-controller": {
"type": "stdio",
"command": "C:\\...\\venv\\Scripts\\python.exe",
"args": [
"C:\\...\\mcp_server\\server.py"
],
"env": {
"PATH": "%PATH%"
}
}
}
}