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
This commit is contained in:
parent
70d10c4554
commit
9604e26351
17 changed files with 1852 additions and 121 deletions
21
starcraft_mcp/__init__.py
Normal file
21
starcraft_mcp/__init__.py
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
"""StarCraft-Kampagnen-MCP-Server ("Missions-Baumeister").
|
||||
|
||||
Ein MCP-Server, der StarCraft-Brood-War-Karten (.scm/.scx) liest und schreibt,
|
||||
damit Claude aus einer Kreativ-Vorlage echte, spielbare Missionsdateien baut.
|
||||
Die Karten-Manipulation laeuft komplett ueber die Bibliothek RichChk.
|
||||
"""
|
||||
|
||||
import os as _os
|
||||
|
||||
# RichChk loggt sonst sehr ausfuehrlich (INFO/WARNING) nach stderr. Wir setzen das
|
||||
# Log-Level per RichChk-Config-Datei auf CRITICAL, BEVOR irgendein RichChk-Logger
|
||||
# erzeugt wird (RichChk liest die Datei beim ersten get_logger). Das haelt die Ausgabe
|
||||
# sauber; unsere Tools melden Fehler ohnehin als Exceptions.
|
||||
_os.environ.setdefault(
|
||||
"io.sethmachine.richchk.config",
|
||||
_os.path.join(_os.path.dirname(__file__), "richchk_logging.yaml"),
|
||||
)
|
||||
|
||||
__all__ = ["__version__"]
|
||||
|
||||
__version__ = "0.1.0"
|
||||
Loading…
Add table
Add a link
Reference in a new issue