mc-host

mc-host

Enables managing a local Minecraft hosting service through MCP, including server creation, start/stop, mod installation, and log retrieval.

Category
Visit Server

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.

Python Flask License


✨ 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 pip und venv)
  • 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:

  1. Server in MC-Host erstellen (Typ wählen)
  2. Installer von der jeweiligen Seite herunterladen:
  3. Installer ausführen: java -jar forge-installer.jar --installServer
  4. Resultierende server.jar in servers/<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.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured