Skip to main content
Glama
l3p3r-muo

Vizier Yu-Gi-Oh! MCP

by l3p3r-muo

Vizier Yu-Gi-Oh! MCP

Сервер Model Context Protocol для данных карт Yu-Gi-Oh!: карты, цены, издания, бан-листы (исторические и кросс-форматные), официальные рулинги, полный свод правил, связи карт и инструменты для колод. Всё работает локально из единой базы данных SQLite со встроенным векторным поиском — без сетевых вызовов во время запросов.

Возможности

  • Карты: поиск по точному id или нечёткому совпадению имени, поиск по ключевым словам с фильтрами по типу/ATK, семантический (векторный) поиск по описанию эффекта, перечень архетипов.

  • Цены и издания: актуальные рыночные цены (cardmarket / tcgplayer / ebay / amazon), полная история изданий с редкостями и ценами.

  • Бан-листы: снапшоты для tcg, ocg, ocg-ae, ocg-cn, master-duel, rush, genesys, ocg-genesys, goat, edison; статус каждой карты во всех форматах, исторические различия между снапшотами.

  • Правила и рулинги: семантический поиск по официальному Полному своду правил (380 разделов) и по более чем 2 650 официальным рулингам OCG; поиск рулинга для конкретной карты с запасным вариантом прямой загрузки.

  • Связи: связи поиск/призыв/уничтожение/выбор цели, извлечённые из текста карт, требования материалов Fusion/Synchro/Xyz/Link/Ritual, обратные запросы, определение поддержки архетипа.

  • Колоды: проверка списка колоды на соответствие бан-листу формата, анализ состава основной и дополнительной колоды, сочетание архетипов.

Related MCP server: Scryfall MCP Server

Требования

  • Python 3.11+

  • ~1 ГБ на диске для загрузки модели; готовая база данных — ~75 МБ

  • ~2 ГБ ОЗУ во время загрузки(embedding-модель); при запросах — значительно меньше

Путь к базе данных и каталог данных можно задать через переменные окружения VIZIER_DB_PATH и VIZIER_DATA_DIR (по умолчанию — <package root>/data/).

Установка

python -m venv .venv
source .venv/bin/activate
pip install -e .

Сборка базы данных

При сборке кэшированные данные API (data/cache/) и эталонные проекты (ref/, policy/) объединяются в data/vizier.db. Для сборки не требуется сеть, если не указан параметр --fetch.

# full build including embeddings (slow: ~15-20 min CPU for 17.6k vectors)
python scripts/build_db.py

# faster variants
python scripts/build_db.py --no-embed      # skip vector embeddings (no semantic search)
python scripts/build_db.py --skip-cards    # skip card ingestion, re-embed only
python scripts/build_db.py --fetch         # download fresh API payloads first

Параметр --fetch загружает выгрузку карт с YGOPRODeck. Обратите внимание: в настоящее время живой API возвращает HTTP 403, поэтому кэшированная выгрузка в data/cache/ является источником. Если API недоступен, сборка используется в какие данные.

Запуск сервера

python -m vizier_mcp

Сервер общается через MCP по протоколу stdio. Также доступна консольный вариант:

vizier-mcp

Настройка клиента

Укажите любому MCP-клиенту установленную команду. Имя сервера — vizier-yugioh.

Claude Desktop / Claude Code

{
  "mcpServers": {
    "vizier-yugioh": {
      "command": "/path/to/.venv/bin/python",
      "args": ["-m", "vizier_mcp"]
    }
  }
}

Универсальные клиенты

{
  "mcpServers": {
    "vizier-yugioh": {
      "command": "/path/to/.venv/bin/vizier-mcp",
      "args": []
    }
  }
}

Используйте абсолютные пути к виртуальному окружению. Путь к базе данных определяется относительно расположения пакета (или из VIZIER_DB_PATH), а не текущей рабочей директории.

Инструменты

Инструмент

Описание

get_card

Одна карта по имени (нечёткое) или id: строка типа, характеристики, эффект, бан-статус по каждому формату, цены

search_cards

Поиск по ключевым словам в именах/типах/архетипах/тексте эффекта с фильтрами filter_type и min_atk

semantic_card_search

Векторный поиск по естественно-языковому описанию функции карты

get_archetype

Все карты архетипа / серии

get_card_prices

Рыночные цены (cardmarket/tcgplayer/ebay) + самое дешёвое издание

get_printings

Полная история изданий: наборы, редкости, издания, цены

get_banlist

Полный снапшот бан-листа для формата и даты

check_card_banlist

Статус одной карты в бан-листе во всех форматах + история

banlist_history

Даты доступных снапшотов бан-листа для формата

compare_banlists

Разница двух снапшотов: карты, перемещённые между «Запрещено»/«Ограничено»/«Полуограничено»

list_banlist_formats

Какие форматы имеют данными по бан-листам

search_rules

Семантический поиск по официальному Полному своду правил

get_rulings

Официальные рулинги OCG (Q&A) для одной карты, fallback к живой загрузке

search_rulings

Семантический поиск по полному корпусу рулингов

get_related_cards

Другие карты, связанные по эффекту: ищут, вызывают, уничтожают, выбирают целью, материалы

find_search_targets

Что карта может искать/добавлять из колоды или кладбища

find_summon_targets

Что карта может призвать / Специально призвать

find_cards_that_search

Обратный поиск: какие карты ищут эту карту

find_cards_that_summon

Обратный поиск: какие карты вызывают эту карту

get_card_materials

Fusion/Synchro/Xyz/Link/Ritual: требования материалов

find_cards_using_material

Обратный поиск: монстры, использующие эту карту в качестве материала

find_archetype_support

