Skip to main content
Glama
l3p3r-muo

Vizier Yu-Gi-Oh! MCP

by l3p3r-muo

Vizier Yu-Gi-Oh! MCP

A Model Context Protocol server for Yu-Gi-Oh! card data: cards, prices, printings, banlists (historical + cross-format), official rulings, comprehensive rules, card relations, and deck tools. Everything runs locally from a single SQLite database with embedded vector search — no network calls at query time.

Features

  • Cards: lookup by exact id or fuzzy-matched name, keyword search with type/ATK filters, semantic (vector) search by effect description, archetype listing.

  • Prices & printings: current market prices (cardmarket / tcgplayer / ebay / amazon), full printing history with rarities and prices.

  • Banlists: snapshots for tcg, ocg, ocg-ae, ocg-cn, master-duel, rush, genesys, ocg-genesys, goat, edison; per-card status across all formats, historical diffs between snapshots.

  • Rules & rulings: semantic search over the official Comprehensive Rulebook (380 sections) and over 2,650 official OCG rulings; per-card ruling lookup with live-fetch fallback.

  • Relations: search/summon/destroy/target relations mined from card text, Fusion/Synchro/Xyz/Link/Ritual material requirements, reverse lookups, archetype support detection.

  • Decks: validate a decklist against a format's banlist, analyze main/extra composition and archetype mix.

Related MCP server: Scryfall MCP Server

Requirements

  • Python 3.11+

  • ~1 GB disk for the embedding model download; the built database is ~75 MB

  • ~2 GB RAM during the build (embedding model); much less at query time

The database path and data directory can be overridden with VIZIER_DB_PATH and VIZIER_DATA_DIR environment variables (the default is <package root>/data/).

Setup

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

Building the database

The build ingests cached API data (data/cache/) and the reference projects (ref/, policy/) into data/vizier.db. No network is required unless you pass --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 downloads the card dump from YGOPRODeck. Note: the live API currently returns HTTP 403, so the cached dump in data/cache/ is authoritative. If the API is unreachable the build uses the cache.

Running the server

python -m vizier_mcp

The server speaks MCP over stdio. There is also a console script:

vizier-mcp

Client configuration

Point any MCP client at the installed command. The server name is vizier-yugioh.

Claude Desktop / Claude Code

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

Generic clients

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

Use absolute paths to the venv. The DB path is resolved relative to the package location (or VIZIER_DB_PATH), not the CWD.

Tools

Tool

Description

get_card

One card by name (fuzzy) or id: type line, stats, effect, ban status per format, prices

search_cards

Keyword search over names/types/archetypes/effect text with filter_type and min_atk filters

semantic_card_search

Vector search by natural-language description of a card's function

get_archetype

All cards of an archetype / series

get_card_prices

Market prices (cardmarket/tcgplayer/ebay/amazon) + cheapest printing

get_printings

Full printing history: sets, rarities, editions, prices

get_banlist

Full banlist snapshot for a format and date

check_card_banlist

One card's ban status across all formats + history

banlist_history

Dates of available banlist snapshots for a format

compare_banlists

Diff two snapshots: cards moved between Forbidden/Limited/Semi-Limited

list_banlist_formats

Which formats have banlist data

search_rules

Semantic search of the official Comprehensive Rulebook

get_rulings

Official OCG rulings (Q&A) for one card, live-fetch fallback

search_rulings

Semantic search over the rulings corpus

get_related_cards

Cards related by effect: searches, summons, destroys, targets, materials

find_search_targets

What a card can search/add from deck or grave

find_summon_targets

What a card can summon / Special Summon

find_cards_that_search

Reverse: which cards search this card

find_cards_that_summon

Reverse: which cards summon this card

get_card_materials

Fusion/Synchro/Xyz/Link/Ritual material requirements

find_cards_using_material

Reverse: monsters that use this card as material

find_archetype_support

Support cards whose text names an archetype

combo_guide

The built-in combo creation playbook: exact breadth-first process for building combos

card_combo_profile

Exhaustive combo profile of one card: summoning, per-effect kind/OPT/actions, locks, relations, materials, material-for

extra_deck_options

Every Fusion/Synchro/Xyz/Link/Ritual summon reachable from the current board (best-effort material checks)

