Star-Edit/run.sh
Kenearos 4075cf4ebd
StarCraft-Kampagnen-MCP-Server ("Missions-Baumeister") (#1)
* Projekt-Spezifikation für StarCraft-Kampagnen-MCP-Server in README festhalten

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NaZBZofC1on2gkSMb5UWZy

* StarCraft-Kampagnen-MCP-Server: vollstaendige Implementierung

FastMCP-Server (stdio + Streamable HTTP) mit 13 sc_-Tools fuer das Lesen und
Schreiben von StarCraft-Brood-War-Karten (.scm/.scx) ueber RichChk:

- sc_list_maps, sc_describe_map, sc_list_locations, sc_list_triggers (lesen)
- sc_create_location, sc_rename_location, sc_set_player_setup
- sc_add_trigger (Kern-Tool: 10 Condition- und 20 Action-Typen), sc_remove_trigger,
  sc_clear_triggers
- sc_embed_wav (Voiceover/Sound-Einbettung), sc_save_map, sc_reset_map

Tolerante Pydantic-Eingaben, hilfreiche Fehlermeldungen, readOnly/destructive-Hints.
Karten-Sitzung im Speicher pro Basis-Karte; Basis-Karte bleibt unveraendert.

Deployment: Dockerfile (python:3.12-slim), docker-compose, Caddyfile, run.sh.
Beispiel-Basis-Karte in data/maps. Selbsttest beweist die ganze Pipeline.

Verifiziert: Pipeline + alle Tools + WAV-Einbettung + Streamable-HTTP-Handshake
(echter MCP-Client), unter Python 3.11 und 3.12.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NaZBZofC1on2gkSMb5UWZy

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-06-22 11:29:34 +02:00

40 lines
974 B
Bash
Executable file

#!/usr/bin/env bash
# Ein-Befehl-Start/Neustart des StarCraft-Kampagnen-MCP-Servers.
#
# ./run.sh -> baut (falls noetig) und startet/neustartet den Container
# ./run.sh logs -> zeigt die Live-Logs
# ./run.sh selftest -> fuehrt den Selbsttest im Container aus
# ./run.sh stop -> stoppt den Container
set -euo pipefail
cd "$(dirname "$0")"
# docker compose (v2) bevorzugen, sonst docker-compose (v1).
if docker compose version >/dev/null 2>&1; then
DC="docker compose"
else
DC="docker-compose"
fi
cmd="${1:-up}"
case "$cmd" in
up|"")
$DC up -d --build
echo
echo "Server laeuft. Streamable-HTTP-Endpunkt intern: http://sc-mcp:8000/mcp"
echo "Oeffentlich (via Caddy): https://sc-mcp.pixel-by-design.de/mcp"
;;
logs)
$DC logs -f sc-mcp
;;
selftest)
$DC run --rm sc-mcp python selftest.py
;;
stop|down)
$DC down
;;
*)
echo "Unbekannter Befehl: $cmd"
echo "Nutze: ./run.sh [up|logs|selftest|stop]"
exit 1
;;
esac