Карты поддержки, в тексте которых назван архетип

combo_guide

Встроенный план по созданию комбо: точная процедура создания цепочек с BFS-обходом (bast-step process)

card_combo_profile

Исчерпывающий комбо-профиль одной карты: призыв, вид каждого эффекта/ограничений/действий, локи, ссвязи, материалы, материалы для кого

extra_deck_options

Каждый Fusion/Synchro/Xyz/Link/Ritual призыв, достижимый с текущего поля (максимально проверка материалов)

board_options

КАЖДЫЙ легальный следующий ход с текущего поля: все призывы из базовой колоды, действия чем из колоды, эффекты поиска/добора с ранжированными целями, диапазон Pendulum, активные/отложенные блокировки. Без архети-привязки

line_search

Ограниченный поиск в ширину по состояниям поля: полные много шаговые линии от текущего поля до цели (field_levels, field_count, no_locks, reach_field, reach_hand)

validate_deck

Проверка списка колоды на соответствие бан-листу формата

analyze_deck

Разбор колоды: количество main/extra, соотношение архетипов, детали по каждой карте

mcp_guide

Обзор всех инструментов и ресурсов

database_status

Какие данные выгружены: количество записей, время построения, форматы

Примеры filter_type: monster, spell, trap, effect, fusion, link, pendulum, tuner, normal monster, normal spell, quick-play, counter trap, equip, field, ritual. Многословные фильтры соответствуют точному подтипу.

Создание комбо

Сервер поставляется с встроенным плейбуком построения комбо ('combo-creation playbook'), который превращает построение линии в детерминированный процесс BFS-обхода: перечислите каждое возможное действие, расширьте, углубляйте, оставляйте подходящее, записывайте, повторяйте..

  1. combo_guide() — загружает плейбук (также доступен как combo-сценарий). В нём задаётся JSON-схема состояний комбо, протокол из 6 шагов, пошаговый алгоритм, перечисления check-листов для каждой карты, роутинг инструментов, дисциплина OPT (hard/soft), определение локов и критерии завершения.

  2. card_combo_profile() — для любой карты, которую вы рассматриваете: варианты призыва (нормальный/ритуальный/призыв для ррения/сам-спец-призыв), каждый эффект с типом активации + одноразовым статусом и глаголом действия, фразы с ограничениями/блокировками, полный граф связей (искание/призывов/уничтожений/целей/материалов), материалы, которые он требует, и монстров, материалом для которых он может быть (персональных + архетипные).

  3. board_options() — один вызов, который возвращает КАЖДЫЙ легальный следующий ход с текущего поля, архетип-независимо: все призывы из теверсидной пулы (~2 3,2× оборот, не только архетип колоды), все действия монстра из руки (обычные призывы / сам-специального призыв / pendulum), все эффекты поиска/добавления с их контрольными целями, а также диапазон Pendulum и активный/ожидающий локов. Это инструмент против сужения. /Это точно не?

  4. line_search() — серверный ограниченный поиск в ширину по состоянием поля от текущего поля до цели (field_levels, field_count, no_locks, reach_field, reach_hand). Возвращает полные многоходовые линии, поэтому модель планирует на несколько шагов вперёд, а не по одному шагу.

  5. extra_deck_options() — вставить ваше текущее поле (плюс hand/граveyard/extra deck и формат) и получить каждого монстра Fusion/Synchro, чьи требования материалов выполнимы, с точным вычислением материалов для каждого кандидата.

Пример — два монстра Level 4 D/D на поле:

extra_deck_options(field=["D/D Savant Copernicus", "D/D Ark"], summon_types="xyz")
→ options include D/D/D Wise King Solomon ("2 Level 4 D/D monsters")

Предварительные проверки материалов сверяются по всей оценочной граф; перед окончательным подтверждением сложных кандидатов обращайтесь к get_card_materials.

Ресурсы

URI

Описание

card://{name_or_id}

Краткая сводка по карте в виде текста

banlist://{format}

Последний снимок бан-листа для формата в виде текста

rules://{query}

Основные разделы правил по вопросу (семантический поиск)

URL-кодируйте параметры ресурса, содержащие пробелы (rules://damage%20step).

Структура базы данных

data/vizier.db — SQLite с расширением sqlite-vec. Ключевые таблицы:

  • cards — по одной строке на карту с вычисленными флагами типа (is_monster, is_quickplay_spell, ...)

  • card_sets, card_prices — издания и рыночные цены

  • card_ban_status, banlist_history — текущий статус по форматам + исторические снимки

  • relations — связи эффектов между картами с типами

  • rulebook_chunks, rulings — тексты правил и рулингов

  • card_vec, rule_vec, ruling_vec — таблицы эмбеддингов для семантического поиска

  • meta — время сборки и счётчики

Источники данных

  • Карты / цены / бан-листы: YGOPRODeck bulk API (кэшируется в data/cache/)

  • Правила: официальный Comprehensive Rulebook (ref/yugioh_comprehensive_rulebook/)

  • Рулинги: официальный список Q&A по рулингам OCG + запасной вариант YGOPEDIA

  • Политика: документы турнирной политики (policy/)

Тесты

python -m pytest tests/ -q

Запускает 32 смоук-теста против внутрипроцессного клиента сервера, покрывая каждый инструмент и ресурс.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    A Pokemon TCG MCP server that looks up graded cards, manages a local SQLite collection, queries pricing providers, tracks a watchlist with target prices, and snapshots PSA pop counts for trend analysis.
    33
    1
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server for searching and retrieving Magic: The Gathering card information via the Scryfall API, with support for field presets, multiple output formats, and automatic rate limiting.
    41,705 npm
    MIT