board_options

EVERY legal next play from the current board: all extra-deck summons, hand plays, search/add effects with ranked targets, pendulum range, active/pending locks. Archetype-agnostic

line_search

Bounded breadth-first search over board states: complete multi-step lines from the current board to a goal (field_levels, field_count, no_locks, reach_field, reach_hand)

validate_deck

Validate a decklist against a format's banlist

analyze_deck

Deck breakdown: main/extra counts, archetype mix, per-card details

mcp_guide

Overview of every tool and resource

database_status

What data is loaded: counts, build time, formats

filter_type examples: monster, spell, trap, effect, fusion, link, pendulum, tuner, normal monster, normal spell, quick-play, counter trap, equip, field, ritual. Multi-word filters match the exact subtype.

Combo creation

The server ships a built-in combo-creation playbook that turns line-building into a deterministic breadth-first process: enumerate every possible action, expand, deepen, prune, record, repeat.

  1. combo_guide() — load the playbook (also available as the combo prompt). It defines a combo-state JSON schema, the 6-step protocol, per-card enumeration checklists, tool routing, hard/soft OPT discipline, lock detection, and termination criteria.

  2. card_combo_profile() — for any card you consider: summoning options (normal/tribute/pendulum/self-special), every effect with activation kind + once-per-turn status + action verbs, lock/restriction sentences, its full relation graph (searches/summons/destroys/targets/materials), materials it requires, and monsters it can be material for (named + archetype-wide).

  3. board_options() — one call that returns EVERY legal next play from the current board, archetype-agnostic: all extra-deck summons (the full ~2,300-monster pool, not just the deck's archetype), every hand monster's plays (normal summon / self-special / pendulum scale), every search/add effect with its targets (archetype targets list top-ranked members), the pendulum summon range, and active/pending locks. This is the anti-tunnel-vision tool: the model must not restrict itself to in-archetype candidates.

  4. line_search() — server-side bounded breadth-first search from the current board to a goal (field_levels, field_count, no_locks, reach_field, reach_hand). Returns complete multi-step lines, so the model plans several steps deep instead of one move at a time.

  5. extra_deck_options() — paste your current field (plus hand/graveyard/extra deck and format) and get every Fusion/Synchro/Xyz/Link/Ritual monster whose material requirement is satisfiable, with the exact material reasoning for each candidate.

Example — two Level 4 D/D monsters on field:

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

Best-effort material checks are validated against the full relation graph; always confirm borderline candidates with get_card_materials before finalizing a line.

Resources

URI

Description

card://{name_or_id}

Compact card summary as text

banlist://{format}

Latest banlist snapshot for a format as text

rules://{query}

Top rulebook sections for a question (semantic)

URL-encode resource parameters containing spaces (rules://damage%20step).

Database layout

data/vizier.db — SQLite with sqlite-vec extension. Key tables:

  • cards — one row per card with computed type flags (is_monster, is_quickplay_spell, ...)

  • card_sets, card_prices — printings and market prices

  • card_ban_status, banlist_history — current status per format + historical snapshots

  • relations — card-to-card effect relations with types

  • rulebook_chunks, rulings — rules and rulings text

  • card_vec, rule_vec, ruling_vec — embedding tables for semantic search

  • meta — build timestamp and counts

Data sources

  • Cards / prices / banlists: YGOPRODeck bulk API (cached in data/cache/)

  • Rules: official Comprehensive Rulebook (ref/yugioh_comprehensive_rulebook/)

  • Rulings: official OCG rulings Q&A list + YGOPEDIA fallback

  • Policy: tournament policy documents (policy/)

Tests

python -m pytest tests/ -q

Runs 32 smoke tests against an in-process server client, covering every tool and resource.

F
license - not found
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • 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
    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.
    29
    MIT

View all related MCP servers

Related MCP Connectors

  • Official remote MCP server for Archivist AI TTRPG campaign memory: characters, sessions, and more.

  • GibsonAI MCP server: manage your databases with natural language

  • Driflyte MCP server which lets AI assistants query topic-specific knowledge from web and GitHub.

View all MCP Connectors

Latest Blog Posts

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/l3p3r-muo/vizier'

If you have feedback or need assistance with the MCP directory API, please join our Discord server