Skip to main content
Glama
andrewboe

ygo-format

by andrewboe

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}

Tools

Functions exposed to the LLM to take actions

NameDescription
search_cardsA

Search the card pool. Only cards legal in format are returned unless include_illegal.

text: words that must all appear in the card text (or FTS5 syntax: "special summon" AND deck NOT banish) pattern: Python regex over card text, e.g. "Level 4 or lower .*Warrior" name: substring of the name; archetype: name contains it (case-sensitive game rule, e.g. "Destiny HERO") mentions: cards whose text names this in quotes, e.g. "HERO" or "Destiny HERO - Malicious" kind: monster, extra, main, tuner, fusion, synchro, xyz, link, ritual, pendulum, effect, normal, flip, spell, trap, quick-play, continuous spell, field, equip, ritual spell, normal trap, continuous trap, counter attribute: DARK, LIGHT, ...; race: Warrior, Spellcaster, ...; level_min/max: Level, Rank or Link rating max_points: Genesys points per copy at most this Card text is cut to 400 characters unless full_text.

card_lookupA

One card by name or passcode: full text, stats, status in every format (limit, Genesys points, legality and why not), alt passcodes, quoted names in its text, and rulings links. unresolved_mentions lists quoted names that match no card (likely data typos) with the closest names. Unknown or ambiguous names return candidates instead of a guess.

archetypeA

An archetype's members (name contains name, case-sensitive) with status in format, plus support: cards YGOProDeck tags with it or whose text names it in quotes. Card text is included when the answer is small (<= 60 cards) unless include_text is set.

meta_snapshotB

Recent tournament tops (Yugioh Meta) for the format: deck-type shares, top-8s and wins, how many lists are still legal under today's list or points (average points for Genesys), the cards that make the most lists illegal now (most_common_blockers), and the most-played cards. Genesys = Genesys events; Advanced = TCG lists outside Genesys and OCG.

meta_inclusionB

How a card is played in recent tops (share of lists, average copies, by deck type), or a deck type's card inclusion table. Pass exactly one of card, deck_type (Yugioh Meta deck type name; near misses are suggested).

card_rulingsA

Official FAQ and Q&A rulings for a card (Konami OCG database via YGOResources, cached locally). with_card: only Q&As that involve both cards (best for "does X work with Y" questions). query: only Q&As containing all these words, e.g. "cost banish" or "damage step". Each Q&A has title, question, answer, date, translation status and names_in_text; Q&As whose text names the card(s) come first, ahead of omnibus entries that only list them. With with_card, the note says when no Q&A discusses both cards (the interaction is then unverified). These are OCG rulings and TCG rulings can differ: quote them, don't extend them past what they cover. Requests are capped per call to respect YGOResources; the note says when more remain.

find_linksB

Bridges and support for a deck (or just a few cards), legal in format and within budget. A "fetch" is an add / Special Summon / Set / Fusion Summon effect (never a cost; Extra Deck monsters can't come from hand or Deck). your_archetypes_unplayed members of your archetypes you don't run: which of your cards fetch them (fetched_by) and which of yours they fetch (fetches_your); check these first into_your_deck outside cards that fetch your cards, most-played targets first (with evidence) your_deck_reaches what your cards already fetch outside the list, by archetype (named/archetype links) generic_searchers your cards that fetch by Attribute/Type only (e.g. any Level 4 Warrior), one line each bridges other engines tied to your deck through those cards; mostly_blocked_by_deck_locks marks engines your own locks would stop extra_deck_options Extra Deck monsters your monsters can be material for, lock-compatible first deck_locks your deck's Special Summon locks and conditions, with which of your own cards they block Suggestions that break one of your locks carry breaks_deck_locks. more_not_shown counts cut items. Genesys: suggestions are limited to the points left (point_cap minus the deck's points) unless max_points is given. Links are parsed from card text, not verified rulings: read each item's evidence and ruling_flags, and validate_deck any final list.

validate_deckA

