Commander Workshop MCP
Commander Workshop MCP
Commander Workshop ist ein lokaler MCP-Server zum Erstellen, Prüfen, Vergleichen und Umsetzen von Magic: The Gathering Commander-Decks. Er kombiniert festgelegte Regeln und Kartendaten mit Ihrem explizit importierten Sammlungsbestand, hält die Deck-Absicht getrennt vom Besitz und verwandelt einen vollständigen Plan in Entnahmen, Tauschaktionen, Ersatz, Proxys oder Käufe.
Der Server eignet sich für uneingeschränktes Brauen, bestandsorientierten Bau, Bracket-3-Planung und Precon-Upgrades mit festem Budget. Er bewertet begrenzte vollständige Kandidaten und sagt bestes gefunden unter diesen Einschränkungen, anstatt eine universelle Stärkebewertung oder ein mathematisch perfektes Deck zu behaupten.
Funktionen
Bedarf | Was Commander Workshop bietet |
Brauen oder Upgraden | Vollständige, legalitätsgeprüfte Pläne unter kombinierbaren Einschränkungen |
Ein Deck verstehen | Mana, Kurve, Rollen, Pakete, Themenbelege und Unsicherheit |
Eigene Karten nutzen | ManaBox- und gemappte CSV-Importe mit Binder-/Deck-Standorten |
Pläne ehrlich halten | Decklisten implizieren nie Besitz; zusammengestellte Deck-Kopien werden gemeldet |
Fehlende Karten finden | Nicht-reservierende Verfügbarkeit plus umsetzbare Erfüllungspläne |
Budget einhalten | Native USD/EUR-Beschränkungen und 50-Einheiten-Bracket-3-Upgrade-Voreinstellungen |
Preise prüfen | Lokale Scryfall-Schätzungen oder optionale schreibgeschützte CardTrader-Angebote |
Mit Agenten integrieren | Elf MCP-Tools und unveränderliche, paginierte Ressourcen über stdio |
Related MCP server: MTG-MCP
Datenschutzversprechen
Ihre Sammlungen, Bindernamen, Standorte und physischen Deck-Zuordnungen bleiben standardmäßig lokal. Lokale Importe sind auf konfigurierte Wurzelverzeichnisse beschränkt. Der Server überträgt keine Decks, ändert keine Sammlungen, reserviert keine Karten, fügt keine Marktplatzartikel in einen Warenkorb ein oder schließt Käufe ab. Die optionale Marktplatzpreisermittlung sendet nur die minimalen Druckanforderungen und liest Anmeldeinformationen aus der Umgebung oder dem MCP-Host-Geheimnisspeicher.
Installation
Commander Workshop benötigt Python 3.11 oder neuer. Aus einem Repository-Checkout:
python -m venv .venv
. .venv/bin/activate
python -m pip install -e .V1 unterstützt derzeit nur POSIX-Dateisysteme. Seine unveränderlichen Veröffentlichungspfade erfordern Dateiverzeichnisdeskriptoren, O_DIRECTORY, O_NOFOLLOW, harte Links, fsync und ratschließende Sperren; Windows wird nicht unterstützt. Der stdio-Server erwartet außerdem die als nächstes vorbereiteten verifizierten lokalen Eingaben.
Katalog- und Regelwerkeinrichtung
V1 stellt bewusst keine Netzwerkanfrage beim Serverstart. Laden Sie das Scryfall Default Cards JSONL gzip über Scryfalls dokumentierte Bulk-Daten-API herunter, bereiten Sie das Fünf-Dateien-Regelwerk vor, das in docs/rules-bundle.md spezifiziert ist, und führen Sie dann den getesteten Offline-Bootstrap-Befehl aus:
.venv/bin/commander-workshop-bootstrap \
--data-dir /absolute/path/to/commander-workshop-data \
--catalog-jsonl-gz /absolute/path/to/default-cards.jsonl.gz \
--catalog-url https://data.scryfall.io/default-cards.jsonl.gz \
--catalog-retrieved-at 2026-08-15T12:00:00+00:00 \
--rules-bundle /absolute/path/to/rules-bundleVerwenden Sie die tatsächliche Download-URL und Abrufzeit. --data-dir ist ein sicheres Installationswurzelverzeichnis; es kann bereits nicht zusammenhängende Dateien enthalten, die der Bootstrap niemals entfernt oder überschreibt. Der Befehl überprüft das gzip und das Regelwerk, erstellt eine inhaltsadressierte Umgebung unter environments/<sha256> und veröffentlicht einen atomaren READY-Marker, sobald die vollständige Darstellung dauerhaft ist. Ein erneuter Versuch stellt eine unvollständige Umgebung exakt wieder her und gibt dieselbe Version zurück. Veröffentlichte Katalog- und Regelwerksdateien sind exklusive Byte-Kopien ohne beibehaltene Stufen-Aliasnamen. Symbolische Verknüpfungen als Eingaben, harte Link-Aliasnamen, unerwartete Beilagen und widersprüchliche vorhandene Inhalte schlagen fehl.
Vor dem Bauen erkennt Bootstrap eine vollständig verifizierte READY-Umgebung anhand ihrer versionierten Eingabeidentität, sodass normale Wiederholungen derselben Eingabe keine neue Stufe erzeugen. Fehlgeschlagene Stufen sind inert und können zur manuellen Inspektion verbleiben; Bootstrap löscht niemals rekursiv Stufeninhalte, deren Besitz es nicht mehr nachweisen kann.
Das ausgegebene Datenverzeichnis bleibt das veränderliche Installationswurzelverzeichnis, in dem MCP-Aufzeichnungen unter records/ geschrieben werden. Die ausgegebenen Katalog- und Regelwerkspfade zeigen auf die beglaubigte fertige Version. Verwenden Sie alle drei Werte zusammen; Verzeichnisse ohne gültigen READY-Marker sind unvollständiger Bootstrap-Zustand und werden niemals zurückgegeben.
Umgebungsvariable | Zweck | Bootstrap-Ausgabeform |
| Veränderliche Laufzeitwurzel für inhaltsadressierte MCP-Aufzeichnungen |
|
| Katalog |
|
| Regelwerk JSON |
|
| Erlaubte lokale Importwurzelverzeichnisse, getrennt durch das OS-Pfadtrennzeichen | keine Dateiimporte |
| Optionale schreibgeschützte CardTrader-Authentifizierung | nicht gesetzt |
Setzen Sie nach dem Bootstrap COMMANDER_WORKSHOP_IMPORT_ROOTS auf ein oder mehrere vorhandene absolute Verzeichnisse und verwenden Sie die ausgegebenen Werte für die anderen Variablen. Ein fehlender, veralteter oder ungültiger kritischer Quellwert schlägt fehl. Siehe den Architekturleitfaden für den Datenfluss.
Claude, Codex und generische stdio-Konfiguration
Für Claude Desktop oder einen anderen Host, der die übliche JSON-Struktur verwendet, kopieren Sie examples/mcp-config.json und ersetzen Sie dessen absolute Platzhalterpfade.
Codex kann dieselbe ausführbare Datei aus config.toml verwenden:
[mcp_servers.commander_workshop]
command = "/absolute/path/to/commander-workshop-mcp/.venv/bin/commander-workshop-mcp"
args = []
[mcp_servers.commander_workshop.env]
COMMANDER_WORKSHOP_DATA_DIR = "/absolute/install-root"
COMMANDER_WORKSHOP_CATALOG_CURRENT = "/absolute/install-root/environments/<printed-sha256>/catalog/current.json"
COMMANDER_WORKSHOP_RULESET = "/absolute/install-root/environments/<printed-sha256>/rules/current.json"
COMMANDER_WORKSHOP_IMPORT_ROOTS = "/absolute/path/to/imports"Jeder MCP-v2-Client kann diese absolute ausführbare Datei der virtuellen Umgebung als lokalen stdio-Subprozess mit diesen Umgebungsvariablen starten. In V1 gibt es keinen HTTP-Dienst oder Kontoeinrichtung. Eine pipx-Installation ist ebenfalls möglich: Verwenden Sie den absoluten Pfad, der von pipx environment --value PIPX_BIN_DIR zurückgegeben wird, verbunden mit commander-workshop-mcp.
End-to-End-Beispiel: Uneingeschränktes Brauen
Verwenden Sie
search_cards, um den festgelegten Katalog zu durchsuchen, undload_deckfür jeden vollständigen Kandidaten-Deck, der während des Brauens erstellt wird.Rufen Sie
plan_deckmit der Operationbuild, dem Kartenpoolall_legal, den gewünschten Bracket-/Themen-/Proxy-Dimensionen und einem bis acht vollständigen Kandidaten-Einreichungen auf. Lesen Sie die zurückgegebenecommander://plans/...-Ressource.Laden Sie optional eine Sammlung, rufen Sie
resolve_availabilityfür den Gewinnerplan auf, dann rufen Siecreate_fulfillment_planauf. Die Verfügbarkeit bleibt hypothetisch; die Erfüllung weist nur innerhalb dieses unveränderlichen Ergebnisses eine Kopie zu.
Dieser Ablauf ist beim Brauen nicht durch den Bestand eingeschränkt, kann aber dennoch zeigen, was vorhanden ist und was fehlt, bevor der Benutzer handelt. Die vollständige plan_deck-Anfragevorlage wird durch die Akzeptanzsuite schemavalidierend geprüft.
End-to-End-Beispiel: Bau nur mit eigenem Bestand
Exportieren Sie die physische Sammlung als ManaBox-CSV oder ein CSV mit expliziten Spaltenzuordnungen, rufen Sie dann
load_collection_snapshotim strikten Modus auf.Verwenden Sie
search_library, um Kandidatenkarten nach Name, Druck, Binder oder zusammengestellter Deck-Zuordnung zu finden.Rufen Sie
plan_deckmit dem Kartenpoolowned_onlyund der Sammlungs-Snapshot-ID auf. Ein Kandidat mit einer nicht besessenen Nicht-Basiskarte scheitert an der harten Einschränkung.Lesen Sie die Plan- und Verfügbarkeitsressourcen, um Binder-Entnahmen und Konflikte zu sehen. Eine bereits einem Deck zugeordnete Kopie wird gemeldet, nicht stillschweigend als frei behandelt.
Verwenden Sie die vollständige Nur-eigener-Bestand-Anfragevorlage, nachdem Sie deren Deck- und Sammlungs-IDs durch vorherige Tool-Ergebnisse ersetzt haben.
End-to-End-Beispiel: Bracket 3 USD/EUR 50 Precon-Upgrade
Exportieren oder fügen Sie das Precon ein und rufen Sie
load_deckauf; es bleibt Deck-Absicht, kein Besitzanspruch.Laden Sie vollständige Upgraded-Kandidaten und rufen Sie
plan_deckmit der Operationupgrade, dem Precon alsstarting_deck_id, Bracket 3 und entweder derprecon-upgrade-50-usd- oderprecon-upgrade-50-eur-Szenario-Voreinstellungssemantik auf.Überprüfen Sie genaue Hinzufügungen/Streichungen, datierte Bracket-Belege, Game Changers, Themenfakten und die garantierte Beschaffungsobergrenze in der nativen Währung. Fehlende erforderliche Preisbelege können die Obergrenze nicht als Null passieren.
Lösen Sie optional den Bestand auf, wählen Sie Entnahmen/Tausch/Ersatz/Proxys mit
create_fulfillment_plan, rufen Sie dannprice_purchasesfür die verbleibenden Kaufpositionen auf. Die Preisermittlung dient nur zur Information und gibt niemals eine Bestellung auf.
Die USD-50-Anfragevorlage enthält das vollständige Szenario, Kandidatenbelege, Bewertungsdefinitionen, Bracket-Richtlinie und das Startdeck-Feld. Ändern Sie sowohl Währung als auch Gesamtrichtlinie für die EUR-Voreinstellung.
Unterstützte Importe
ManaBox-Sammlungs-CSV, das physische Binder und registrierte Decks von Wunschlisten oder anderen Nicht-Besitz-Listen trennt.
Generisches Sammlungs-CSV mit einer expliziten Zuordnung für Menge und genaue Kartenidentität, plus optionalen Druck- und Standortfeldern.
Arena-artiger und üblicher Mengen-/Name-/Set-/Sammelnummern-Decktext.
Benutzerexportierter Decktext von Moxfield, Archidekt, Deckbox, Deckstats, TopDecked und ähnlichen Hosts, wenn er dem unterstützten Textdialekt entspricht.
Fügen Sie einen Export ein oder wählen Sie ihn aus, den Sie verwenden dürfen. V1 durchsucht keine Kontoseiten, verwendet keine Browser-Cookies wieder oder ruft undokumentierte Deck-Host-Endpunkte auf. Direkte gehostete URLs geben unsupported_source zurück; exportieren Sie das Deck und importieren Sie dessen Text.
Tools
Die öffentliche Oberfläche umfasst genau elf Tools:
Tool | Zweck |
| Durchsucht den verifizierten lokalen Katalog mit begrenzten Filtern und Paginierung. |
| Normalisiert eine strikte oder explizit partielle lokale Sammlungs-Snapshot. |
| Normalisiert Decktext, ohne Besitz abzuleiten. |
| Durchsucht physische Kopien, Standorte, Drucke und Deck-Zuordnungen. |
| Prüft genaue Konstruktion, Legalität, Rule Zero und Szenariofakten. |
| Meldet strukturelle Metriken, Rollen, Pakete, Belege und Unsicherheit. |
| Wählt einen vollständigen bestgefundenen Kandidaten unter einem zusammengesetzten Szenario aus. |
| Vergleicht genaue Änderungen und Belege ohne eine aggregierte Stärkebewertung. |
| Findet genaue Kopien, Konflikte, Alternativen, Proxys und Lücken ohne Reservierung. |
| Erstellt eine datierte schreibgeschützte Preisschnappschuss für ungelöste Käufe. |
| Wählt Entnahmen, Deck-Tausch, Ersatz, Proxys und Käufe aus. |
Jedes Tool gibt einen versionierten Umschlag mit einer stabilen Ergebnis-ID, Status, prägnanter Zusammenfassung, Problemen, Quellstempeln und normalerweise einem Ressourcen-URI zurück.
Ressourcen
commander://cards/{oracle_id}
commander://searches/{result_id}
commander://collections/{snapshot_id}
commander://decks/{deck_id}
commander://plans/{plan_id}
commander://availability/{resolution_id}
commander://prices/{snapshot_id}
commander://fulfillment/{plan_id}
commander://rules/current
commander://presetsAufzeichnungen sind unveränderlich und inhaltsadressiert. Sammlungen und breite Suchen sind begrenzt und paginiert; Tool-Zusammenfassungen vermeiden das Wiederholen von Sammlungsinhalten.
Szenariodimensionen
Ein Planungsszenario setzt diese unabhängigen Entscheidungen zusammen:
operation: build, upgrade oder analyze;
bracket: 1 bis 5, mit datiertem Zug- und Game-Changer-Beleg;
card pool:
all_legal,prefer_ownedoderowned_only;budget: nativer Währungsbetrag und optionales Pro-Karten-Limit, einschließlich USD/EUR 50 Precon-Upgrade-Voreinstellungen;
proxy policy: none, owned-once oder unlimited, wo die Spielgruppe es erlaubt;
theme policy: strict contract, flexible preference oder strength-oriented;
geschützte zusammengestellte Decks, festgelegtes Regelwerk und deterministischer Seed.
Bracket-Fit und strategische Stärke werden nicht zu einer einzigen Bewertung zusammengefasst. Offizielle Commander-Regeln bleiben maßgeblich, und Rule-Zero-Überschreibungen müssen explizit sein.
Preissemantik
price_purchases trennt Artikelzwischensumme, Anbieterzwischensumme, Versand und geschätzte Gesamtsumme inklusive Einfuhrabgaben. Unbekannte Artikel oder Versand bleiben null, niemals null. Ein garantiertes Budget kann nur dann durchgehen, wenn jeder erforderliche Kauf unter der ausgewählten Richtlinie über einen berechtigten, bekannten Nachweis verfügt.
Scryfall-Katalogwerte sind indikative PriceEstimate-Beobachtungen, keine Checkout-Angebote. CardTrader-Einträge sind schreibgeschützte PurchaseQuote-Beobachtungen. Planungsschätzungen verwenden ein deklariertes Aktualitätsfenster von höchstens 24 Stunden; CardTrader kann eine kürzere Listungslebensdauer verwenden. Teilweise und veraltete Beobachtungen enthalten explizite unknown_price-, Authentifizierungs-, Ausfall- oder Ratenbegrenzungsprobleme.
Anbieterbeschränkungen
Scryfall-Schätzungen stammen aus dem verifizierten lokalen Katalog, können eine Währung, Veredelung, Zustand, Sprache, Menge oder Versand vermissen lassen und sind nicht käuflich.
CardTrader ist optional, erfordert
CARDTRADER_API_TOKEN, verwendet nur feste dokumentierte GET-Endpunkte, folgt keinen Weiterleitungen und optimiert keinen perfekten Multi-Verkäufer-Warenkorb.Cardmarket und TCGplayer sind standardmäßig nicht aktiviert; Zugriffsbeschränkungen und Anbieterbedingungen müssen von jedem zukünftigen Adapter respektiert werden.
Kein Anbieter kann Deck-Legalität, Sammlungsbesitz, Proxy-Richtlinie oder Reservebestand ändern. Kein Anbieter stellt Warenkorb- oder Kaufvorgänge bereit.
Normale Tests und CI stellen keine Live-Marktplatz- oder Deck-Host-Anfragen.
Entwicklung
python -m pip install -e '.[test]'
python scripts/check_public_tree.py
ruff check src tests scripts
pytest -q
python -m buildDer Datenschutz-Scanner durchsucht den verfolgten Baum nach privaten Pfaden, Anmeldeinformationen, Datenbanken, unsicheren Datenexporten, Symlinks und undokumentierten/überdimensionierten Testdaten. Alle Testdaten sind synthetisch und deterministisch.
Architektur
Siehe docs/architecture.md für Komponentengrenzen, unveränderlichen Speicher, Vertrauensgrenzen, Planungs-/Erfüllungsablauf und Erweiterungspunkte.
Sicherheitsmeldungen
Folgen Sie SECURITY.md. Verwenden Sie eine private Sicherheitsberatung und eine minimale synthetische Reproduktion; fügen Sie niemals einen Sammlungsexport, Binderbestand, Token oder andere persönliche Daten bei.
Namensnennung
Kartennamen, Regeltexte und Katalogmetadaten können von Scryfall abgeleitet sein, dessen Daten- und Namensnennungsanforderungen gelten. Magic: The Gathering-Regeln und Commander-Bracket-Richtlinie werden von Wizards of the Coast veröffentlicht. Anbieternamen und Marktplatzdaten bleiben Eigentum ihrer jeweiligen Inhaber.
Keine Zugehörigkeit
Commander Workshop MCP ist inoffizielle Fan-Software. Sie ist nicht mit Wizards of the Coast, Scryfall, CardTrader oder einem anderen Deck-Host oder Marktplatz verbunden, von diesen empfohlen, gesponsert oder genehmigt. Magic: The Gathering, Commander und verwandte Marken gehören Wizards of the Coast und ihren jeweiligen Inhabern.
Commander Workshop MCP ist inoffizieller Fan-Inhalt, der gemäß der Fan-Content-Richtlinie erlaubt ist. Nicht von Wizards genehmigt/empfohlen. Teile des verwendeten Materials sind Eigentum von Wizards of the Coast. ©Wizards of the Coast LLC.
Lizenz
Die Software wird unter der MIT-Lizenz veröffentlicht. Daten von Drittanbietern zu Karten, Regeln und Marktplätzen unterliegen weiterhin ihren eigenen Bedingungen und Lizenzen.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityDmaintenanceProvides AI assistants with 69 tools, 19 prompts, and 21 resources for deep access to Magic: The Gathering, including card data, combos, draft analytics, Commander metagame, competitive constructed, sideboard strategy, deck building, and rules engine, working with any MCP client.5616MIT
- Alicense-qualityCmaintenanceA comprehensive Model Context Protocol server that provides AI assistants with rich Magic: The Gathering information, including card data, comprehensive rules, EDHREC recommendations, combo interactions, and intelligent Commander deck generation.1MIT
- Flicense-qualityBmaintenanceProvides access to Magic: The Gathering card data via Scryfall API, including search, rulings, sets, and local deck management with multi-owner support.
- AlicenseAqualityBmaintenanceProvides AI assistants with comprehensive Magic: The Gathering data including card info, combos, draft analytics, Commander metagame, constructed formats, sideboard strategy, deck building, and rules.74MIT
Related MCP Connectors
Scryfall MCP — Magic: The Gathering card database.
TCGdex MCP — multi-language open trading card game database (Pokémon TCG and more).
Conformal TCG risk forecasts + AI card grading, x402 pay-per-call oracle, on-chain soul agents.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/gregario/commander-workshop-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server