Commander Workshop MCP
Commander Workshop MCP
Commander Workshop — это локально-ориентированный MCP-сервер для сборки, проверки, сравнения и комплектации колод Magic: The Gathering Commander. Он объединяет закреплённые правила и данные о картах с вашей явно импортированной коллекцией, отделяет намерение собрать колоду от владения и превращает готовый план в извлечения, замены, субституты, прокси или покупки.
Сервер полезен для свободного бревинга, конструирования с учётом инвентаря, планирования для Bracket 3 и апгрейдов преконов с фиксированным бюджетом. Он оценивает ограниченные полные кандидаты и сообщает лучший найденный при данных ограничениях, а не претендует на универсальную оценку силы или математически идеальную колоду.
Возможности
Потребность | Что предоставляет Commander Workshop |
Бревинг или апгрейд | Полные, проверенные на легальность планы с композируемыми ограничениями |
Понимание колоды | Мана, кривая, роли, пакеты, доказательства темы и неопределённость |
Использование ваших карт | Импорт из ManaBox и CSV с сопоставлением, с указанием папок/колод |
Честность планов | Списки колод никогда не подразумевают владение; копии собранных колод сообщаются |
Поиск недостающих карт | Доступность без резервирования и выполнимые планы комплектации |
Уважение бюджета | Ограничения в USD/EUR и пресеты апгрейда для Bracket 3 на 50 единиц |
Проверка цен | Локальные оценки Scryfall или опциональные котировки CardTrader (только чтение) |
Интеграция с агентами | Одиннадцать 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 намеренно не выполняет сетевых запросов при запуске сервера. Загрузите gzip Scryfall Default Cards JSONL через документированный API массовых данных Scryfall, подготовьте пакет правил из пяти файлов, указанный в docs/rules-bundle.md, затем выполните проверенную команду офлайн-загрузки:
.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 только после того, как полное представление станет долговечным. Повторная попытка восстанавливает точную неполную среду и возвращает ту же версию. Опубликованные файлы каталога и правил являются эксклюзивными байтовыми копиями без сохранённых псевдонимов стадий. Символические ссылки во входных данных, псевдонимы жёстких ссылок, неожиданные побочные файлы и конфликтующее существующее содержимое приводят к отказу.
Перед сборкой загрузчик обнаруживает полностью проверенную среду READY по её версионированной идентичности входных данных, поэтому обычные повторные попытки с теми же входными данными не создают новую стадию. Неудачные стадии инертны и могут оставаться для ручной проверки; загрузчик никогда рекурсивно не удаляет содержимое стадии, которое он больше не может подтвердить как своё.
Выведенный каталог данных остаётся изменяемым корнем установки, где записи MCP записываются в records/. Выведенные пути к каталогу и правилам указывают на подтверждённую готовую версию. Используйте все три значения вместе; каталоги без действительного маркера READY являются неполным состоянием загрузки и никогда не возвращаются.
Переменная окружения | Назначение | Форма вывода загрузчика |
| Изменяемый корень времени выполнения для записей MCP с адресацией по содержимому |
|
| Указатель каталога |
|
| JSON набора правил |
|
| Разрешённые корни локального импорта, разделённые разделителем путей ОС | нет импорта файлов |
| Опциональная аутентификация CardTrader (только чтение) | не установлено |
После загрузки установите COMMANDER_WORKSHOP_IMPORT_ROOTS в один или несколько существующих абсолютных каталогов и используйте выведенные значения для остальных переменных. Отсутствующий, устаревший или недействительный критический источник приводит к отказу. См. руководство по архитектуре для описания потока данных.
Конфигурация для 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для каждой полной колоды-кандидата, созданной в процессе бревинга.Вызовите
plan_deckс операциейbuild, пулом картall_legal, желаемыми параметрами bracket/theme/proxy и от одной до восьми полных заявок кандидатов. Прочитайте возвращённый ресурсcommander://plans/....Опционально загрузите коллекцию, вызовите
resolve_availabilityдля выигрышного плана, затем вызовитеcreate_fulfillment_plan. Доступность остаётся гипотетической; комплектация выделяет копию только внутри этого неизменяемого результата.
Этот поток не ограничен инвентарём во время бревинга, но всё же может показать, что есть в наличии и чего не хватает, прежде чем пользователь решит действовать. Полный шаблон запроса plan_deck проверяется по схеме набором приёмочных тестов.
Сквозной пример: конструирование только из своих карт
Экспортируйте физическую коллекцию как CSV ManaBox или CSV с явным сопоставлением столбцов, затем вызовите
load_collection_snapshotв строгом режиме.Используйте
search_libraryдля поиска карт-кандидатов по имени, тиражу, папке или распределению в собранной колоде.Вызовите
plan_deckс пулом картowned_onlyи идентификатором снимка коллекции. Кандидат с не принадлежащей вам небазовой картой не проходит жёсткое ограничение.Прочитайте ресурсы плана и доступности, чтобы увидеть извлечения из папок и конфликты. Копия, уже выделенная в колоду, сообщается, а не молча считается свободной.
Используйте полный шаблон запроса только из своих карт после замены его идентификаторов колоды и коллекции на результаты предыдущих инструментов.
Сквозной пример: апгрейд прекона Bracket 3 на 50 USD/EUR
Экспортируйте или вставьте прекон и вызовите
load_deck; это остаётся намерением собрать колоду, а не заявлением о владении.Загрузите полные улучшенные кандидаты и вызовите
plan_deckс операциейupgrade, преконом какstarting_deck_id, Bracket 3 и семантикой пресета сценарияprecon-upgrade-50-usdилиprecon-upgrade-50-eur.Проверьте точные добавления/удаления, датированные доказательства bracket, Game Changers, факты темы и гарантированную границу приобретения в местной валюте. Отсутствие требуемых ценовых доказательств не позволяет пройти лимит как ноль.
Опционально разрешите инвентарь, выберите извлечения/замены/субституты/прокси с помощью
create_fulfillment_plan, затем вызовитеprice_purchasesдля оставшихся позиций покупки. Ценообразование носит информационный характер и никогда не размещает заказ.
Шаблон запроса на 50 USD содержит полный сценарий, доказательства кандидатов, определения оценок, политику bracket и поле начальной колоды. Измените и валюту, и общую политику для пресета EUR.
Поддерживаемые импорты
CSV коллекции ManaBox, разделяющий физические папки и зарегистрированные колоды от списков желаний или других невладельческих списков.
Общий CSV коллекции с явным сопоставлением количества и точной идентичности карты, плюс опциональные поля тиража и местоположения.
Текст колоды в стиле Arena и общий формат количество/название/сет/коллекционный номер.
Экспортированный пользователем текст колоды из Moxfield, Archidekt, Deckbox, Deckstats, TopDecked и подобных хостов, если он соответствует поддерживаемому диалекту текста.
Вставьте или выберите экспорт, который вы уполномочены использовать. V1 не сканирует страницы учётных записей, не использует повторно куки браузера и не вызывает недокументированные конечные точки хостов колод. Прямые URL-адреса хостов возвращают unsupported_source; экспортируйте колоду и импортируйте её текст.
Инструменты
Публичная поверхность состоит ровно из одиннадцати инструментов:
Инструмент | Назначение |
| Поиск в проверенном локальном каталоге с ограниченными фильтрами и постраничным выводом. |
| Нормализация строгого или явно частичного локального снимка коллекции. |
| Нормализация текста колоды без вывода о владении. |
| Поиск физических копий, местоположений, тиражей и распределений по колодам. |
| Проверка точной конструкции, легальности, Rule Zero и фактов сценария. |
| Отчёт о структурных метриках, ролях, пакетах, доказательствах и неопределённости. |
| Выбор полного наилучшего найденного кандидата в рамках составного сценария. |
| Сравнение точных изменений и доказательств без агрегированной оценки силы. |
| Поиск точных копий, конфликтов, альтернатив, прокси и пробелов без резервирования. |
| Создание датированного снимка цен (только чтение) для неразрешённых покупок. |
| Выбор извлечений, замен колод, субститутов, прокси и покупок. |
Каждый инструмент возвращает версионированный конверт со стабильным идентификатором результата, статусом, кратким резюме, проблемами, метками источника и обычно 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;
bracket: от 1 до 5, с датированными доказательствами хода и Game Changer;
пул карт:
all_legal,prefer_ownedилиowned_only;бюджет: общая сумма в местной валюте и опциональный лимит на карту, включая пресеты апгрейда прекона на 50 USD/EUR;
политика прокси: none, owned-once или unlimited, если игровая группа это разрешает;
политика темы: strict contract, flexible preference или strength-oriented;
защищённые собранные колоды, закреплённый набор правил и детерминированное зерно.
Соответствие скобкам и стратегическая сила не сводятся к одной оценке. Официальные правила 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. Сторонние данные о картах, правилах и торговых площадках остаются подчиненными своим собственным условиям и лицензиям.
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