Check a deck against a format and list every card with its ban status or Genesys points.

Give exactly one deck input: ydk_path a .ydk file path readable from Windows (WSL files: \wsl.localhost\Ubuntu-24.04\home...) ydk_text .ydk contents, or a ydke:// URL decklist {"main": [...], "extra": [...], "side": [...]} with entries like "3 Ash Blossom & Joyous Spring", "Called by the Grave x2", "Cupsy☆Yummy" or a passcode format: tcg_advanced (Forbidden & Limited list; stricter of YGOProDeck and Project Ignis) or genesys (no F&L; Link and Pendulum Monsters banned in every zone; Main+Extra+Side points must fit point_cap, default 100). as_of: YYYY-MM-DD for the release-date check (default today).

legal is true/false, or null when the input had unknown passcodes, unknown or ambiguous names, or unreadable .ydk lines: nothing is dropped or guessed, so fix parse_errors and call again. resolved_names lists names that were matched after normalizing; check them.

finalize_deckA

Save a finished deck, but only if validate_deck says it is legal (otherwise nothing is written and the problems come back). Writes data/decks/..ydk and a .json with the ydke:// URL, a text decklist, the points or ban breakdown and the data "as of" date. Saving the same name again keeps the previous .ydk in data/decks/history/. Follow-up questions can pass the returned ydk path to validate_deck or find_links.

saved_decksA

Decks saved with finalize_deck, newest first: name, format, saved_at, summary, .ydk path, ydke URL.

find_linesA

Find the turn-1 lines a starting hand makes, going first, by searching the real game engine (EDOPro, run in WSL): the deck is stacked so the hand is exactly these 5 cards, then turn 1 is searched several times from independent starts. Returns a job_id at once (quick ~10 s, normal ~1 min, deep ~2 min); fetch the lines with line_result. hand: 5 card names or passcodes. Deck: exactly one of saved_deck (a name from saved_decks), ydk_path, ydk_text (or ydke:// URL), decklist. executor (optional): "module:Class" of a windbot_decks executor to steer the search (e.g. "windbot_decks.mitsurugi:MitsurugiExecutor"). Lines are scored by the interruptions left live after a scripted opponent turn, plus hand traps held: a search result, not a solver; present it as "found by search" and check rulings it relies on with card_rulings. Run it when the user asks for a specific hand's line, starting with depth "quick". Optional: needs a ygo-sim checkout named by YGOSIM_HOME; without one it returns an error saying so.

line_resultA

Result of a find_lines search: status running / done / failed. When done: the hand and up to one line per search start (best first), each with score, the steps in order, the end board, the hand left and the interruptions that stayed live. Cards the engine can't play (new sets without scripts) are reported.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.8/5.0

Scored across 12 tools

Disambiguation4/5

Most tools target distinct operations: search_cards (pool query), card_lookup (single card), archetype (membership), validate_deck vs finalize_deck (check vs save), and find_lines/line_result (job start vs fetch). The closest pairs are meta_snapshot vs meta_inclusion (format-level vs card-level play rates) and card_lookup vs card_rulings (stats vs FAQ), but descriptions clearly differentiate them.

Naming Consistency4/5

Names are uniformly snake_case and mostly two-token, making them readable and predictable. However the verb pattern is not fully consistent: some are verb_noun (search_cards, find_links, validate_deck), while others are noun-ish or inverted (archetype, saved_decks, line_result, card_lookup).

Tool Count5/5

12 tools sit comfortably in the ideal range and each maps to a distinct piece of the deck-building workflow (search, lookup, rulings, meta, validate, save, links, simulation). No obvious redundant or filler tools.

Completeness4/5

The surface covers a full loop: search pool, inspect cards, check rulings/meta, validate a deck, save it, list saved decks, find bridges, and simulate lines. Minor gaps remain, such as no delete/rename for saved decks and no explicit format-listing tool, but core workflows have no dead ends.

Maintenance

ActivityMaintained
ResponsivenessNo issues