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

Yu-gi-oh! Assistant - Multipurpose MCP

ygo_create_custom_card

Create unreleased or fan-made Yu-Gi-Oh! cards: assign a temporary ID, compile PSCT text into a Lua script, render an SVG mockup, and return compile and design-review feedback.

Instructions

Register a newly revealed or fan-made card: assign a temporary ID (990000000+), compile its effect text (PSCT: condition: cost; resolution, once-per-turn clauses, material line) into a ProjectIgnis Lua script, and render an SVG mockup. Returns compileReport: which effects were understood, clauses left as TODO (not simulated), confidence, and a card-designer review (missing once-per-turn, generic tutors, out-of-range numbers). Write the text in official PSCT wording for best results; pass effectsLua to supply a hand-written script instead.

Input Schema

NameRequiredDescriptionDefault
atkNoATK (integer 0-1000000; '?' is not supported)
defNoDEF (integer 0-1000000)
descYesCard effect text (PSCT). Extra Deck monsters: material line first, e.g. '1 Tuner + 1+ non-Tuner monsters'. Only the first 4000 characters are compiled (reported).
nameYesCard name
raceNoRace (Spellcaster, Dragon, ...)
typeYesCard type (e.g. Effect Monster, Synchro Effect Monster, Quick-Play Spell Card, Counter Trap Card, Link Monster)
levelNoLevel / Rank (0-13) or Link Rating (1-8) for Link Monsters
scaleNoPendulum Scale (0-13)
originNoCard sourceunreleased_official
archetypeNoArchetype name (e.g. Fiendsmith). Official archetypes reuse their real setcode.
attributeNoAttribute (LIGHT, DARK, FIRE, ...)
sourceUrlNoLink to the reveal article (YGOrganization...)
effectsLuaNoRaw Lua script that overrides the generated one (max 200 KB; must use `local s,id=GetID()`). Stored as user-supplied, not generated.
linkMarkersNoLink Arrows, e.g. ["Bottom-Left", "Bottom-Right"]

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.10.0

TDQS

A4.2/5.0
Behavior5/5

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

With no annotations supplied, the description carries the full burden and does so well: it discloses the side effects (temporary ID assignment, Lua generation, SVG rendering) and, critically, the limitation that unparsed clauses are left as TODO and not simulated. It also pre-describes the return payload (compileReport, confidence, designer review), which is exactly the behavior an agent needs before committing.

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?

The action and the temp-ID/compile/render sequence are front-loaded, and the effectsLua alternative is placed last where it belongs. The single dense paragraph with heavy parentheticals is efficient but slightly harder to scan than a short bulleted structure would be.

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 14-parameter creation tool with no output schema and no annotations, the description is unusually complete: it covers inputs' expected format, the generated artifacts, the return report, and the parsing limitation. The remaining gap is lifecycle context — where the temp card lives and which sibling to call next to validate or promote it.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3; the description earns extra by explaining the PSCT grammar for desc (`condition: cost; resolution`, once-per-turn clauses, material line) and by framing effectsLua as an override that supersedes the generated script. It does not touch several notable params (level/Link Rating, scale, linkMarkers, origin), but the schema already documents those adequately.

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

Purpose4/5

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

The description gives a specific verb and resource: 'Register a newly revealed or fan-made card', then enumerates the concrete outputs — temporary ID in the 990000000+ range, a ProjectIgnis Lua script, and an SVG mockup. The scope is unambiguous and clearly distinct from analysis/validation tools, though it never names a sibling (e.g. ygo_test_custom_card or ygo_migrate_temp_card) to route the agent onward.

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

Usage Guidelines4/5

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

It states a clear in-tool fork: write the text in official PSCT wording for best compile results, or pass effectsLua to bypass generation with a hand-written script. It also implicitly scopes the tool to 'newly revealed or fan-made' cards. What is missing is any guidance on when to choose this over adjacent tools that consume the resulting temp card (test, migrate, analyze_lua).

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