Commander Workshop MCP
Commander Workshop MCP
Commander Workshopは、Magic: The Gatheringの統率者デッキの構築、チェック、比較、および実行のためのローカルファーストなMCPサーバーです。固定ルールとカードデータを、明示的にインポートしたコレクションと組み合わせ、デッキの意図と所有権を分離し、完全な計画を引き出し、交換、代用、プロキシ、または購入に変換します。
このサーバーは、制約のない構築、在庫優先の構築、Bracket 3の計画、固定予算のプレコンアップグレードに役立ちます。制約のある完全な候補を評価し、普遍的なパワースコアや数学的に完璧なデッキを主張するのではなく、これらの制約下で見つかった最良のものを示します。
特徴
ニーズ | Commander Workshopが提供するもの |
構築またはアップグレード | 合成可能な制約下での完全な、合法性チェック済みの計画 |
デッキを理解する | マナ、カーブ、役割、パッケージ、テーマの証拠、不確実性 |
所有カードを使用する | バインダー/デッキの場所を含むManaBoxおよびマッピングされたCSVインポート |
計画を正直に保つ | デッキリストは決して所有権を暗示せず、組み立てられたデッキのコピーが報告される |
不足カードを見つける | 非予約の入手可能性と実行可能な実行計画 |
予算を尊重する | ネイティブのUSD/EUR制約と50ユニットのBracket 3アップグレードプリセット |
価格を確認する | ローカルのScryfall見積もりまたはオプションの読み取り専用CardTrader見積もり |
エージェントと統合する | 11のMCPツールと、stdio上の不変かつページネーションされたリソース |
Related MCP server: MTG-MCP
プライバシーの約束
あなたのコレクション、バインダー名、場所、物理デッキの割り当ては、デフォルトでローカルに保たれます。ローカルインポートは設定されたルートに制限されます。サーバーはデッキをプッシュせず、コレクションを変更せず、カードを予約せず、マーケットプレイスアイテムをカートに追加せず、購入を完了しません。オプションのマーケットプレイス価格設定は、最小限の印刷要件のみを送信し、環境またはMCPホストのシークレットストアから資格情報を読み取ります。
インストール
Commander WorkshopにはPython 3.11以降が必要です。リポジトリのチェックアウトから:
python -m venv .venv
. .venv/bin/activate
python -m pip install -e .V1は現在POSIXファイルシステムのみをサポートしています。その不変の公開パスには、ディレクトリファイルディスクリプタ、O_DIRECTORY、O_NOFOLLOW、ハードリンク、fsync、およびアドバイザリロックが必要です。Windowsはサポートされていません。stdioサーバーは、次に準備される検証済みのローカル入力を期待します。
カタログとルールの設定
V1は、サーバー起動時に意図的にネットワークリクエストを行いません。Scryfallの文書化されたバルクデータAPIを通じてScryfall Default Cards JSONL gzipをダウンロードし、docs/rules-bundle.mdで指定された5ファイルのルールバンドルを準備してから、テスト済みのオフラインブートストラップコマンドを実行します:
.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-bundle実際のダウンロードURLと取得時間を使用してください。--data-dirは安全なインストールルートです。無関係なファイルがすでに含まれている可能性がありますが、ブートストラップはそれらを削除したり上書きしたりすることはありません。このコマンドはgzipとルールを検証し、environments/<sha256>の下にコンテンツアドレス可能な環境を構築し、完全な表現が永続化された後にのみアトミックなREADYマーカーを公開します。再試行は、不完全な環境を正確に回復し、同じバージョンを返します。公開されたカタログとルールファイルは、保持されたステージエイリアスなしの排他的なバイトコピーです。シンボリックリンクされた入力、ハードリンクエイリアス、予期しないサイドカー、競合する既存コンテンツは、失敗クローズされます。
ビルドの前に、ブートストラップはバージョン管理された入力IDによって完全に検証されたREADY環境を検出するため、通常の同一入力の再試行では新しいステージは作成されません。失敗したステージは非アクティブであり、手動検査のために残る可能性があります。ブートストラップは、自分が所有していることを証明できなくなったステージコンテンツを再帰的に削除することはありません。
印刷されたデータディレクトリは、MCPレコードがrecords/の下に書き込まれる可変のインストールルートのままです。印刷されたカタログとルールのパスは、証明された準備完了バージョンを指します。3つの値をすべて一緒に使用してください。有効なREADYマーカーのないディレクトリは不完全なブートストラップ状態であり、決して返されません。
環境変数 | 目的 | ブートストラップ出力形状 |
| コンテンツアドレス可能なMCPレコードの可変ランタイムルート |
|
| カタログ |
|
| ルールセットJSON |
|
| 許可されたローカルインポートルート(OSパス区切り文字で区切る) | ファイルインポートなし |
| オプションの読み取り専用CardTrader認証 | 未設定 |
ブートストラップ後、COMMANDER_WORKSHOP_IMPORT_ROOTSを1つ以上の既存の絶対ディレクトリに設定し、他の変数には印刷された値を使用します。欠落している、古い、または無効な重要なソースは失敗クローズされます。データフローについてはアーキテクチャガイドを参照してください。
Claude、Codex、および一般的なstdio設定
Claude Desktopまたは一般的なJSON形状を使用するその他のホストの場合、examples/mcp-config.jsonをコピーし、絶対パスのプレースホルダーを置き換えてください。
Codexは、config.tomlから同じ実行可能ファイルを使用できます:
[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"任意のMCP v2クライアントは、その絶対的な仮想環境実行可能ファイルを、これらの環境変数を使用してローカルのstdioサブプロセスとして起動できます。v1にはHTTPサービスやアカウント設定はありません。pipxインストールも可能です:pipx environment --value PIPX_BIN_DIRで返される絶対パスにcommander-workshop-mcpを結合したものを使用してください。
エンドツーエンドの例:制約のない構築
search_cardsを使用して固定カタログを検査し、構築中に生成された各完全な候補デッキに対してload_deckを使用します。操作
build、カードプールall_legal、希望するブラケット/テーマ/プロキシの次元、および1〜8の完全な候補提出物を指定してplan_deckを呼び出します。返されたcommander://plans/...リソースを読み取ります。オプションでコレクションをロードし、勝った計画に対して
resolve_availabilityを呼び出し、次にcreate_fulfillment_planを呼び出します。可用性は仮説のままです。実行は、その不変の結果内でのみコピーを割り当てます。
このフローは、構築中は在庫に制約されませんが、ユーザーが行動を決定する前に、手持ちのものと不足しているものを表示できます。完全なplan_deckリクエストテンプレートは、受け入れスイートによってスキーマ検証されています。
エンドツーエンドの例:所有のみの構築
物理コレクションをManaBox CSVまたは明示的な列マッピングを持つCSVとしてエクスポートし、厳密モードで
load_collection_snapshotを呼び出します。search_libraryを使用して、名前、印刷、バインダー、または組み立てられたデッキの割り当てによって候補カードを見つけます。カードプール
owned_onlyとコレクションスナップショットIDを指定してplan_deckを呼び出します。所有していない基本でないカードを持つ候補は、ハード制約に失敗します。計画と可用性リソースを読み取り、バインダーの引き出しと競合を確認します。すでにデッキに割り当てられているコピーは報告され、無料として暗黙的に扱われることはありません。
完全な所有のみのリクエストテンプレートを、デッキとコレクションIDを以前のツール結果に置き換えて使用してください。
エンドツーエンドの例:Bracket 3 USD/EUR 50プレコンアップグレード
プレコンをエクスポートまたは貼り付けて
load_deckを呼び出します。これはデッキの意図のままであり、所有権の主張ではありません。完全なアップグレード候補をロードし、操作
upgrade、開始デッキとしてstarting_deck_id、Bracket 3、およびprecon-upgrade-50-usdまたはprecon-upgrade-50-eurのシナリオプリセットセマンティクスを指定してplan_deckを呼び出します。正確な追加/削除、日付付きのブラケット証拠、Game Changers、テーマの事実、および保証されたネイティブ通貨の取得上限を検査します。必要な価格証拠がない場合、上限をゼロとして通過できません。
オプションで在庫を解決し、
create_fulfillment_planで引き出し/スワップ/代用/プロキシを選択し、残りの購入ラインに対してprice_purchasesを呼び出します。価格設定は情報提供であり、注文は行われません。
USD 50リクエストテンプレートには、完全なシナリオ、候補証拠、スコア定義、ブラケットポリシー、開始デッキフィールドが含まれています。EURプリセットの場合は、通貨と合計ポリシーの両方を変更してください。
サポートされるインポート
ManaBoxコレクションCSV:物理バインダーと登録デッキをウィッシュリストやその他の非所有リストから分離します。
汎用コレクションCSV:数量と正確なカードIDの明示的なマッピング、およびオプションの印刷と場所フィールド。
Arenaスタイルおよび一般的な数量/名前/セット/コレクター番号のデッキテキスト。
Moxfield、Archidekt、Deckbox、Deckstats、TopDeckedなどのユーザーエクスポートデッキテキスト(サポートされるテキスト方言と一致する場合)。
使用が許可されているエクスポートを貼り付けるか選択してください。V1はアカウントページをスクレイピングしたり、ブラウザクッキーを再利用したり、文書化されていないデッキホストのエンドポイントを呼び出したりしません。直接ホストされたURLはunsupported_sourceを返します。デッキをエクスポートしてテキストをインポートしてください。
ツール
公開インターフェースは正確に11のツールです:
ツール | 目的 |
| 境界付きフィルターとページネーションを使用して検証済みローカルカタログを検索。 |
| 厳密または明示的に部分的なローカルコレクションスナップショットを正規化。 |
| 所有権を推測せずにデッキテキストを正規化。 |
| 物理コピー、場所、印刷、デッキ割り当てを検索。 |
| 正確な構築、合法性、Rule Zero、シナリオの事実をチェック。 |
| 構造メトリクス、役割、パッケージ、証拠、不確実性を報告。 |
| 構成されたシナリオの下で、完全な最良の候補を選択。 |
| 集約パワースコアなしで正確な変更と証拠を比較。 |
| 予約せずに正確なコピー、競合、代替、プロキシ、ギャップを見つける。 |
| 未解決の購入に対する日付付き読み取り専用価格スナップショットを作成。 |
| 引き出し、デッキスワップ、代用、プロキシ、購入を選択。 |
すべてのツールは、安定した結果ID、ステータス、簡潔な要約、問題、ソーススタンプ、および通常はリソースURIを含むバージョン管理されたエンベロープを返します。
リソース
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://presetsレコードは不変であり、コンテンツアドレス可能です。コレクションと広範な検索は境界付きでページネーションされます。ツールの要約はコレクションの内容をエコーしないようにします。
シナリオの次元
計画シナリオは、これらの独立した選択肢を構成します:
操作:build、upgrade、またはanalyze。
ブラケット:1〜5。日付付きのターンとGame Changerの証拠を含む。
カードプール:
all_legal、prefer_owned、またはowned_only。予算:ネイティブ通貨の合計とオプションのカードごとの上限。USD/EUR 50のプレコンアップグレードプリセットを含む。
プロキシポリシー:none、owned-once、またはプレイグループが許可する場合はunlimited。
テーマポリシー:厳格な契約、柔軟な優先、または強度指向。
保護された組み立て済みデッキ、固定ルールセット、決定論的シード。
ブラケットの適合性と戦略的パワーは1つのスコアにまとめられません。公式のCommanderルールは引き続き権威を持ち、Rule Zeroのオーバーライドは明示的である必要があります。
価格設定の意味論
price_purchasesは、アイテム小計、プロバイダー小計、配送料、および推定通関総額を分離します。不明なアイテムや配送料はnullのままであり、ゼロにはなりません。保証された予算は、必要なすべての購入が選択されたポリシーの下で適格な既知の証拠を持っている場合にのみパスできます。
Scryfallカタログの値は、チェックアウト時の見積もりではなく、指標的なPriceEstimateの観察結果です。CardTraderのリストは読み取り専用のPurchaseQuote観察結果です。計画見積もりは、宣言された鮮度ウィンドウを最大24時間とします。CardTraderはより短いリストの有効期間を使用する場合があります。部分的な観察結果や古い観察結果には、明示的なunknown_price、認証、障害、またはレート制限の問題が伴います。
プロバイダーの制限
Scryfallの見積もりは、検証済みのローカルカタログから得られ、通貨、仕上げ、状態、言語、数量、または配送が欠如している可能性があり、購入可能ではありません。
CardTraderはオプションであり、
CARDTRADER_API_TOKENが必要で、文書化された固定のGETエンドポイントのみを使用し、リダイレクトに従わず、複数売り手による完璧なバスケットを最適化しません。CardmarketおよびTCGplayerはデフォルトでは有効になっていません。アクセス制限とプロバイダーの利用規約は、将来のアダプターによって尊重されなければなりません。
どのプロバイダーもデッキの合法性、コレクションの所有権、プロキシポリシー、または在庫予約を変更できません。どのプロバイダーもカートや購入操作を公開しません。
通常のテストとCIは、ライブのマーケットプレイスやデッキホストのリクエストを行いません。
開発
python -m pip install -e '.[test]'
python scripts/check_public_tree.py
ruff check src tests scripts
pytest -q
python -m buildプライバシースキャナーは、追跡されたツリー内のプライベートパス、認証情報、データベース、安全でないデータエクスポート、シンボリックリンク、および文書化されていない/過大なフィクスチャを検査します。すべてのテストデータは合成され、決定論的です。
アーキテクチャ
コンポーネントの境界、不変ストレージ、信頼の境界、計画/フルフィルメントフロー、拡張ポイントについては、docs/architecture.mdを参照してください。
セキュリティ報告
SECURITY.mdに従ってください。プライベートなセキュリティアドバイザリと最小限の合成再現を使用してください。コレクションのエクスポート、バインダー在庫、トークン、またはその他の個人データを添付しないでください。
帰属
カード名、ルールテキスト、およびカタログメタデータは、Scryfallから派生する場合があり、そのデータと帰属要件が適用されます。Magic: The GatheringのルールとCommanderブラケットポリシーは、Wizards of the Coastによって公開されています。プロバイダー名とマーケットプレイスデータは、それぞれの所有者の財産です。
非提携
Commander Workshop MCPは非公式のファンソフトウェアです。Wizards of the Coast、Scryfall、CardTrader、またはその他のデッキホストやマーケットプレイスとは提携、承認、スポンサー、または承認されていません。Magic: The Gathering、Commander、および関連する商標は、Wizards of the Coastおよびそのそれぞれの所有者に帰属します。
Commander Workshop MCPは、ファンコンテンツポリシーの下で許可された非公式のファンコンテンツです。Wizardsによって承認/支持されていません。使用される素材の一部はWizards of the Coastの財産です。©Wizards of the Coast LLC。
ライセンス
本ソフトウェアはMIT Licenseの下でリリースされています。サードパーティのカード、ルール、およびマーケットプレイスデータは、それ自身の利用規約の対象となります。
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