mc-host
Enables managing a local Minecraft hosting service through MCP, including server creation, start/stop, mod installation, and log retrieval.
README
MC-Host – Lokaler Minecraft-Hosting-Dienst 🎮
Verwandle deinen Raspberry Pi (oder jeden Linux-Rechner) in einen vollwertigen Minecraft-Hosting-Dienst – wie Aternos, nur bei dir zuhause. Komplett privat, keine Cloud, keine Abos.
✨ Features
| Feature | Beschreibung |
|---|---|
| 🎮 Alle Server-Typen | Vanilla, Paper, Forge, Fabric, Quilt + Bedrock (BDS) |
| 📦 Alle Versionen | Komplette Versionsliste aus dem Mojang-Manifest (Releases + Snapshots) |
| ⬇️ Auto-Download | Server-JAR/BDS wird automatisch heruntergeladen – kein manuelles Hantieren |
| 🧩 Mod-Store | 70.000+ Mods/Plugins von Modrinth – 1-Klick-Installation mit Kompatibilitäts-Check |
| 🪨 Bedrock-Addons | .mcpack/.mcaddon hochladen → automatisch in behavior/resource_packs entpackt |
| 📟 Live-Konsole | Echtzeit-Logs im Browser mit farbcodierten Meldungen |
| 💻 Client-Sync-Tool | mc-sync.py synchronisiert Server-Mods automatisch auf den Spieler-PC |
| 🔌 MCP-Server | Komplette API als MCP-Tools exponiert – jede MCP-GUI kann den Dienst steuern |
| 🌙 Dark Dashboard | Modernes, responsives Web-UI mit Dark Theme (mobil-tauglich) |
| 🔒 100 % Privat | Läuft komplett lokal im Heimnetz – keine Cloud, keine Accounts |
🚀 Installation
Voraussetzungen
- Python 3.10+ (mit
pipundvenv) - Java 17+ (für Minecraft-Java-Server):
sudo apt install default-jre-headless - Git (optional, zum Klonen)
Schnellstart
# 1. Repository klonen
git clone https://github.com/DEIN-USER/mc-host.git
cd mc-host
# 2. Automatisch einrichten (erstellt venv + installiert Abhängigkeiten)
bash install.sh
# 3. Server starten
.venv/bin/python app.py
Oder manuell:
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
python3 app.py
Öffne http://<IP>:5000 im Browser (z.B. http://192.168.178.116:5000).
Firewall (optional)
sudo ufw allow from 192.168.178.0/24 to any port 5000 proto tcp
sudo ufw allow from 192.168.178.0/24 to any port 25565 proto tcp
📱 Web-Dashboard
Das Dashboard bietet:
- Server-Übersicht – Alle Server als Karten mit Status-LED, Version, Typ und Mod-Anzahl
- Server-Wizard – 4-Schritte-Wizard: Name → Typ → Version → RAM → Erstellen
- Live-Konsole – Echtzeit-Logs mit Farbcodierung (INFO/WARN/ERROR)
- Mod-Store – Modrinth-Suche mit 1-Klick-Installation
- Datei-Upload – .jar/.mcpack/.mcaddon direkt hochladen
- Server-Einstellungen – RAM, Port anpassen
- Landing Page – Marketing-Seite unter
/landing.html
🔗 API-Referenz
Alle Endpunkte unter http://<host>:5000/api/.
System
| Methode | Endpunkt | Beschreibung |
|---|---|---|
| GET | /api/status |
Health-Check (Service-Status, Server-Anzahl) |
| GET | /api/versions |
Alle verfügbaren Versionen (Vanilla, Paper, Bedrock) |
Server-Verwaltung
| Methode | Endpunkt | Beschreibung |
|---|---|---|
| GET | /api/servers |
Alle Server auflisten |
| POST | /api/servers |
Neuen Server erstellen |
| POST | /api/servers/<name>/start |
Server starten |
| POST | /api/servers/<name>/stop |
Server stoppen |
| POST | /api/servers/<name>/restart |
Server neustarten |
| GET | /api/servers/<name>/logs |
Konsolen-Logs abrufen |
| GET | /api/servers/<name>/settings |
Einstellungen abrufen |
| POST | /api/servers/<name>/settings |
Einstellungen ändern |
| DELETE | /api/servers/<name> |
Server löschen (unwiderruflich!) |
Mods & Plugins
| Methode | Endpunkt | Beschreibung |
|---|---|---|
| GET | /api/servers/<name>/mods |
Installierte Mods auflisten |
| POST | /api/servers/<name>/mods |
Mod manuell registrieren |
| POST | /api/servers/<name>/mods/install |
Mod aus Modrinth installieren |
| POST | /api/servers/<name>/mods/upload |
Mod-Datei hochladen |
| GET | /api/servers/<name>/mods/download/<file> |
Mod-Datei herunterladen (für Client-Sync) |
| DELETE | /api/servers/<name>/mods/<file> |
Mod entfernen |
| GET | /api/store/search?q=<query> |
Modrinth-Mod-Suche |
Beispiele
# Server erstellen
curl -X POST http://localhost:5000/api/servers \
-H 'Content-Type: application/json' \
-d '{"name":"survival","version":"1.21.1","type":"vanilla","ram":1024}'
# Mod installieren (Modrinth)
curl -X POST http://localhost:5000/api/servers/survival/mods/install \
-H 'Content-Type: application/json' \
-d '{"modId":"AANobbMI","name":"Sodium"}'
# Mod-Datei hochladen
curl -X POST http://localhost:5000/api/servers/survival/mods/upload \
-F 'file=@sodium-fabric-0.6.jar'
💻 Client-Sync-Tool (mc-sync.py)
Das Client-Sync-Tool installiert automatisch alle Server-Mods auf dem Spieler-PC.
Einrichtung (Windows/Linux)
# 1. Python + requests installieren
pip install requests
# 2. Sync starten
py mc-sync.py
# → Beim ersten Start: MC-Host-URL eingeben (z.B. http://192.168.178.116:5000)
# → Wird in ~/.mc-sync.json gespeichert
# Oder direkt:
py mc-sync.py --host http://192.168.178.116:5000 sync DemoWelt
Funktionen
- Server auflisten:
py mc-sync.py list - Mods synchronisieren:
py mc-sync.py sync <servername> - Interaktiver Modus:
py mc-sync.py(zeigt Server, fragt nach Auswahl)
Was passiert beim Sync?
| Server-Typ | Mod-Ziel auf dem PC |
|---|---|
| Vanilla/Forge/Fabric | ~/.minecraft/mods/ |
| Paper/Spigot | ~/.minecraft/plugins/ |
| Bedrock | games/com.mojang/behavior_packs/ + resource_packs/ |
🔌 MCP-Server (mc_host_mcp.py)
MC-Host ist als MCP-Server (Model Context Protocol) exponiert. Jede MCP-fähige GUI oder KI kann den Dienst steuern.
Start
.venv/bin/python mc_host_mcp.py
Test mit MCP Inspector
npx @modelcontextprotocol/inspector -- .venv/bin/python mc_host_mcp.py
Verfügbare MCP-Tools
| Tool | Beschreibung |
|---|---|
list_servers |
Alle Server auflisten |
get_status |
Service-Status |
list_versions |
Verfügbare Versionen |
create_server |
Server erstellen |
start_server |
Server starten |
stop_server |
Server stoppen |
restart_server |
Server neustarten |
get_logs |
Konsolen-Logs |
list_mods |
Installierte Mods |
search_mods |
Modrinth-Suche |
install_mod |
Mod installieren |
remove_mod |
Mod entfernen |
delete_server |
Server löschen |
Antigravity / Gemini CLI Konfiguration
{
"mcpServers": {
"mc-host": {
"command": "/home/david/mc-host/.venv/bin/python",
"args": ["/home/david/mc-host/mc_host_mcp.py"]
}
}
}
📁 Projektstruktur
mc-host/
├── app.py # Flask-Backend (REST API + Server-Verwaltung)
├── mc-sync.py # Client-Sync-Tool (Mods auf Spieler-PC)
├── mc_host_mcp.py # MCP-Server (API als MCP-Tools)
├── requirements.txt # Python-Abhängigkeiten
├── install.sh # Automatisches Setup-Skript
├── static/
│ ├── index.html # Dashboard SPA (Dark Theme)
│ └── landing.html # Marketing-Landing-Page
├── servers/ # Server-Daten (pro Server ein Ordner)
│ └── DemoWelt/ # Beispiel: Vanilla 1.20.4
│ ├── server.json # Server-Konfiguration
│ ├── mods.json # Installierte Mods
│ ├── server.jar # Minecraft-Server-JAR
│ ├── console.log # Konsolen-Ausgabe
│ └── world/ # Welt-Daten
├── PLAN.md # Feature-Plan
└── README.md # Diese Datei
⚠️ Bekannte Einschränkungen
PaperMC (Cloudflare-Block)
PaperMC blockiert API-Anfragen von bestimmten IPs (Cloudflare-Schutz). Auf dem Raspberry Pi ist die Paper-Versionsliste daher leer und Paper-Server-Downloads schlagen fehl. Workaround: Paper-JAR manuell von papermc.io herunterladen und als server.jar in den Server-Ordner legen.
Forge/Fabric/Quilt (manuelle Installation)
Der automatische Download funktioniert nur für Vanilla und Bedrock. Für Forge, Fabric und Quilt muss die server.jar manuell erstellt werden:
- Server in MC-Host erstellen (Typ wählen)
- Installer von der jeweiligen Seite herunterladen:
- Forge: files.minecraftforge.net
- Fabric: fabricmc.net
- Quilt: quiltmc.org
- Installer ausführen:
java -jar forge-installer.jar --installServer - Resultierende
server.jarinservers/<name>/legen
Bedrock (BDS) – nur x86_64
Bedrock Dedicated Server (BDS) ist ein x86_64-Binary. Auf dem ARM-basierten Raspberry Pi kann BDS nicht gestartet werden. Setup, Addon-Upload und Konfiguration funktionieren aber problemlos. Start nur auf x86-Rechnern (z.B. Desktop-PC, Intel NUC).
Bedrock-Versionen
Minecraft.net stellt nur die neuesten BDS-Versionen zum Download bereit. Ältere Versionen werden entfernt. MC-Host prüft per HEAD-Request welche Versionen verfügbar sind (Cache: 6h).
Sicherheit
MC-Host ist für den privaten LAN-Betrieb konzipiert. Das Web-UI hat keine Authentifizierung. Nicht im Internet exponieren! Für LAN-Zugriff: Firewall (ufw) auf das lokale Subnetz beschränken.
🛠 Entwicklung
# Server im Debug-Modus starten (Auto-Reload)
.venv/bin/python app.py
# MCP-Server testen
npx @modelcontextprotocol/inspector -- .venv/bin/python mc_host_mcp.py
# API testen
curl http://localhost:5000/api/status
curl http://localhost:5000/api/servers
📜 Lizenz
MIT – Frei verwendbar, auch kommerziell.
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。
mcp-server-qdrant
这个仓库展示了如何为向量搜索引擎 Qdrant 创建一个 MCP (Managed Control Plane) 服务器的示例。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。