Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NaZBZofC1on2gkSMb5UWZy
8.3 KiB
Anleitung: StarCraft-Kampagnen-MCP-Server einrichten & benutzen
Diese Anleitung ist für null Programmierkenntnisse gedacht. Du tippst nur die fettgedruckten Befehle ab. Wenn etwas von deinem Setup abhängt, steht ausdrücklich dabei „das musst du anpassen".
0. Was du brauchst (Checkliste)
- Zugang zu deinem Hetzner-VPS (per SSH – also das schwarze Terminal-Fenster, mit dem du dich auf den Server einloggst).
- Auf dem VPS sind Docker und Caddy installiert und laufen bereits (hast du). Caddy ist dein „Türsteher", der die Webadresse + das Sicherheitsschloss (TLS/https) bereitstellt.
- Eine Subdomain, z.B.
sc-mcp.pixel-by-design.de, deren DNS-Eintrag auf die IP-Adresse deines VPS zeigt. (Einstellung beim Anbieter, wo deine Domain liegt.) - Ein Claude-Bezahl-Account (Pro, Max, Team oder Enterprise). Nur diese können eigene „Custom Connectors" hinzufügen – im Gratis-Account fehlt die Funktion.
- Basis-Karten (
.scx/.scm) und optionale WAV-Sounddateien, aus denen Claude Missionen bauen soll. Eine Beispiel-Karte liegt schon dabei.
Begriffe in einem Satz: MCP-Server = das Programm, das Karten lesen/schreiben kann. Connector = die Verbindung, über die Claude dieses Programm benutzt. Docker = verpackt das Programm so, dass es überall gleich startet. Caddy = stellt die https-Webadresse bereit.
Teil A — Einmalig einrichten (ca. 15 Minuten)
A1. Auf den Server einloggen
Öffne ein Terminal auf deinem Computer und logge dich auf dem VPS ein (Adresse/Benutzer hast du von Hetzner):
ssh dein-benutzer@deine-server-ip
Alle weiteren Befehle tippst du auf dem Server (im eingeloggten Fenster).
A2. Das Projekt auf den Server holen
git clone https://github.com/Kenearos/Star-Edit.git
cd Star-Edit
Falls du das Projekt schon mal geholt hast, hol nur die neueste Version:
cd Star-Edit
git pull origin main
A3. Das Docker-Netzwerk von Caddy herausfinden — das musst du anpassen
Damit Caddy mit unserem Server reden kann, müssen beide im selben Docker-Netzwerk sein. Zeig dir die vorhandenen Netzwerke an:
docker network ls
Suche den Namen, den dein Caddy benutzt (oft caddy, manchmal web, proxy o.ä.).
Trage diesen Namen in die Datei docker-compose.yml ein – ganz unten steht:
networks:
web:
external: true
name: caddy # <-- hier den echten Netzwerknamen eintragen
Bearbeiten kannst du die Datei z.B. mit dem Editor nano:
nano docker-compose.yml
(Ändern, dann mit Strg+O, Enter speichern und Strg+X schließen.)
Wenn du dir unsicher bist, welches Netzwerk Caddy nutzt:
docker inspect <caddy-container-name> | grep -i networkzeigt es an.
A4. Subdomain auf den Server zeigen lassen (DNS) — das musst du anpassen
Beim Anbieter deiner Domain legst du einen A-Record an:
| Typ | Name (Host) | Wert (Ziel) |
|---|---|---|
| A | sc-mcp |
die IP-Adresse deines VPS |
Damit wird sc-mcp.pixel-by-design.de auf deinen Server gezeigt. (Kann ein paar Minuten
bis Stunden dauern, bis es überall aktiv ist.)
A5. Caddy für die Subdomain konfigurieren
Öffne deine bestehende Caddy-Konfiguration (deine Caddyfile) und füge diesen Block
hinzu – er steht auch in der mitgelieferten Datei Caddyfile:
sc-mcp.pixel-by-design.de {
reverse_proxy sc-mcp:8000
}
Das heißt: „Alles, was an sc-mcp.pixel-by-design.de ankommt, leite an unseren Server
weiter." Caddy holt das https-Zertifikat automatisch.
Danach Caddy neu laden (je nach deinem Setup einer dieser Befehle):
docker exec -w /etc/caddy <caddy-container-name> caddy reload
# oder, falls Caddy nicht in Docker läuft:
sudo systemctl reload caddy
Falls du die Subdomain im selben Reverse-Proxy noch nicht hattest:
<caddy-container-name>findest du mitdocker ps(Spalte NAMES).
A6. Den Server starten (der eine Befehl)
./run.sh
Das baut beim ersten Mal das Programm (dauert 1–2 Minuten) und startet es. Fertig sieht so aus, dass kein Fehler erscheint und der Server läuft.
Prüfen, ob er läuft:
./run.sh logs
(Mit Strg+C schließt du die Log-Ansicht wieder – der Server läuft weiter.)
Schnelltest, ob alles greift (baut testweise eine Mini-Mission):
./run.sh selftest
Wenn am Ende „SELBSTTEST BESTANDEN" steht, ist das Fundament in Ordnung.
A7. In Claude als Connector eintragen
-
Claude öffnen (Web oder App) → Einstellungen → Connectors (bzw. „Connectors verwalten").
-
Custom Connector hinzufügen wählen.
-
Als Adresse/URL eintragen:
https://sc-mcp.pixel-by-design.de/mcp(Wichtig: das
/mcpam Ende gehört dazu.) -
Speichern. Ab jetzt darf Claude im Chat die
sc_-Werkzeuge benutzen.
Teil B — Eine Mission bauen (so läuft es im Alltag)
B1. Karten & Sounds bereitstellen
Lege deine Dateien auf dem Server in den Ordner Star-Edit/data/maps/:
- Basis-Karten:
.scxoder.scm - Sounds/Voiceover:
.wav
Hochladen z.B. vom eigenen Rechner aus (in einem neuen Terminal, nicht eingeloggt auf dem Server):
scp meine-karte.scx funk1.wav dein-benutzer@deine-server-ip:~/Star-Edit/data/maps/
Eine Beispiel-Karte (base-map.scx) liegt bereits drin – du kannst sofort loslegen.
B2. Mit Claude im Chat arbeiten
Schreib Claude einfach, was du willst – auf Deutsch. Claude ruft dann selbst die Werkzeuge auf. Beispiele:
„Zeig mir die vorhandenen Karten." → Claude nutzt
sc_list_maps.
„Beschreib mir die Karte
base-map.scx." → Claude nutztsc_describe_map(Größe, Spieler, Locations, Trigger).
„Erstelle auf
base-map.scxbei Spielstart eine Texteinblendung ‚Mission 1 – Start' und spawne 4 Marines für Spieler 1 an einer neuen Location ‚Basis' in der Kartenmitte. Speichere das Ergebnis alsmission1.scx." → Claude legt die Location an (sc_create_location), baut den Trigger (sc_add_trigger) und speichert (sc_save_map).
Für Voiceover/Funksprüche:
„Bette
funk1.wavein und spiel es bei Sekunde 30 zusammen mit dem Text ‚Achtung, Feindkontakt!' ab." → Claude nutztsc_embed_wav+sc_add_trigger(play_wav + display_text).
B3. Ergebnis abholen
Die fertige Mission liegt danach in Star-Edit/data/maps/ (z.B. mission1.scx). Auf den
eigenen Rechner herunterladen:
scp dein-benutzer@deine-server-ip:~/Star-Edit/data/maps/mission1.scx .
Diese Datei kannst du in StarCraft laden und spielen.
Teil C — Befehls-Spickzettel (auf dem Server, im Ordner Star-Edit)
| Was du willst | Befehl |
|---|---|
| Server starten / neu starten | ./run.sh |
| Logs ansehen (beenden mit Strg+C) | ./run.sh logs |
| Selbsttest laufen lassen | ./run.sh selftest |
| Server stoppen | ./run.sh stop |
| Neueste Programmversion holen | git pull origin main danach ./run.sh |
Teil D — Wenn etwas klemmt
-
Claude sagt, der Connector ist nicht erreichbar.
- Läuft der Server?
./run.sh logsansehen. - Zeigt die Subdomain schon auf den Server? Im Browser
https://sc-mcp.pixel-by-design.de/mcpöffnen – kommt irgendeine Antwort (kein „Server nicht gefunden"), passt das Grundsätzliche. - Sind Caddy und der
sc-mcp-Container im selben Docker-Netzwerk (Schritt A3)?
- Läuft der Server?
-
„network caddy not found" o.ä. beim Start. Der Netzwerkname in
docker-compose.ymlstimmt nicht mit deinem Caddy-Netzwerk überein → Schritt A3 wiederholen (docker network ls). -
Claude findet eine Location/Einheit nicht. Die Fehlermeldung listet die verfügbaren Namen auf – einfach einen davon nehmen oder die Location vorher anlegen lassen.
-
Ich will den Server ohne Caddy nur kurz lokal testen. In
docker-compose.ymldie zweiports:-Zeilen einkommentieren (# ports:und# - "8000:8000"), dann./run.sh. Endpunkt:http://deine-server-ip:8000/mcp.
Sicherheitshinweis
Der Server hat kein Passwort: Wer die URL https://sc-mcp.pixel-by-design.de/mcp
kennt, kann ihn benutzen. Für ein privates Werkzeug ist das meist okay – halte die URL
aber für dich. Wenn du später einen Zugriffsschutz möchtest, sag Bescheid, dann bauen wir
einen (z.B. ein Token in Caddy) ein.