Skip to main content
Glama
Vizier Yu-Gi-Oh! MCP

Vizier Yu-Gi-Oh! MCP

by l3p3r-muo

Vizier Yu-Gi-Oh! MCP

Un servidor de Model Context Protocol para datos de cartas Yu-Gi-Oh!: cartas, precios, listas de prohibidas, reglas oficiales, relaciones entre cartas y herramientas de mazos. Todo se ejecuta localmente desde una única base de datos SQLite con búsqueda vectorial integrada — sin llamadas de red en tiempo de consulta.

Características

  • Cartas: búsqueda por id exacto o nombre con coincidencia difusa, búsqueda por palabras clave con filtros de tipo/ATK, búsqueda semántica (vectorial) por descripción de efecto, listado de arquetipos.

  • Precios y ediciones: precios de mercado actuales (cardmarket / tcgplayer / ebay / amazon), historial completo de ediciones con rarezas y precios.

  • Listas de prohibidas: instantáneas para tcg, ocg, ocg-ae, ocg-cn, master-duel, rush, genesys, ocg-genesys, goat, edison; estado por carta en todos los formatos, diferencias históricas entre instantáneas.

  • Reglas y resoluciones: búsqueda semántica sobre el Reglamento Oficial Completo (380 secciones) y más de 2.650 resoluciones oficiales de la OCG; consulta de resoluciones por carta con recuperación en vivo.

  • Relaciones: búsqueda de relaciones de buscar/invocar/destruir/seleccionar extraídas del texto de las cartas, requisitos de material de Fusión/Sincronía/Xyz/Enlace/Ritual, búsquedas inversas, detección de soporte de arquetipo.

  • Mazos: valida un mazo contra la lista de prohibidas de un formato, analiza la composición del principal/extra y la mezcla de arquetipos.

Related MCP server: Scryfall MCP Server

Requisitos

  • Python 3.11+

  • ~1 GB de disco para la descarga del modelo de embeddings; la base de datos construida ocupa ~75 MB

  • ~2 GB de RAM durante la construcción (modelo de embeddings); mucho menos en tiempo de consulta

La ruta de la base de datos y el directorio de datos se pueden sobrescribir con las variables de entorno VIZIER_DB_PATH y VIZIER_DATA_DIR (el valor predeterminado es <package>/data/).

Configuración

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

Construcción de la base de datos

La construcción ingiere los datos de API en caché (data/cache/) y los proyectos de referencia (ref/, policy/) en data/vizier.db. No se requiere red a menos que se pase --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 descarga el volcado de cartas desde YGOPRODeck. Nota: la API en vivo actualmente devuelve HTTP 403, por lo que el volcado en caché en data/cache/ es la fuente autoritativa. Si la API no está disponible, la construcción usa la caché.

Ejecución del servidor

python -m vizier_mcp

El servidor habla MCP sobre stdio. También hay un script de consola:

vizier-mcp

Configuración del cliente

Apunta cualquier cliente MCP al comando instalado. El nombre del servidor es vizier-yugioh.

Claude Desktop / Claude Code

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

Clientes genéricos

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

Usa rutas absolutas al entorno virtual. La ruta de la base de datos se resuelve relativa a la ubicación del paquete (o VIZIER_DB_PATH), no al directorio de trabajo actual.

Herramientas

Herramienta

Descripción

get_card

Una carta por nombre (difuso) o id: línea de tipo, estadísticas, efecto, estado de prohibición por formato, precios

search_cards

Búsqueda por palabras clave sobre nombres/tipos/arquetipos/texto de efecto con filtros filter_type y min_atk

semantic_card_search

Búsqueda vectorial por descripción en lenguaje natural de la función de una carta

get_archetype

Todas las cartas de un arquetipo / serie

get_card_prices

Precios de mercado (cardmarket/tcgplayer/ebay/amazon) + impresión más barata

get_printings

Historial completo de impresiones: sets, rarezas, ediciones, precios

get_banlist

Instantánea completa de la lista de prohibidas para un formato y fecha

check_card_banlist

Estado de prohibición de una carta en todos los formatos + historial

banlist_history

Fechas de las instantáneas de lista de prohibidas para un formato

compare_banlists

Diferencia entre dos instantáneas: cartas movidas entre Prohibida/Limitada/Semilimitada

list_banlist_formats

Qué formatos tienen datos de lista de prohibidas

search_rules

