mc-host

mc-host

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

Category
访问服务器

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.

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选
mcp-server-qdrant

mcp-server-qdrant

这个仓库展示了如何为向量搜索引擎 Qdrant 创建一个 MCP (Managed Control Plane) 服务器的示例。

官方
精选
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选