Skip to main content
Glama
Yu-gi-oh! Assistant - Multipurpose MCP

Yu-gi-oh! Assistant - Multipurpose MCP

ygo_check_legality

Checks Yu-Gi-Oh! deck legality for a chosen format by validating Main/Extra/Side sizes, banlist copy limits, and Extra Deck monster placement from .ydk files, ydke links, or card lists.

Instructions

USE THIS for every "is this legal / how many copies can I run / is X banned" question. Checks Main/Extra/Side sizes, banlist copy limits for the requested format (forbidden / limited / semi-limited), and that Fusion/Synchro/Xyz/Link monsters are only in the Extra Deck. Works from a .ydk path, raw .ydk text, a ydke:// link, or a DeckData object. Never state a banlist status from memory. Do not answer from memory; call this tool first.

Input Schema

NameRequiredDescriptionDefault
deckNoDeckData, a .ydk path, raw .ydk text, a ydke:// link, or a plain card list
inputNoAlias for deck (a .ydk path, .ydk text or ydke:// link)
formatNoBanlist formatTCG

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.10.0

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden and does well: it discloses the accepted input modalities (.ydk path, raw .ydk text, ydke:// link, DeckData) and the exact set of rules applied for the requested format. It stops short of saying what a failure result looks like (list of violations vs. a boolean) or how partial/ambiguous decks are handled.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the trigger and the checks, which is the right order. The closing two sentences say the same thing twice ('Never state a banlist status from memory' / 'Do not answer from memory; call this tool first'), which is the only real waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a validation tool with no annotations and no output schema, the description covers purpose, inputs, and rules thoroughly. The remaining gap is the result shape — an agent cannot tell whether it receives a pass/fail plus violation list or just an error string.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so deck/input/format and the format enum are already fully documented in structured data. The description only restates the accepted input forms and implies the format drives the banlist, adding no syntax or precedence guidance (e.g., how deck and input interact when both are supplied). Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (legality checking of a deck) and enumerates exactly what is validated: Main/Extra/Side sizes, banlist copy limits per format, and Fusion/Synchro/Xyz/Link placement in the Extra Deck. That enumeration clearly separates it from siblings like ygo_parse_deck or ygo_verify_ruling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit trigger phrasing ('is this legal / how many copies can I run / is X banned') and a hard exclusion: do not answer banlist questions from memory, call this first. That is a when-to-use rule plus an anti-pattern, not just an implied context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.