Búsqueda semántica del Reglamento Oficial Completo

get_rulings

Resoluciones oficiales de la OCG (Q&A) para una carta, con recuperación en vivo

search_rulings

Búsqueda semántica sobre el corpus de resoluciones

get_related_cards

Cartas relacionadas por efecto: buscar, destruir, seleccionar, materiales

find_search_targets

Qué puede buscar/añadir una carta desde el mazo o el cementerio

find_summon_targets

Qué puede invocar una carta / Invocación Especial

find_cards_that_search

Inverso: qué cartas buscan esta carta

find_cards_that_summon

Inverso: qué cartas invocan esta carta

get_card_materials

Requisitos de material de Fusión/Sincronía/Xyz/Enlace/Ritual

find_cards_using_material

Inverso: monstruos que usan esta carta como material

find_archetype_support

Cartas de soporte cuyo texto menciona un arquetipo

combo_guide

El manual de creación de combos integrado: proceso exacto de búsqueda en anchura para construir combos

card_combo_profile

Perfil de combo exhaustivo de una carta: invocación, tipo de efecto por turno/OPT/acciones, bloqueos, relaciones, materiales, y para qué puede ser material

extra_deck_options

Cada Invocación de Fusión/Sincronía/Xyz/Enlace/Ritual alcanzable desde el campo actual (verificación de materiales de mejor esfuerzo)

board_options

CADA jugada legal siguiente desde el campo actual: todas las invocaciones del deck extra (el grupo completo de ~2.300 monstruos, no solo el arquetipo del mazo), todas las jugadas de los monstruos en mano (invocación normal / auto-invocación / escala de péndulo), cada efecto de búsqueda/añadido con sus objetivos (la lista de objetivos del arquetipo clasifica a los miembros principales), el rango de Invocación por Péndulo y los bloqueos activos/pendientes. Esta es la herramienta anti-visión de túnel: el modelo no debe restringirse a candidatos dentro del arquetipo.

line_search()

Búsqueda en anchura acotada en el servidor desde el campo actual hasta un objetivo (field_levels, field_count, no_locks, reach_field, reach_hand). Devuelve líneas completas de varios pasos, para que el modelo planifique varios pasos de profundidad en lugar de un movimiento a la vez.

extra_deck_options()

Pega tu campo actual (más mano/cementerio/deck extra y formato) y obtén todos los monstruos de Fusión/Sincronía/Xyz/Enlace/Ritual cuyo requisito de material sea satisfacible, con el razonamiento de material exacto para cada candidato.

Ejemplo — dos monstruos D/D de Nivel 4 en el campo:

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")

Las verificaciones de material de mejor esfuerzo se validan contra el grafo de relaciones completo; confirma siempre los candidatos dudosos con get_card_materials antes de finalizar una línea.

Recursos

URI

Descripción

card://{name_or_id}

Resumen compacto de la carta como texto

banlist://{format}

Instantánea más reciente de la lista de prohibidas para un formato como texto

rules://{query}

Secciones principales del libro de reglas para una pregunta (semántico)

Codifica en URL los parámetros de recursos que contengan espacios (rules://damage%20step).

Diseño de la base de datos

data/vizier.db — SQLite con la extensión sqlite-vec. Tablas clave:

  • cards — una fila por carta con indicadores de tipo calculados (is_monster, is_quickplay_spell, ...)

  • card_sets, card_prices — impresiones y precios de mercado

  • card_ban_status, banlist_history — estado actual por formato + instantáneas históricas

  • relations — relaciones de efectos entre cartas con tipos

  • rulebook_chunks, rulings — texto de reglas y resoluciones

  • card_vec, rule_vec, ruling_vec — tablas de incrustaciones para búsqueda semántica

  • meta — marca de tiempo de compilación y recuentos

Fuentes de datos

  • Cartas / precios / listas de prohibidas: API masiva de YGOPRODeck (almacenada en caché en data/cache/)

  • Reglas: libro de reglas oficial completo (ref/yugioh_comprehensive_rulebook/)

  • Resoluciones: lista oficial de preguntas y respuestas de resoluciones OCG + respaldo de YGOPEDIA

  • Política: documentos de política de torneos (policy/)

Pruebas

python -m pytest tests/ -q

Ejecuta 32 pruebas de humo contra un cliente de servidor en proceso, cubriendo todas las herramientas y recursos.

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
    28 PyPI
    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.
    73,127 npm
    MIT