Skip to main content
Glama
Cladios34

mtg-mcp-server

by Cladios34

mtg-mcp-server

CI PyPI Python 3.12+ License: MIT codecov CodeQL Smithery Dependabot uv Ruff

69 tools, 19 prompts, and 21 resources that give AI assistants deep access to Magic: The Gathering -- card data, combos, draft analytics, Commander metagame, competitive constructed, sideboard strategy, deck building, rules engine, and more. Works with Claude Code, Claude Desktop, or any MCP client.

Built on data from Scryfall, Commander Spellbook, 17Lands, EDHREC, Moxfield, Spicerack, and MTGGoldfish. See Data Sources & Attribution for details and usage terms.

Table of Contents

  • What You Can Do — example prompts and real tool output

  • Install — hosted, Claude Code, Claude Desktop, PyPI, development

  • Configuration — environment variables and feature flags

  • Tools — all 69 tools across 13 domains

  • Architecture — FastMCP 3.x mount system

  • Stack — Python 3.12+, FastMCP, httpx, Pydantic

  • Development — mise commands for testing, linting, typechecking

  • Documentation — cookbook, architecture, tool reference, and more

  • Status — current tool/test counts

  • Data Sources & Attribution — Scryfall, Spellbook, 17Lands, EDHREC, Moxfield, Spicerack, MTGGoldfish

Related MCP server: Scryfall MCP Server

What You Can Do

Ask your AI assistant questions like these and it will use the MTG tools automatically:

Commander

  • "Show me everything about Muldrotha as a commander"

  • "What are the best budget upgrades for my Atraxa deck under $5?"

  • "Compare Muldrotha vs Meren vs Karador as graveyard commanders"

Draft & Limited

  • "What are the best commons in Foundations for draft?"

  • "Rank these cards for my draft pack: Bitter Triumph, Monstrous Rage, Torch the Tower"

  • "Build a sealed deck from this pool: [list]"

Deck Building

  • "Validate my Modern decklist"

  • "Suggest a mana base for my 3-color Commander deck"

  • "Find cards that synergize with sacrifice themes in Golgari"

Rules

  • "How do deathtouch and trample interact?"

  • "Resolve this combat scenario: my 3/3 with first strike blocks their 5/5 with trample"

Constructed

  • "What does the Modern metagame look like right now?"

  • "Show me the stock Boros Energy decklist for Modern"

  • "Build me a sideboard for this Pioneer deck"

  • "Give me a sideboard guide for my deck against Azorius Control"

See It in Action

"Compare Muldrotha, Meren, and Karador as graveyard commanders"

                     Muldrotha            Meren               Karador
Mana Cost            {3}{B}{G}{U}         {2}{B}{G}           {5}{W}{B}{G}
Color Identity       BGU (Sultai)         BG (Golgari)        BGW (Abzan)
Stats                6/6                  3/4                  3/4
EDHREC Rank          #1,137               #1,476              #9,894
Total Decks          22,460               19,919              6,305
Combo Count          10                   1                   10

Top Staples:
  Muldrotha           Spore Frog (+53%), Sakura-Tribe Elder (+36%), Eternal Witness (+27%)
  Meren               Spore Frog (+70%), Sakura-Tribe Elder (+55%), Viscera Seer (+52%)
  Karador             Karmic Guide (+51%), Satyr Wayfinder (+49%), Sun Titan (+48%)

"What are the best commons in Foundations for draft?"

Foundations (FDN) — PremierDraft · Median GIH WR: 54.7%

Rank  Card               Color  GIH WR   ALSA   IWD      Games
1     Bake into a Pie    B      58.4%    3.1    +5.3%    354,741
2     Burst Lightning    R      58.2%    3.3    +3.0%    338,888
3     Refute             U      58.1%    5.3    +4.3%    321,280
4     Stab               B      57.9%    3.4    +4.5%    376,569
5     Dazzling Angel     W      57.8%    3.2    +2.4%    317,648

Trap rares: Doubling Season (39.4%), Thousand-Year Storm (35.2%) ...

More examples with real tool output in the Cookbook.

Install

No API keys needed -- all data sources are public.

Hosted (zero setup)

The fastest way to get started. No Python install required. Works on mobile.

Via the UI (Claude Desktop or claude.ai): Settings → Connectors → Add custom connector → paste the URL:

https://mtg-mcp-server.fastmcp.app/mcp

Via config file (~/Library/Application Support/Claude/claude_desktop_config.json on macOS, %APPDATA%\Claude\claude_desktop_config.json on Windows):

{
  "mcpServers": {
    "mtg": {
      "type": "url",
      "url": "https://mtg-mcp-server.fastmcp.app/mcp"
    }
  }
}

Claude Code

claude mcp add mtg -- uvx mtg-mcp-server

Or via the UI: Settings → MCP Servers → Add server → enter uvx mtg-mcp-server as the command.

Claude Desktop (local)

Runs on your machine. Requires Python 3.12+.

{
  "mcpServers": {
    "mtg": {
      "command": "uvx",
      "args": ["mtg-mcp-server"]
    }
  }
}

PyPI

# Run directly (no install)
uvx mtg-mcp-server

# Install globally
uv tool install mtg-mcp-server

# Add to a project
uv add mtg-mcp-server

Development

git clone https://github.com/j4th/mtg-mcp-server.git
cd mtg-mcp-server
mise install          # Installs Python 3.12, uv, ruff, ty
mise run setup        # Creates venv, installs dependencies

uv run mtg-mcp-server # Run the server

Claude Code config for local development:

{
  "mcpServers": {
    "mtg": {
      "command": "uv",
      "args": ["run", "--directory", "/path/to/mtg-mcp-server", "mtg-mcp-server"]
    }
  }
}

Configuration

All settings use MTG_MCP_ environment variables. Everything works out of the box with sensible defaults.

# Feature flags for optional backends
MTG_MCP_ENABLE_EDHREC=false       # EDHREC (scrapes undocumented endpoints)
MTG_MCP_ENABLE_17LANDS=false      # 17Lands (rate-limits aggressively)
MTG_MCP_ENABLE_BULK_DATA=false    # Scryfall bulk data (~30MB download on first use)
MTG_MCP_ENABLE_RULES=false        # Comprehensive Rules engine

# Pass env vars through uvx
uvx --env MTG_MCP_ENABLE_EDHREC=false mtg-mcp-server

See .env.example for all available options including base URLs, rate limits, and cache settings.

Tools

69 tools across 13 domains. See docs/TOOL_DESIGN.md for full input/output details.

Card Data (scryfall_*)

Tool

Description

search_cards

Search using full Scryfall syntax (f:commander id:sultai t:creature)

card_details

Full card data by exact or fuzzy name

card_price

Current USD, EUR, and foil prices

card_rulings

Official rulings and clarifications

set_info

Set metadata by code

whats_new

Recently released or previewed cards

Bulk Data (bulk_*)

Tool

Description

card_lookup

Rate-limit-free card lookup by exact name

card_search

Search by name, type, or oracle text

format_legality

Check if a card is legal in a format

format_search

Search for cards legal in a specific format

format_staples

Top-played cards in a format by EDHREC rank

ban_list

Banned and restricted cards for a format

card_in_formats

Card legality across all formats

random_card

Random card, optionally filtered by format or type

similar_cards

Find cards similar by type, keywords, or mana cost

Combos (spellbook_*)

Tool

Description

find_combos

Search for combos by card name and color identity

combo_details

Step-by-step combo instructions by ID

find_decklist_combos

Find combos present in a decklist

estimate_bracket

Estimate Commander bracket for a decklist

Draft Analytics (draft_*)

Tool

Description

card_ratings

Win rates and draft data for cards in a set (17Lands)

archetype_stats

Win rates by color pair for a set

Commander Metagame (edhrec_*)

Tool

Description

commander_staples

Most-played cards for a commander with synergy scores

card_synergy

Synergy data for a card with a specific commander

Decklists (moxfield_*)

Tool

Description

decklist

Fetch a full decklist by deck ID or URL

deck_info

Deck metadata (name, format, author, dates)

search_decks

Search public decks by format, keyword, or sort order

user_decks

List a user's public decks

Tournament Data (spicerack_*)

Tool

Description

recent_tournaments

Recent tournaments for a competitive format

tournament_results

Full standings for a specific tournament

format_decklists

Top-finishing decklists across recent tournaments

Metagame (goldfish_*)

Tool

Description

metagame

Current metagame breakdown for a competitive format

archetype_list

Sample decklist for an archetype

format_staples

Most-played cards in a format with deck inclusion %

deck_price

Estimated paper price for an archetype deck

Commander Workflows

Tool

Description

commander_overview

Full commander profile from all sources

evaluate_upgrade

Assess whether a card is worth adding to a deck

card_comparison

Compare 2-5 cards side-by-side for a commander

budget_upgrade

Budget-constrained upgrade suggestions ranked by synergy/$

commander_comparison

Compare 2-5 commanders head-to-head

color_identity_staples

Top-played cards across all commanders in a color identity

Deck Building

Tool

Description

theme_search

Find cards matching a mechanical or tribal theme

build_around

Detect synergies from key cards and find complements

complete_deck

Gap analysis and suggestions for a partial decklist

tribal_staples

Best cards for a creature type in a color identity

precon_upgrade

Analyze a precon and suggest swap pairs

suggest_cuts

Identify the weakest cards to cut from a decklist

deck_analysis

Full decklist health check (curve, colors, combos, budget)

deck_validate

Validate a decklist against format construction rules

suggest_mana_base

Suggest lands based on color pip distribution

price_comparison

Compare prices across multiple cards

Draft Workflows

Tool

Description

draft_pack_pick

Rank cards in a draft pack using 17Lands data

set_overview

Top commons/uncommons and trap rares for a format

sealed_pool_build

Suggest the best 40-card builds from a sealed pool

draft_signal_read

Detect open colors from draft picks

draft_log_review

Pick-by-pick review of a completed draft with grade

Constructed Workflows

Tool

Description

rotation_check

Standard rotation status and rotating cards

metagame_snapshot

Tiered metagame breakdown with prices

archetype_decklist

Stock decklist for a competitive archetype

archetype_comparison

Compare 2-4 archetypes side-by-side

format_entry_guide

Beginner guide for entering a competitive format

suggest_sideboard

15-card sideboard suggestions for a deck

sideboard_guide

In/out plan for a specific matchup

sideboard_matrix

Sideboard matrix across common matchups

Rules Engine

Tool

Description

rules_lookup

Look up rules by number or keyword

keyword_explain

Explain a keyword with rules and example cards

rules_interaction

How two mechanics interact with rule citations

rules_scenario

Rules framework for a game scenario

combat_calculator

Step-by-step combat phases with keyword interactions

Architecture

Built on FastMCP 3.x. Each data source is an independent sub-server mounted into a single orchestrator:

MTG (orchestrator)
├── scryfall (namespace: scryfall_)     -> Scryfall REST API
├── spellbook (namespace: spellbook_)   -> Commander Spellbook API
├── draft (namespace: draft_)           -> 17Lands data
├── edhrec (namespace: edhrec_)         -> EDHREC (scraped, feature-flagged)
├── bulk (namespace: bulk_)             -> Scryfall Oracle Cards bulk data
├── moxfield (namespace: moxfield_)     -> Moxfield (reverse-engineered, feature-flagged)
├── spicerack (namespace: spicerack_)   -> Spicerack tournament API
├── goldfish (namespace: goldfish_)     -> MTGGoldfish (scraped, feature-flagged)
└── workflows (no namespace)            -> 36 tools (31 composed + 5 rules)

Services are pure async API clients. Providers register MCP tools. Workflows compose across services with partial failure tolerance. See docs/ARCHITECTURE.md for the full picture.

Stack

Runtime

Python 3.12+, uv

MCP

FastMCP 3.2.x

HTTP

httpx (async)

Validation

Pydantic v2

Logging

structlog

Tooling

mise, ruff, ty (Astral)

Testing

pytest, respx, pytest-asyncio

HTML parsing

selectolax

Development

git clone https://github.com/j4th/mtg-mcp-server.git
cd mtg-mcp-server
mise install          # Installs Python, uv, ruff, ty
mise run setup        # Creates venv, installs dependencies

mise run check        # Full quality gate: lint + typecheck + tests
mise run check:quick  # Fast gate: lint + typecheck + affected tests only
mise run test         # All tests with coverage
mise run test:quick   # Only tests affected by recent changes
mise run lint         # ruff check + format check
mise run typecheck    # ty check
mise run dev          # MCP Inspector for interactive testing
mise run fix          # Auto-fix lint and format issues

Documentation

Doc

What it covers

COOKBOOK.md

Usage recipes -- Commander, draft, deck building, rules workflows

TOOL_DESIGN.md

Full reference for all 69 tools, 19 prompts, 21 resources

ARCHITECTURE.md

Technical architecture, FastMCP patterns, design decisions

SERVICE_CONTRACTS.md

API endpoints, rate limits, response shapes per backend

DATA_SOURCES.md

All data sources with auth, stability, and access patterns

CACHING_DESIGN.md

TTL cache strategy and Scryfall bulk data design

CONTRIBUTING.md

Development setup, TDD workflow, code style, PR process

CHANGELOG.md

Version history in Keep a Changelog format

Status

69 tools, 19 prompts, 21 resource templates. 1340 tests at 88% coverage.

Phase

What

Status

0

Project scaffold

Done

1

Scryfall backend (4 tools)

Done

2

Spellbook + 17Lands + EDHREC backends (9 tools)

Done

3

Workflow tools -- commander, draft, deck (4 tools)

Done

4

TTL caching + Scryfall bulk data provider (2 tools)

Done

5

Analysis & comparison workflows, prompts, resources (4 tools)

Done

Branch A

Structured output, rules engine, validation tools (17 tools)

Done

Branch B

Format workflows -- deck building, commander depth, limited, constructed (11 tools)

Done

Moxfield

Moxfield decklist provider (4 tools)

Done

Spicerack

Tournament results provider (3 tools)

Done

MTGGoldfish

Metagame data provider (4 tools)

Done

v2.3.0

Metagame workflows, sideboard tools, Moxfield search (9 tools)

Done

Data Sources & Attribution

This project composes data from multiple third-party services:

See THIRD_PARTY_NOTICES.md for full license texts and usage terms.

Disclaimer

mtg-mcp-server is unofficial Fan Content permitted under the Fan Content Policy. Not approved/endorsed by Wizards. Portions of the materials used are property of Wizards of the Coast. © Wizards of the Coast LLC.

License

MIT -- see LICENSE

Available Tools

74 tools
archetype_comparisonA
Read-onlyIdempotent

Compare 2-4 competitive archetypes side-by-side.

Shows price, colors, key cards, shared staples, and differences.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatYesCompetitive format (e.g. 'Modern', 'Legacy', 'Pioneer', 'Pauper')
archetypesYes2-4 archetype names to compare (fuzzy matched)
response_formatNoOutput verbosity: 'detailed' (default) or 'concise'detailed

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, and idempotentHint. The description adds useful behavioral details about what the tool shows (price, colors, key cards, shared staples, differences) without contradicting annotations.

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

Conciseness5/5

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

The description is two concise sentences, front-loaded with the purpose, and every sentence provides value.

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?

The description covers the tool's output sufficiently (price, colors, etc.) despite no output schema. Combined with annotations, it provides a complete picture for a comparison tool.

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% with all parameters adequately described. The description does not add parameter-level details beyond what the schema provides.

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?

The description clearly states the tool compares 2-4 competitive archetypes side-by-side and lists the aspects shown (price, colors, etc.), distinguishing it from sibling tools like goldfish_archetype_list or archetype_decklist.

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

Usage Guidelines3/5

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

The description implies use when comparing multiple archetypes but does not provide explicit guidance on when not to use it or mention alternatives.

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

archetype_decklistA
Read-onlyIdempotent

Get the stock decklist for a competitive archetype.

Returns a full decklist (mainboard + sideboard) with deck metadata and total price when available. Archetype name is fuzzy-matched.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatYesCompetitive format (e.g. 'Modern', 'Legacy', 'Pioneer', 'Pauper')
archetypeYesArchetype name (e.g. 'Boros Energy', 'Mono-Blue Terror') — fuzzy matched
response_formatNoOutput verbosity: 'detailed' (default) or 'concise'detailed

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already indicate read-only, open-world, and idempotent behavior. The description adds useful context: it returns a full decklist with mainboard+sideboard, metadata, price when available, and archetype name is fuzzy-matched. No contradictions.

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

Conciseness5/5

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

Two clear, front-loaded sentences with no unnecessary words. Every sentence provides value: first states the primary action, second details the return content. Excellent conciseness.

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?

Given no output schema, the description adequately explains return values: full decklist, metadata, price when available. It covers mainboard and sideboard. Minor gap: no mention of error cases or what happens if archetype not found, but sufficient for a read tool.

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 parameters are already well-documented. The description adds only that archetype is fuzzy-matched, which is a minor enhancement. No additional semantics for format or response_format.

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?

The description clearly states the tool retrieves a stock decklist for a competitive archetype, with specific verb 'Get' and resource. It distinguishes from siblings like moxfield_decklist (user decks) and archetype_comparison (comparison), and details what is returned.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives. The description does not mention when not to use it or contrast with similar tools, leaving the agent to infer from context.

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

budget_upgradeA
Read-onlyIdempotent

Suggest budget-friendly upgrades for a commander deck.

Ranks EDHREC staples by synergy-per-dollar within the given budget ceiling. Requires EDHREC (for staples) and Scryfall (for prices).

ParametersJSON Schema
NameRequiredDescriptionDefault
budgetYesMaximum price per card in USD (e.g. 5.0 for cards under $5)
commander_nameYesCommander the deck is built around
num_suggestionsNoNumber of upgrade suggestions to return
response_formatNoOutput verbosity: 'detailed' (default) or 'concise'detailed

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint. The description adds useful context about external dependencies (EDHREC, Scryfall) and the ranking method (synergy-per-dollar), which together provide good behavioral transparency.

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

Conciseness5/5

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

The description is three sentences, front-loaded with the primary purpose, and each sentence adds value without redundancy.

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

Completeness2/5

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

With no output schema, the description should explain the return format. It fails to describe what the user will receive (e.g., a list of card names, prices, synergy scores). Given 4 parameters including format options, this is a notable gap.

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%, and parameters are described in the schema. The description reinforces the 'budget' parameter as a ceiling and mentions synergy-per-dollar but does not add meaningful detail beyond the schema.

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?

The description clearly states the tool suggests budget-friendly upgrades for a commander deck, ranking by synergy-per-dollar within a budget ceiling. It distinguishes itself from siblings like evaluate_upgrade by focusing on budget and ranking.

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

Usage Guidelines3/5

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

The description implies usage for budget-constrained upgrades but does not explicitly state when to use this tool versus alternatives like edhrec_commander_staples or evaluate_upgrade. No when-not guidance is provided.

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

build_aroundA
Read-onlyIdempotent

Find synergistic cards for 1-5 build-around cards in any format.

Analyzes oracle text for key mechanics, searches for synergies, and checks combo potential. Groups results by role (enablers, payoffs, support).

ParametersJSON Schema
NameRequiredDescriptionDefault
cardsYes1-5 card names to build around
limitNoMaximum number of suggestions
budgetNoMaximum price per card in USD
formatYesFormat to build for (e.g. 'standard', 'modern', 'commander')
response_formatNoOutput verbosity: 'detailed' (default) or 'concise'detailed

TDQS

A4/5.0
Behavior4/5

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

Annotations already indicate read-only, idempotent, and open-ended behavior. The description adds process details: analyzing oracle text, searching for synergies, checking combos, and grouping by role. This provides useful behavioral context beyond the annotations.

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

Conciseness5/5

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

Two concise sentences plus a third line. First sentence captures core purpose. Second adds details on analysis and output grouping. No redundant or extraneous information.

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?

Given 5 parameters and no output schema, the description covers the tool's main function and output grouping. However, it lacks explicit mention of return value format (e.g., 'returns a list of card names grouped by role'). Slightly incomplete but mostly adequate.

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 descriptions cover all parameters fully (100% coverage). The description mentions '1-5 card names' which aligns with the 'cards' parameter but adds no new semantics. Parameters like 'limit', 'budget', 'format', and 'response_format' are adequately described in schema. Baseline 3 is appropriate.

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?

The description clearly states the tool finds synergistic cards for 1-5 build-around cards, analyzes oracle text, searches for synergies, checks combo potential, and groups by role. It distinguishes itself from siblings like 'spellbook_find_combos' and 'edhrec_card_synergy' by focusing on multi-card synergy grouping.

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

Usage Guidelines3/5

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

The description implies usage for building around a core set of cards by stating '1-5 build-around cards' and 'any format', but lacks explicit guidance on when not to use it or alternative tools. No contrast with similar sibling tools like 'spellbook_find_combos' or 'theme_search'.

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

bulk_ban_listA
Read-onlyIdempotent

Get the banned and restricted cards for a format.

Returns alphabetically sorted lists of banned and restricted cards, including their type lines.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatYesFormat to check ban list for (e.g. 'commander', 'modern', 'standard')

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already indicate read-only, idempotent, and open-world behavior. The description adds valuable context: results are alphabetically sorted and include type lines, complementing the annotations without contradiction.

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

Conciseness5/5

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

Two sentences front-load the main purpose and output format, with no unnecessary words. Direct and efficient.

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

Completeness5/5

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

For a simple retrieval tool with one parameter and clear annotations, the description fully explains input (format) and output (sorted lists with type lines). No gaps remain.

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?

The only parameter 'format' has a description in the schema with examples, achieving 100% coverage. The tool description does not add further parameter semantics, so baseline score 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?

The description clearly states the tool retrieves banned and restricted cards for a given format, specifying the output includes sorted lists with type lines. This distinguishes it from related sibling tools like bulk_format_legality.

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

Usage Guidelines3/5

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

The description does not provide guidance on when to use this tool versus alternatives, nor does it mention any prerequisites or exclusions. Usage is implied but not explicitly justified.

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

bulk_card_in_formatsA
Read-onlyIdempotent

Show a card's legality across all Magic formats.

Returns a table with the card's legality status in each format, ordered with the most common formats first.

ParametersJSON Schema
NameRequiredDescriptionDefault
card_nameYesCard name to check format legality for

TDQS

A4/5.0
Behavior4/5

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

Annotations already provide readOnlyHint, openWorldHint, idempotentHint. The description adds value by describing the output as a table ordered by most common formats, which is beyond annotations.

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

Conciseness5/5

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

Two sentences, no fluff. First sentence states purpose, second adds output detail. Front-loaded and efficient.

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?

Given no output schema, the description explains the return format (table with legality status and ordering). It is mostly complete, though it could detail possible status values.

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% with a single parameter described as 'Card name to check format legality for'. The description does not add extra meaning beyond the schema, meeting baseline.

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?

The description clearly states the tool shows a card's legality across all Magic formats, with a specific verb 'Show' and resource. It distinguishes from sibling tools like bulk_format_legality by covering all formats.

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

Usage Guidelines3/5

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

The description implies usage for checking card legality in all formats but does not explicitly mention when not to use it or suggest alternatives. Guidance is limited to the stated scope.

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

bulk_card_lookupA
Read-onlyIdempotent

Look up a Magic card by exact name using Scryfall bulk data.

Returns full card details including mana cost, type, oracle text, colors, power/toughness, prices, legalities, and EDHREC rank. Case-insensitive.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesCard name for exact lookup, case-insensitive (e.g. 'Sol Ring')
response_formatNoOutput verbosity: 'detailed' (default) or 'concise'detailed

TDQS

A4/5.0
Behavior4/5

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

Annotations (readOnlyHint, openWorldHint, idempotentHint) already indicate safe, idempotent read behavior. The description adds value by detailing the specific output fields (mana cost, type, oracle text, etc.), which goes beyond annotations and helps the agent understand what to expect from the response.

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

Conciseness5/5

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

The description is two sentences, each earning its place: first states the core purpose, second details return data. It is front-loaded with the action and resource, and contains no superfluous words, achieving high efficiency.

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?

Given the tool's simplicity (2 params, 100% schema coverage, clear annotations), the description is largely complete. It covers purpose, input constraints, and output contents. Missing usage guidelines is a minor gap but does not severely impair completeness for this defined-exact-match tool.

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% with clear parameter descriptions (e.g., case-insensitive name, response_format enum). The tool description merely restates the case-insensitivity already in the schema, adding no new semantic meaning. Baseline 3 is appropriate as the schema already does the heavy lifting.

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?

The description clearly states the tool looks up a Magic card by exact name using Scryfall bulk data, and lists specific returned fields. It explicitly mentions 'exact name' and 'case-insensitive', distinguishing it from sibling tools like scryfall_search_cards or bulk_card_search which may offer fuzzy or broader search.

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

Usage Guidelines3/5

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

The description does not provide explicit guidance on when to use this tool versus alternatives, nor does it state when not to use it. It implicitly indicates use for exact name lookups, but lacks direct comparisons or exclusion criteria, leaving a gap in usage decision support.

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

bulk_format_legalityA
Read-onlyIdempotent

Batch legality check for cards in a specific format.

Returns a markdown table showing the legality status of each card in the specified format. Handles common format aliases (e.g. 'edh' for 'commander').

ParametersJSON Schema
NameRequiredDescriptionDefault
cardsYesList of card names to check legality for
formatYesFormat to check (e.g. 'commander', 'modern', 'standard', 'legacy')

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already signal read-only, open-world, idempotent. Description adds that output is a markdown table and alias handling, providing useful behavioral details beyond annotations.

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

Conciseness5/5

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

Two concise sentences, front-loaded with purpose, no redundant information.

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

Completeness5/5

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

For a simple two-parameter tool with no output schema, description fully explains purpose, input, output format, and alias handling.

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%, and description adds no new information beyond what parameter descriptions provide.

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?

Clearly states verb 'batch legality check' for cards in a format, distinguishing from siblings like bulk_format_search or bulk_card_search which do other things.

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?

Provides context: returns markdown table and handles format aliases, but does not explicitly state when to use over alternatives or when not to use.

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

bulk_format_staplesA
Read-onlyIdempotent

Find the most popular (staple) cards legal in a format.

Ranking adapts to the format: singleton formats (Commander, Brawl, Oathbreaker) use EDHREC rank; competitive formats use MTGGoldfish tournament frequency when available, falling back to a mana-efficiency heuristic.

ParametersJSON Schema
NameRequiredDescriptionDefault
colorNoColor identity filter (e.g. 'sultai', 'WU', 'red'). Only returns cards within this identity.
limitNoMaximum results to return
formatYesFormat to find staples for (e.g. 'commander', 'modern', 'legacy')
card_typeNoCard type filter (e.g. 'creature', 'instant', 'land')
ranking_modeNoHow to rank staples: 'auto' (default) picks the best mode for the format, 'edhrec' uses Commander popularity, 'competitive' uses a mana-efficiency heuristic, 'tournament' uses MTGGoldfish metagame frequency.auto
response_formatNoOutput verbosity: 'detailed' (default) or 'concise'detailed

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already provide readOnlyHint, openWorldHint, and idempotentHint. The description adds valuable behavioral context about how ranking adapts (EDHREC, MTGGoldfish, manaefficiency heuristic), which goes beyond annotations. No contradictions.

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

Conciseness5/5

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

The description is extremely concise: two sentences front-loaded with the primary purpose, followed by necessary behavioral detail. No wasted words.

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

Completeness3/5

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

Given 6 parameters, no output schema, and sibling tools that may return different formats, the description lacks an explanation of the return structure (e.g., fields, sorting). It adequately covers ranking logic but not what the output contains.

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 baseline is 3. The description does not provide additional parameter meaning beyond what the schema already offers (e.g., ranking_mode behavior is explained in schema property description). No extra value.

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?

The description clearly states the tool finds 'most popular (staple) cards legal in a format', with a specific verb and resource. It distinguishes itself by explaining adaptive ranking logic based on format type, which differentiates it from sibling tools like 'edhrec_commander_staples' or 'goldfish_format_staples'.

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?

The description explicitly explains when to use this tool (finding staples for a format) and how ranking adapts (singleton vs competitive formats). It implies its niche among sibling staple tools but does not explicitly state when not to use it or list alternatives.

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

bulk_random_cardA
Read-onlyIdempotent

Get a random Magic card, optionally filtered by format, color, type, and rarity.

Returns full card details in the same format as card_lookup.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNoFormat filter (e.g. 'commander', 'modern'). Only returns legal cards.
rarityNoRarity filter (e.g. 'common', 'uncommon', 'rare', 'mythic')
card_typeNoCard type filter (e.g. 'creature', 'instant', 'land')
color_identityNoColor identity filter (e.g. 'sultai', 'WU', 'red'). Only returns cards within this identity.

TDQS

A3.6/5.0
Behavior2/5

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

Annotations declare idempotentHint=true, but a random card tool is inherently non-idempotent—this is a contradiction. The description does not clarify that repeated calls yield different results or address any other behavioral traits (e.g., no mention of randomness seed or guarantees). The note about returning full card details in the same format as card_lookup adds context, but the contradiction undermines trust.

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

Conciseness5/5

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

Two sentences with no wasted words. The core action and optional filters are stated upfront. The return format reference is efficient. Perfectly concise and well-structured.

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 simple random card tool, the description covers the essential aspects: purpose, optional filters, and return format reference. Without an output schema, the link to card_lookup provides some context, though it assumes familiarity with that tool. A slightly more complete description could explicitly state that the result is a single card object.

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%, and the description lists the four filter parameters (format, color, type, rarity) already defined in the schema. It adds no additional meaning or usage details beyond what the schema provides, so it meets the baseline for a high-coverage schema.

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 'Get a random Magic card' which is a specific verb and resource. The optional filters (format, color, type, rarity) are clearly listed, and the return format reference to card_lookup distinguishes it from other lookup tools. It is precise and unambiguous.

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

Usage Guidelines3/5

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

The description implies use when a random card is needed, and notes that filters are optional. However, it does not provide explicit guidance on when not to use this tool or mention alternatives (e.g., bulk_card_lookup for specific cards). No context for comparison with sibling tools is given.

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

bulk_similar_cardsB
Read-onlyIdempotent

Find cards similar to a given card.

Scores similarity based on shared keywords, type words, CMC proximity, and oracle text overlap. Optionally filter by format legality and price.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum results to return
formatNoFormat filter (e.g. 'commander', 'modern'). Only returns legal cards.
card_nameYesName of the card to find similar cards for
max_priceNoMaximum USD price filter
response_formatNoOutput verbosity: 'detailed' (default) or 'concise'detailed

TDQS

B3.4/5.0
Behavior4/5

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

Annotations already declare the tool as read-only, idempotent, and open-world. The description adds behavioral context by detailing similarity factors (shared keywords, type words, CMC proximity, oracle text overlap), which goes beyond annotations without contradicting them.

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?

Two sentences are concise and front-loaded with purpose. The second sentence lists similarity factors efficiently. No wasted words, though it could benefit from a more structured format (e.g., bullet points).

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

Completeness3/5

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

Given the tool has 5 parameters, no output schema, and moderate complexity, the description adequately covers the core functionality and filtering options. However, it lacks details on the output format (e.g., structure of results) and what 'limit' affects beyond schema description.

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?

Input schema has 100% coverage with descriptions for all 5 parameters. The description mentions filtering by format and price, but does not add significant new semantics beyond the schema. Baseline of 3 is appropriate.

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?

Describes the tool as finding similar cards based on specific criteria (keywords, type words, CMC, oracle text). The purpose is clear and specific, but it does not explicitly differentiate from sibling tools like 'card_comparison' or 'build_around' that also deal with similarity.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives. While it mentions optional filters, it does not indicate when not to use it or suggest other tools for different use cases (e.g., comparing two specific cards).

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

card_comparisonA
Read-onlyIdempotent

Compare 2-5 cards side-by-side for a specific commander deck.

Shows mana cost, type, synergy, inclusion rate, combo count, and price for each card. Scryfall and Spellbook required; EDHREC optional.

ParametersJSON Schema
NameRequiredDescriptionDefault
cardsYes2-5 card names to compare side-by-side
commander_nameYesCommander the deck is built around
response_formatNoOutput verbosity: 'detailed' (default) or 'concise'detailed

TDQS

A3.8/5.0
Behavior4/5

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

Annotations declare read-only, idempotent, and open-world. Description adds context on data shown (mana cost, synergy, etc.) and required sources (Scryfall, Spellbook). No contradiction. Good behavioral transparency beyond annotations.

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

Conciseness5/5

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

Description is concise with three short sentences. First sentence immediately states the core purpose. No unnecessary words. Efficient.

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?

The description covers purpose, output fields, and dependencies. For a tool without output schema, it provides sufficient context for an agent to understand what result to expect. However, it could mention formatting or error handling.

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 descriptions cover all 3 parameters completely. The tool description does not add additional parameter semantics beyond what is already in the input schema. Therefore, parameter semantics is adequate but not enhanced.

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?

The description clearly states the tool compares 2-5 cards for a commander deck, listing the data points shown. This distinguishes it from sibling tools like commander_comparison and price_comparison.

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

Usage Guidelines2/5

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

The description does not specify when to use this tool versus alternatives like commander_comparison or price_comparison. It only states dependencies but no usage boundaries.

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

color_identity_staplesA
Read-onlyIdempotent

Top cards across ALL commanders in a color identity.

Uses EDHREC aggregated data when available, falls back to EDHREC rank from bulk data.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of results
categoryNoCard category filter (e.g. 'creatures', 'instants', 'lands')
color_identityYesColor identity (e.g. 'sultai', 'BUG', 'WR', 'mono-red')
response_formatNoOutput verbosity: 'detailed' (default) or 'concise'detailed

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, and idempotentHint, covering safety and idempotency. The description adds value by revealing the data source (EDHREC aggregated data) and fallback behavior (EDHREC rank from bulk data), which informs the agent about data freshness and reliability.

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

Conciseness5/5

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

Two sentences, no filler, front-loaded with purpose. Every word earns its place. Highly efficient.

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

Completeness3/5

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

Description explains data source and fallback, but does not clarify the return structure (e.g., what fields are returned, whether cards are formatted as names with ranks). Since no output schema exists, some guidance on expected output format would improve completeness. Minor gap given the tool's simplicity.

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 each parameter is already documented. The description adds little beyond the schema: it mentions 'color identity' (already in schema) and implies results are sorted by popularity. This is baseline value; no significant extra semantics provided.

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?

Description clearly states the tool returns 'top cards across ALL commanders in a color identity', specifying verb (list top cards), resource (color identity), and scope (all commanders). This distinguishes it from per-commander staple tools like edhrec_commander_staples.

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

Usage Guidelines3/5

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

No explicit guidance on when to use vs alternatives. The phrase 'across ALL commanders' hints at a broad use case, but does not state when one should choose this over sibling tools like edhrec_commander_staples or scryfall_search_cards. Usage is implied but not explicit.

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

combat_calculatorA
Read-onlyIdempotent

Calculate combat step-by-step with keyword interactions.

Resolves declare attackers → declare blockers → damage steps → state-based actions. Looks up card keywords from bulk data if card names are provided.

ParametersJSON Schema
NameRequiredDescriptionDefault
blockersYesBlocking creature names or descriptions
keywordsNoAdditional keyword abilities to consider (e.g. 'deathtouch', 'trample')
attackersYesAttacking creature names or descriptions
response_formatNoOutput verbosity: 'detailed' (default) or 'concise'detailed

TDQS

A4.4/5.0
Behavior5/5

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

Annotations already declare readOnlyHint, openWorldHint, and idempotentHint. The description adds valuable context by stating it looks up card keywords from bulk data if card names are provided, going beyond annotations to disclose external data dependency and behavior.

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

Conciseness5/5

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

Two concise sentences with no fluff. The first sentence states the core purpose, and the second provides key behavioral details. Every sentence earns its place.

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?

Given the absence of an output schema, the description explains the process steps but does not clarify the output format beyond the response_format parameter. It is mostly complete for a combat calculator, but could benefit from describing what detailed vs. concise output includes.

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 description coverage is 100%, so baseline is 3. The description adds minimal extra meaning beyond the schema; it reiterates that card names are used for keyword lookup, but the schema already describes the parameters adequately.

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?

The description clearly states the tool calculates combat step-by-step with keyword interactions. It uses a specific verb ('Calculate') and resource ('combat'), and distinguishes from sibling tools by focusing on combat resolution, unlike other rules or lookup tools.

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?

The description outlines the combat steps (declare attackers → declare blockers → damage → state-based actions), providing clear context for when to use this tool. While it doesn't explicitly state when not to use it or mention alternatives, the step-by-step breakdown implies its intended use case.

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

commander_comparisonA
Read-onlyIdempotent

Compare 2-5 commanders head-to-head: stats, combos, staples, popularity.

Side-by-side comparison table with mana cost, color identity, EDHREC rank, combo count, and shared/unique staples.

ParametersJSON Schema
NameRequiredDescriptionDefault
commandersYes2-5 commander names to compare head-to-head
response_formatNoOutput verbosity: 'detailed' (default) or 'concise'detailed

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true. The description adds valuable behavioral context by specifying the output format (side-by-side comparison table with specific columns). No contradictions.

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

Conciseness5/5

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

The description is two sentences with front-loaded purpose and concise details. Every sentence adds value with no redundancy.

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

Completeness5/5

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

Despite lacking an output schema, the description fully explains the output format (side-by-side table with mana cost, color identity, EDHREC rank, combo count, staples). This is sufficient for the agent to understand what to expect.

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?

Input schema has 100% coverage, describing both parameters clearly. The description does not add significant meaning beyond the schema; it echoes the commander count and output fields. Baseline 3 is appropriate.

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?

The description clearly states the tool compares 2-5 commanders head-to-head and lists specific comparison dimensions (stats, combos, staples, popularity). It is a specific verb+resource combination that distinguishes it from sibling tools like card_comparison or archetype_comparison.

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?

The description provides a clear context for when to use the tool (comparing multiple commanders) but does not explicitly state when not to use it or name alternatives. The context is sufficient for a competent agent to infer usage.

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

commander_overviewA
Read-onlyIdempotent

Comprehensive commander profile combining data from all available sources.

Returns card details, top combos, EDHREC staples, and synergy scores. Degrades gracefully if optional sources (EDHREC, Spellbook) are unavailable.

ParametersJSON Schema
NameRequiredDescriptionDefault
commander_nameYesCommander card name (e.g. 'Muldrotha, the Gravetide')
response_formatNoOutput verbosity: 'detailed' (default) or 'concise'detailed

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, and idempotentHint. The description adds value by noting graceful degradation when optional sources are unavailable, which is a behavioral trait beyond annotations. No contradictions.

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

Conciseness5/5

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

Three sentences efficiently convey purpose, contents, and a key behavioral note (graceful degradation). No redundancy, well-structured.

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 tool with no output schema, the description lists the main categories returned (card details, combos, staples, synergy scores). This provides sufficient context for an agent to understand the output, though more detail on structure would be beneficial.

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 both parameters are already described. The description adds no additional meaning beyond what's in the schema, so baseline 3 is appropriate.

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?

The description clearly states it provides a 'comprehensive commander profile' combining multiple data sources, listing specific outputs (card details, combos, staples, synergy scores). This distinguishes it from sibling tools that focus on single aspects (e.g., edhrec_commander_staples, spellbook_find_combos).

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?

The description implies usage when a broad overview is needed, contrasting with single-source tools. However, it does not explicitly state when not to use it or provide alternatives, though the context of 'combining all available sources' offers implicit guidance.

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

complete_deckA
Read-onlyIdempotent

Identify gaps in a partial decklist and suggest cards to fill them.

Analyzes mana curve, card roles, and format-specific ratios, then suggests cards for underrepresented categories.

ParametersJSON Schema
NameRequiredDescriptionDefault
budgetNoMaximum price per suggested card in USD
formatYesFormat to build for (e.g. 'standard', 'modern', 'commander')
decklistYesPartial decklist — card names already chosen
commanderNoCommander name (required for Commander format)
response_formatNoOutput verbosity: 'detailed' (default) or 'concise'detailed

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint, and the description adds behavioral context such as analyzing mana curve, card roles, and format-specific ratios, which is informative beyond the annotations.

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

Conciseness5/5

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

The description is concise (two sentences) and front-loaded with the primary purpose in the first sentence, making it easy to understand quickly.

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

Completeness3/5

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

While the description covers the main functionality, it lacks detail on the output format (e.g., structure of suggestions) and doesn't mention constraints like budget or format-specific behaviors beyond what's in the schema. For a tool with 5 parameters and no output schema, more context would be helpful.

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% and each parameter has a description in the schema. The tool description does not add additional parameter semantics beyond what the schema already provides.

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?

The description clearly states the tool identifies gaps in a partial decklist and suggests cards to fill them, with analysis of mana curve, roles, and format ratios. This distinguishes it from siblings like deck_analysis or evaluate_upgrade.

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

Usage Guidelines3/5

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

The description implies usage for completing partial decklists but does not explicitly state when to use versus alternatives like suggest_cuts or evaluate_upgrade, nor does it mention when not to use.

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

cost_reduction_checkA
Read-onlyIdempotent

Apply a cost reducer to costs mechanically, and say what it does NOT reduce.

Rule 601.2f: a generic cost reduction reduces the generic component only. Coloured pips, {C}, hybrids and {X} survive it — two reducers do not take {U}{B} to {0}. Use this instead of doing the arithmetic in prose; the prose version has been wrong in both directions on the same card.

ParametersJSON Schema
NameRequiredDescriptionDefault
keywordNoWhen testing cards, the keyword whose ACTIVATION cost is the target (e.g. 'Ninjutsu') rather than the card's own mana cost
reducer_cardYesThe card doing the reducing — its oracle text sets the amount
target_cardsNoCard names to test instead of raw costs
target_costsNoRaw mana costs to test, e.g. ['{U}{B}', '{2}{U}{U}']
response_formatNoOutput verbosity: 'detailed' (default) or 'concise'detailed

TDQS

A4.4/5.0
Behavior5/5

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

The description reveals precise behavioral details beyond the readOnlyHint, openWorldHint, and idempotentHint annotations: it reduces only generic costs, leaves colored pips, hybrids, {C}, and {X} untouched, and clarifies that multiple reducers don't apply to colored portions. No contradiction with annotations.

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

Conciseness5/5

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

The description is two concise sentences plus a rule reference, all front-loaded with the core action. No filler—every sentence adds value, including the rationale for using the tool.

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?

Given the presence of annotations and full schema coverage, the description sufficiently covers the tool's purpose and handling of edge cases (e.g., hybrid mana, {X}). It lacks an explicit description of the output format, but the 'detailed' vs 'concise' parameter provides insight.

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?

With 100% schema coverage, the baseline is 3. The description does not significantly augment the schema's parameter descriptions; it only references the reducer_card's role. The schema's own descriptions are adequate for the parameters.

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?

The description clearly states the tool applies a cost reducer mechanically and reports what it does not reduce. This specific verb+resource (apply cost reducer) distinguishes it from sibling tools like rules_interaction or combat_calculator, which handle different aspects of Magic.

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?

The description explicitly advises using this tool instead of prose to avoid arithmetic errors, with a concrete example of past mistakes. It explains the rule's limitation (only reduces generic component). However, it does not explicitly state when to use an alternative, though the context is strong.

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

deck_analysisA
Read-onlyIdempotent

Full decklist health check — mana curve, colors, combos, bracket, budget, synergy.

Uses all available backends: Scryfall bulk data for rate-limit-free card resolution, Scryfall API as fallback, Spellbook for combos and bracket estimation, EDHREC for synergy scores. Degrades gracefully if optional backends are unavailable.

Pass declared_categories for any count the deck's owner asserted: it is measured against the list and reported as drift. A number stated once and never re-checked is how a deck ends up evaluated against a composition it no longer has.

ParametersJSON Schema
NameRequiredDescriptionDefault
decklistYesList of card names in the deck (99 cards for Commander)
commander_nameYesCommander the deck is built around
response_formatNoOutput verbosity: 'detailed' (default) or 'concise'detailed
declared_categoriesNoCounts the deck's owner stated, checked against the actual list. Each entry is {name, filter, expected} — e.g. {"name": "cheap creatures", "filter": "mv<=1 t:creature", "expected": 13}. Filter supports mv/cmc comparisons, t:, o:, name:, kw:. An entry may carry an explicit {name, cards, expected} instead of a filter.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations declare readOnlyHint, openWorldHint, and idempotentHint. The description adds transparency about backend usage (Scryfall bulk data, API fallback, Spellbook, EDHREC) and graceful degradation, which goes beyond the annotations. No contradictions.

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 description is three paragraphs: a clear summary, backend details, and parameter explanation. It is well-structured and front-loaded with the core purpose. Each sentence adds value, though it could be slightly more concise.

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 complex tool with no output schema, the description covers purpose, backend strategy, graceful degradation, and key parameter details. It adequately informs the agent about behavior, though output format is not explicitly described.

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%. The description adds significant meaning to 'declared_categories' by explaining its purpose, syntax, and drift measurement, complementing the schema description. Other parameters are standard with sufficient schema descriptions.

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?

The description starts with 'Full decklist health check — mana curve, colors, combos, bracket, budget, synergy,' clearly stating the tool's specific purpose and scope. It lists multiple analytical dimensions, distinguishing it from siblings like deck_validate or commander_overview which are more focused.

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

Usage Guidelines3/5

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

The description implies usage for a comprehensive deck analysis but does not explicitly state when to use this tool versus alternatives. It lacks direct comparisons or 'do not use if' guidance, though the description of backends and graceful degradation provides some context.

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

deck_audit_bundleA
Read-onlyIdempotent

Full mechanical audit battery in ONE call — validation, analysis, combos, bracket, commander rulings, v3 simulation.

Runs the six sections concurrently and returns one report where every section carries an explicit ok/error status and echoes the parameters it used. A failed section NEVER fails the whole bundle: it is reported as ok: false with its error, next to the sections that succeeded. Simulation is forced to v3 (commander_colors + tutor_aware=True). The rulings section ships the commander's official rulings and oracle text with the audit: confront each ruling with your own claims — fetching them is not reading them.

ParametersJSON Schema
NameRequiredDescriptionDefault
seedNoRNG seed for reproducible simulation (omit for random)
decklistYesBare card names, one entry per physical card (repeat basic lands), commander EXCLUDED — a 99-card Commander library
commanderYesCommander card name (bare, exact)
iterationsNoSimulation iterations (100-100000)
exclude_cardsNoCard names to force-classify as non-mana in the simulation
commander_colorsYesCommander color identity (e.g. 'mardu', 'WBR') — REQUIRED so the simulation color screen can never be skipped by omission
extra_mana_sourcesNoCard names to force-classify as mana rocks in the simulation

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint, openWorldHint, and idempotentHint. The description adds valuable behavioral context: concurrent execution of six sections, per-section ok/error status, simulation forced to v3, and the role of the rulings section. It does not contradict annotations (the idempotentHint with random seed is a minor nuance but not a contradiction). The added detail goes beyond what annotations provide.

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 description is longer than minimal but well-structured: a single-sentence summary followed by detailed behavioral notes. It front-loads the purpose and then elaborates. While slightly verbose, each sentence adds value, and there is no fluff. Efficiency could be slightly improved, but it remains effective.

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

Completeness5/5

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

Given the tool's complexity (7 parameters, no output schema, multiple sections), the description is remarkably complete. It explains the concurrent execution, error handling, simulation version, parameter usage, and even guides the agent on how to use the rulings output. No critical gaps are present.

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 adds clarifications for some parameters: decklist specifies 'commander EXCLUDED — a 99-card Commander library', and commander_colors is marked 'REQUIRED so the simulation color screen can never be skipped by omission'. These additions help the agent understand constraints beyond the schema descriptions.

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?

The description opens with 'Full mechanical audit battery in ONE call' and lists specific sections (validation, analysis, combos, bracket, commander rulings, v3 simulation), clearly stating the tool's comprehensive purpose. It distinguishes itself from sibling tools by bundling multiple functionalities that are available as separate tools (e.g., deck_validate, spellbook_find_combos, spellbook_estimate_bracket, commander_overview).

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?

The description implies this tool is for a complete audit instead of calling multiple tools individually, as indicated by 'in ONE call'. It provides guidance on error handling ('A failed section NEVER fails the whole bundle') but does not explicitly list alternative tools or scenarios where they should be used instead. Thus, while clear, it lacks explicit when-not-to-use guidance.

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

deck_mechanic_mapA
Read-onlyIdempotent

Map the mechanics a deck SHARES — keyword carriers, tribal counts, trigger reach.

Every other tool here is indexed by card. This one is indexed by mechanic, and answers what per-card data cannot:

  • how many cards carry the commander's keyword (a deck with 15 carriers is not a loop toward one card, it is 15 destinations);

  • what a cost reducer ACTUALLY reduces, counted rather than assumed (rule 601.2f: a generic reduction never touches coloured pips);

  • who really has the tribal type, including changelings — every creature type by rule 702.73a, and invisible to a type-line search;

  • which triggers multiply per attacking creature versus firing once per combat.

Run this before writing any description of how a deck works.

ParametersJSON Schema
NameRequiredDescriptionDefault
decklistYesCard names in the deck
commanderYesThe commander — its keywords seed the mechanic detection
response_formatNoOutput verbosity: 'detailed' (default) or 'concise'detailed

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already provide readOnlyHint, openWorldHint, idempotentHint. The description adds valuable context about indexing by mechanic and answers per-card data cannot, including references to rules (601.2f, 702.73a). No contradictions.

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 description is well-structured, front-loaded with core operation. Each sentence adds value, though it is somewhat lengthy. Could be slightly more concise but overall efficient.

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?

Given the complexity of the tool and absence of output schema, the description covers key aspects: keyword carriers, tribal counts, trigger reach, and explains why it's needed. Minor gap on output format.

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 description coverage is 100% so baseline is 3. The description adds context that the commander seeds mechanic detection and implies decklist is a list of card names. This enhances parameter understanding.

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?

The description clearly states the tool 'Map the mechanics a deck SHARES' with specific verbs and resources. It distinguishes from siblings by explicitly stating 'Every other tool here is indexed by card. This one is indexed by mechanic.'

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?

The description tells when to use this tool vs alternatives: 'Run this before writing any description of how a deck works.' It also lists specific scenarios like keyword carriers, cost reducer analysis, and trigger reach.

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

deck_validateA
Read-onlyIdempotent

Validate a decklist against a format's construction rules.

Checks legality, deck size, copy limits, color identity (Commander), singleton rules, and Pauper rarity. Returns VALID or INVALID with actionable error messages.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatYesFormat to validate against (e.g. 'commander', 'modern', 'standard', 'legacy')
decklistYesCard names, optionally prefixed with quantity (e.g. '4x Lightning Bolt' or 'Lightning Bolt')
commanderNoCommander card name (required for Commander format)
sideboardNoSideboard card names, same format as decklist
response_formatNoOutput verbosity: 'detailed' (default) or 'concise'detailed

TDQS

A4/5.0
Behavior4/5

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

Annotations already indicate read-only, open-world, and idempotent behavior. The description adds value by specifying the tool returns VALID or INVALID with actionable error messages, and lists the specific validation checks performed. This context goes beyond the annotations without contradicting them.

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

Conciseness5/5

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

The description is two sentences: first states the main purpose, second lists specific checks and return format. No fluff, front-loaded, and every sentence adds value.

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?

The description covers the core validation aspects and return format. However, it does not explain that the commander parameter is only required for Commander format (though the schema does), nor does it detail how response_format affects output. Given no output schema, the description could be more explicit about the response structure.

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 each parameter is already well-documented. The description adds mention of color identity and singleton rules, which imply the commander parameter is needed for Commander, but this is stated in the schema. No additional parameter semantics beyond what the schema provides.

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?

The description clearly states the tool validates a decklist against format construction rules, listing specific checks like legality, deck size, copy limits, color identity, singleton rules, and Pauper rarity. This distinctly separates it from sibling tools such as bulk_format_legality (which checks individual card legality), deck_analysis (which provides deeper analysis), and moxfield_decklist (which imports decks).

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

Usage Guidelines3/5

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

The description implies usage for validating decklist construction but does not explicitly state when to use this tool versus alternatives like bulk_format_legality or deck_analysis. No exclusion criteria or comparative guidance is provided, leaving the agent to infer usage from context.

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

draft_archetype_statsA
Read-onlyIdempotent

Get win rates by color pair/archetype for a draft set.

Note: start_date and end_date are required by the 17Lands API.

ParametersJSON Schema
NameRequiredDescriptionDefault
end_dateYesEnd date in YYYY-MM-DD format (required by 17Lands API)
set_codeYesThree-letter set code (e.g. 'LCI', 'MKM', 'OTJ', 'BLB')
event_typeNoDraft format — 'PremierDraft' (default) or 'TradDraft'PremierDraft
start_dateYesStart date in YYYY-MM-DD format (required by 17Lands API)

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already indicate readOnly, openWorld, and idempotent. Description adds that dates are required by the 17Lands API, which is a minor behavioral detail. Does not contradict annotations.

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

Conciseness5/5

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

Two sentences: first states purpose, second adds critical API constraint. No redundant words, front-loaded.

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

Completeness3/5

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

Adequate for a simple data fetch tool with good annotations. Lacks description of output format or win rate calculation, but given no output schema, this is a minor gap. Siblings often equally brief.

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 covers all parameters (100% coverage). Description adds value by explaining why start_date and end_date are required ('required by 17Lands API'), giving context beyond the schema's format description.

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?

Clear verb+resource: 'Get win rates by color pair/archetype for a draft set.' Distinguishes from siblings like draft_card_ratings or draft_pack_pick which focus on individual cards or picks, not aggregate stats.

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

Usage Guidelines3/5

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

Mentions required date parameters, giving context for when to call this tool. However, no explicit alternatives or when-to-not-use guidance is provided among the many draft-related sibling tools.

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

draft_card_ratingsA
Read-onlyIdempotent

Get win rate and draft performance data for cards in a set.

Key metrics: GIH WR (ever_drawn_win_rate), ALSA (avg_seen), OH WR (opening_hand_win_rate), IWD (drawn_improvement_win_rate).

Note: 17Lands data skews toward above-average players (~56% baseline WR). Cards with <500 games may not have reliable data.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax cards to return (default 50, 0 for all)
sort_byNoSort order: 'gih_wr' (default), 'alsa', 'iwd', 'name'gih_wr
set_codeYesThree-letter set code (e.g. 'LCI', 'MKM', 'OTJ', 'BLB')
event_typeNoDraft format — 'PremierDraft' (default) or 'TradDraft'PremierDraft
response_formatNoOutput verbosity: 'detailed' (default) or 'concise'detailed

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already indicate readOnly and idempotent. The description adds valuable behavioral context: the data skew from 17Lands (56% baseline) and reliability warning for <500 games. This enhances transparency beyond annotations.

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

Conciseness5/5

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

The description is extremely concise with three sentences. The first sentence states the core purpose, the second lists key metrics, and the third adds a crucial data quality note. No wasted words.

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?

Without an output schema, the description compensates by explaining returned metrics and data caveats. It covers the main aspects needed for understanding tool output, though pagination or error handling are not mentioned.

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 baseline is 3. The description explains the meaning of the returned metrics (GIH WR, ALSA, etc.) which are not in the schema, adding substantial value for interpreting results.

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?

The description clearly states the verb 'Get' and the resource 'win rate and draft performance data for cards in a set.' This is specific and distinguishes the tool from siblings like tournament results or combo browsing.

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?

While explicit when-not-to-use or alternatives are absent, the description provides context about metrics and data reliability, which guides appropriate use. It's clear enough to infer the tool is for draft card performance analysis, distinguishing it from general search or game data tools.

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

draft_log_reviewA
Read-onlyIdempotent

Review a completed draft — pick-by-pick GIH WR analysis and key decision points.

Identifies where you could have taken a higher-WR card, pivot points, and overall draft grade.

ParametersJSON Schema
NameRequiredDescriptionDefault
picksYesCards drafted in order (pack 1 pick 1 through pack 3 pick 14)
set_codeYesThree-letter set code (e.g. 'LCI', 'MKM')
final_deckNoFinal deck submitted — enables 'made the deck' analysis
response_formatNoOutput verbosity: 'detailed' (default) or 'concise'detailed

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint. The description adds specific behavioral details: it performs pick-by-pick analysis, identifies higher-WR card alternatives, pivot points, and assigns a grade. No contradictions with annotations.

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

Conciseness5/5

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

Two sentences, front-loaded with the core purpose. Every word adds value, no redundancy.

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?

Given no output schema, the description adequately explains the return contents: pick-by-pick analysis, decision points, better card identification, pivot points, and grade. It covers the main aspects well, though could be slightly more specific about the output format.

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% and each parameter has a description in the schema. The tool description does not add extra meaning beyond what the schema already provides, so baseline 3 is appropriate.

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?

The description clearly states it reviews a completed draft with pick-by-pick GIH WR analysis, identifies better picks, pivot points, and gives a draft grade. This distinguishes it from sibling tools like draft_pack_pick or draft_card_ratings.

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?

The description implies use after a draft is complete, providing analysis and decision points. It does not explicitly mention when not to use or alternative tools, but the context of siblings makes it clear this is for post-draft review.

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

draft_pack_pickA
Read-onlyIdempotent

Rank cards in a draft pack using 17Lands win rate data.

Provides GIH WR, ALSA, IWD stats, and color fit analysis based on current picks. Requires 17Lands to be enabled.

ParametersJSON Schema
NameRequiredDescriptionDefault
packYesList of card names currently in the draft pack
set_codeYesThree-letter set code for the draft format (e.g. 'LCI', 'MKM')
current_picksNoCards already drafted — enables color fit analysis when provided
response_formatNoOutput verbosity: 'detailed' (default) or 'concise'detailed

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, and idempotentHint. The description adds value by specifying the data source (17Lands), the derived stats, and the requirement for 17Lands to be enabled, providing functional context beyond the annotations.

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

Conciseness5/5

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

The description is three sentences that efficiently cover purpose, outputs, and prerequisites. No wasted words; each sentence earns its place.

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?

Given no output schema, the description lists the stats returned but does not mention ordering or error handling (e.g., if 17Lands is disabled). However, it is largely complete for an agent to understand inputs and outputs.

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 description coverage is 100%, so baseline is 3. The description adds meaning by explaining that current_picks enables color fit analysis and listing specific stats returned (GIH WR, ALSA, IWD), which are not in the schema. This enhances understanding beyond parameter names and types.

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?

The description clearly states the tool ranks cards in a draft pack using 17Lands win rate data, listing specific stats (GIH WR, ALSA, IWD) and color fit analysis. It distinguishes from sibling tools like draft_card_ratings by focusing on in-draft pack ranking with current picks.

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

Usage Guidelines3/5

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

The description mentions a prerequisite (17Lands enabled) but does not provide explicit guidance on when to use this tool versus alternatives like draft_card_ratings or draft_signal_read. The context implies it is for in-draft decisions, but lack of direct comparisons reduces clarity.

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

draft_signal_readA
Read-onlyIdempotent

Analyze draft picks and recommend a direction based on color signals.

Uses ALSA data to detect which colors are open (cards seen later than expected = open).

ParametersJSON Schema
NameRequiredDescriptionDefault
picksYesCards already drafted, in pick order
set_codeYesThree-letter set code (e.g. 'LCI', 'MKM')
current_packNoCurrent pack contents — if provided, cards are ranked with signal context
response_formatNoOutput verbosity: 'detailed' (default) or 'concise'detailed

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and openWorldHint. The description adds useful behavioral context by explaining the use of ALSA data and the definition of 'open' colors. This goes beyond the annotations, though it does not cover data freshness or rate limits.

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

Conciseness5/5

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

The description is extremely concise with two sentences. The first sentence front-loads the core purpose, and the second adds essential context. No redundant or unnecessary information.

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

Completeness3/5

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

Given the absence of an output schema and the tool's moderate complexity, the description falls short by not explaining the output format or providing example signals. It hints at 'recommend a direction' but leaves the agent guessing about the response structure.

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 description coverage is 100%, so the description does not need to compensate significantly. The schema already describes all parameters adequately. The tool description does not add new meaning beyond what is in the schema.

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 clearly states the tool analyzes draft picks and recommends a direction based on color signals using ALSA data. The verb 'analyze' and resource 'draft picks' are specific. However, it does not differentiate from similar sibling tools like draft_pack_pick, though the mention of ALSA and 'cards seen later than expected' provides some distinction.

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

Usage Guidelines3/5

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

The description implies the tool is used when you have draft picks and want color signal analysis, but it does not provide explicit when-to-use or when-not-to-use guidance, nor does it mention alternatives among the many draft-related sibling tools.

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

edhrec_card_synergyA
Read-onlyIdempotent

Get synergy data for a specific card with a specific commander.

Shows how synergistic the card is with the commander compared to its general popularity, plus how many decks include it.

ParametersJSON Schema
NameRequiredDescriptionDefault
card_nameYesCard to check synergy for (e.g. 'Spore Frog')
commander_nameYesCommander to check synergy against (e.g. 'Muldrotha, the Gravetide')

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, openWorldHint, and idempotentHint, covering safety and behavior. The description adds that the tool returns synergy comparisons and deck counts, but doesn't disclose potential error cases (e.g., invalid card/commander names) or data freshness. The description adds moderate contextual value beyond annotations.

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

Conciseness5/5

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

The description is two sentences long, front-loaded with the core purpose, and contains no superfluous information. Every sentence adds value, making it concise and efficient.

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

Completeness2/5

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

The tool has no output schema, so the description must explain the return value structure. It mentions synergy comparison and deck counts but is vague about the format (e.g., score, percentage, raw numbers). This leaves the agent guessing about the exact response shape, which is a significant gap for a tool without output schema.

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%, and both parameters are well-described in the schema. The description repeats the parameter roles without adding new semantic details (e.g., formatting requirements or constraints). Baseline 3 is appropriate since the schema already does the heavy lifting.

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?

The description clearly states the tool's purpose: getting synergy data between a specific card and commander. It explains what the data includes (synergy comparison to popularity and deck count), which is specific and distinct from sibling tools that focus on other aspects like staples or overviews.

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

Usage Guidelines3/5

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

The description implies usage when needing synergy between a card and commander, but provides no explicit guidance on when to use this over alternatives, nor does it mention when not to use it. Sibling tools like commander_overview or bulk_card_search cover different purposes, but no direct comparison is given.

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

edhrec_commander_staplesA
Read-onlyIdempotent

Get the most-played cards for a commander with synergy scores and inclusion rates.

Shows which cards are most commonly played with this commander and how synergistic they are (vs. generic popularity).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax cards per category (default 10, 0 for all)
categoryNoFilter by card type: 'creatures', 'enchantments', 'artifacts', 'instants', 'sorceries', 'lands', 'planeswalkers'
commander_nameYesFull commander name (e.g. 'Muldrotha, the Gravetide')
response_formatNoOutput verbosity: 'detailed' (default) or 'concise'detailed

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, openWorldHint, and idempotentHint. The description adds that the tool shows synergy scores vs. generic popularity, which provides useful behavioral context beyond the annotations. However, it does not describe return format or pagination, so a 3 is appropriate.

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

Conciseness5/5

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

Two sentences, front-loaded with the main purpose, no unnecessary words. The structure is efficient and easy to parse.

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?

Without an output schema, the description adequately explains the output includes cards, synergy scores, and inclusion rates. It covers the tool's behavior for a query tool with 4 parameters. Missing details about output structure (e.g., categories) are not critical.

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% with all parameters described. The description does not add parameter-specific meaning beyond the schema; it mentions commander_name implicitly but no additional details on limit, category, or response_format.

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?

The description explicitly states the tool gets the most-played cards for a commander with synergy scores and inclusion rates. It clearly distinguishes from siblings like edhrec_card_synergy by focusing on commander staples rather than synergy for a specific card.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives. The description implies usage for commander staples but does not mention when not to use it or compare to similar tools like edhrec_card_synergy or commander_overview.

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

evaluate_upgradeA
Read-onlyIdempotent

Assess whether a card is worth adding to a specific commander deck.

Returns card details, price, synergy score, and combos enabled for the caller to assess. Degrades gracefully if optional sources (EDHREC, Spellbook) are unavailable.

ParametersJSON Schema
NameRequiredDescriptionDefault
card_nameYesCard to evaluate for the deck (e.g. 'Spore Frog')
commander_nameYesCommander the deck is built around
response_formatNoOutput verbosity: 'detailed' (default) or 'concise'detailed

TDQS

A3.8/5.0
Behavior4/5

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

Description adds value beyond annotations by detailing return values (card details, price, synergy, combos) and noting graceful degradation if optional sources are unavailable. This informs the agent about potential missing data. However, it does not elaborate on what 'degrades gracefully' entails technically.

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

Conciseness5/5

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

Three sentences with no redundancy. Purpose, output, and edge case (graceful degradation) are front-loaded and efficiently communicated.

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?

Given the input schema is complete and no output schema exists, the description adequately explains the return values. It covers card details, price, synergy, combos, and graceful degradation. However, it omits details on how synergy is computed or how the evaluation is structured.

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 the baseline is 3. The description does not add additional parameter-specific details beyond what the schema already provides. For example, it does not explain the difference between 'detailed' and 'concise' response formats.

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 clearly states the tool assesses whether a card is worth adding to a specific commander deck, which is a distinct verb+resource pair. It differentiates from siblings like edhrec_card_synergy (which only provides synergy scores) by encompassing price, details, and combos. However, it could more explicitly contrast with similar evaluation tools.

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

Usage Guidelines3/5

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

The description implies usage when evaluating a card for a commander deck but does not explicitly state when to use this tool over alternatives like spellbook_find_combos or edhrec_commander_staples. No exclusions or contextual cues are provided.

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

format_entry_guideA
Read-onlyIdempotent

Get a beginner-oriented guide for entering a competitive format.

Shows archetypes sorted by budget accessibility, cross-archetype staples (buy once, play everywhere), and format rules summary.

ParametersJSON Schema
NameRequiredDescriptionDefault
budgetNoMax budget in USD — filters archetypes to this price ceiling
formatYesCompetitive format (e.g. 'Modern', 'Legacy', 'Pioneer', 'Pauper')
response_formatNoOutput verbosity: 'detailed' (default) or 'concise'detailed

TDQS

A4/5.0
Behavior3/5

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

Annotations already provide readOnlyHint, openWorldHint, and idempotentHint. The description adds that it returns a guide with specific content (archetypes, staples, rules summary), but does not describe return format or behavior beyond that. With annotations covering safety, a score of 3 is appropriate.

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

Conciseness5/5

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

The description consists of two concise sentences. It front-loades the primary purpose and immediately lists the key outputs. Every sentence adds value with no redundancy.

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?

Given the tool has 3 parameters and no output schema, the description adequately explains what the tool returns (archetypes sorted by budget, staples, rules summary) and mentions the verbosity option. It does not detail the exact format of output, but the openWorldHint accounts for variability. A small gap in completeness but overall sufficient.

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 baseline is 3. The description adds meaning by explaining that the budget parameter filters archetypes by budget accessibility and that response_format controls verbosity, tying the parameters to the tool's purpose. This adds value beyond the schema descriptions.

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?

The description clearly states it is a beginner-oriented guide for entering a competitive format, listing specific outputs (archetypes sorted by budget, cross-archetype staples, format rules summary). This distinguishes it from siblings like archetype_comparison or bulk_format_staples.

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

Usage Guidelines3/5

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

The description implies use for beginners entering a format, but does not explicitly state when to use this tool versus alternatives like archetype_comparison or goldfish_format_staples. It lacks explicit when-not-to-use guidance.

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

goldfish_archetype_listB
Read-onlyIdempotent

Get a sample decklist for an archetype in a format.

Returns deck metadata (author, event, result, date) and the full mainboard and sideboard card list.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatYesMTG format name (e.g. 'Modern', 'Legacy', 'Pioneer')
archetypeYesArchetype name (e.g. 'Boros Energy', 'Azorius Control')
response_formatNoOutput verbosity: 'detailed' (default) or 'concise'detailed

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, openWorldHint, and idempotentHint, which cover safety and side-effect behavior. The description adds that it returns deck metadata and card lists, which is consistent but does not reveal additional behavioral traits beyond annotations.

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

Conciseness5/5

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

Two concise sentences with no wasted words. The core action and return value are front-loaded, making it easy to scan.

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?

The description explains the output (deck metadata and card lists) despite no output schema. It covers the essential information for a sample decklist tool. Minor gap: not stating whether the sample is random or top-performing.

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% with full descriptions for all 3 parameters. The description mentions 'format' and 'archetype' implicitly but does not add meaning beyond the schema. Baseline 3 is appropriate.

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 clearly states the tool gets a sample decklist for an archetype in a format, specifying the return of deck metadata and full mainboard/sideboard. However, it does not distinguish itself from the sibling tool 'archetype_decklist' which likely serves a similar purpose.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like 'archetype_decklist', 'goldfish_metagame', or 'goldfish_format_staples'. There is no mention of prerequisites or exclusions.

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

goldfish_deck_priceA
Read-onlyIdempotent

Get the estimated paper price for an archetype deck.

Returns the total estimated cost of the deck based on current card prices from MTGGoldfish.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatYesMTG format name (e.g. 'Modern', 'Legacy', 'Pioneer')
archetypeYesArchetype name (e.g. 'Boros Energy', 'Azorius Control')
response_formatNoOutput verbosity: 'detailed' (default) or 'concise'detailed

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, and idempotentHint. The description adds that it returns an estimated total cost based on current card prices from MTGGoldfish, which is useful context. No contradiction with annotations.

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

Conciseness5/5

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

Two sentences, front-loaded with core purpose. No filler. Efficiently conveys the function and source.

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

Completeness3/5

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

Lacks explanation of the response format, especially given the response_format parameter. No output schema. While annotations are good, the description could detail what 'detailed' vs 'concise' returns.

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 description coverage is 100%, so baseline 3. The description does not add parameter-specific details beyond the schema's property descriptions. It could have explained the response_format parameter's effect.

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?

The description clearly states the tool's function: 'Get the estimated paper price for an archetype deck.' The verb 'Get' and resource 'estimated paper price for archetype deck' are specific. It is distinct from sibling tools like goldfish_metagame or scryfall_card_price.

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

Usage Guidelines3/5

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

No explicit guidance on when to use this tool versus alternatives. The description implies usage for deck price estimation but does not exclude individual card price queries or mention related tools.

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

goldfish_format_staplesA
Read-onlyIdempotent

Get the most-played cards in a format with deck inclusion percentages.

Shows which cards appear most frequently across all archetypes in the format, with average copies played per deck.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of staples to return (default 20)
formatYesMTG format name (e.g. 'Modern', 'Legacy', 'Pioneer')
response_formatNoOutput verbosity: 'detailed' (default) or 'concise'detailed

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, and idempotentHint. The description adds value by explaining the metrics (inclusion percentages, average copies), which tells the agent what kind of data to expect. No contradiction with annotations.

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

Conciseness5/5

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

Two concise sentences: the first states the primary action, the second adds detail. No unnecessary words, front-loaded with the main purpose.

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

Completeness5/5

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

Despite lacking an output schema, the description effectively communicates the return values (cards, inclusion percentages, average copies). For a read-only retrieval tool, this is sufficient to set expectations.

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%; all parameters have descriptions. The tool description does not add additional meaning beyond what the schema provides, so it meets the baseline of 3.

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?

The description clearly states the tool retrieves the most-played cards in a format with inclusion percentages and average copies. It uses a specific verb ('Get') and resource ('most-played cards'), and the metric details help distinguish it from sibling tools like bulk_format_staples.

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

Usage Guidelines3/5

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

The description does not explicitly state when to use this tool versus alternatives like goldfish_metagame or bulk_format_staples. The intended use is implied by the name and description, but no guidance on exclusions or prerequisites is provided.

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

goldfish_metagameA
Read-onlyIdempotent

Get the current metagame breakdown for a competitive format.

Shows top archetypes with meta share percentages, deck counts, and estimated paper prices.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatYesMTG format name (e.g. 'Modern', 'Legacy', 'Pioneer', 'Pauper')
response_formatNoOutput verbosity: 'detailed' (default) or 'concise'detailed

TDQS

A4/5.0
Behavior4/5

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

Annotations provide readOnlyHint, openWorldHint, and idempotentHint, so the description's main role is to add behavioral context. It does so by specifying the tool returns data about archetypes, percentages, deck counts, and prices, which is helpful. No contradictions with annotations.

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

Conciseness5/5

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

The description is only two sentences. The first sentence clearly states the core purpose, and the second lists the outputs. No extraneous words, perfectly concise and front-loaded.

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?

Given no output schema, the description explains what the tool returns (archetypes, percentages, deck counts, prices), which is sufficient for an agent to understand the output. It does not mention pagination or sorting, but overall it is adequately complete.

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% and the parameters (format, response_format) are well-documented in the schema with examples and enum values. The description does not add additional meaning beyond what is already in the schema.

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?

The description clearly states the verb (Get) and resource (current metagame breakdown for a competitive format). It lists specific outputs (top archetypes, meta share percentages, deck counts, estimated paper prices), which distinguishes it from sibling tools like goldfish_archetype_list or goldfish_format_staples.

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

Usage Guidelines3/5

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

The description indicates usage for 'a competitive format,' but does not explicitly state when to use this tool versus alternatives like metagame_snapshot or goldfish_archetype_list. No when-not-to-use or alternative suggestions are provided.

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

hand_probabilityA
Read-onlyIdempotent

Compute the exact hypergeometric probability of seeing a card category.

Answers questions like "what are the odds I've seen at least 1 of my 3 tutors by turn 4?" via the closed-form hypergeometric distribution.

Pass decklist + category_filter to have the count MEASURED rather than stated. A probability computed from a number nobody re-checked is the failure this guards against: a category declared at 13 that had quietly become 11 moved the headline statistic by 6.5 points, unnoticed across every revision.

ParametersJSON Schema
NameRequiredDescriptionDefault
copiesNoNumber of matching cards in the deck
decklistNoThe actual decklist. Supplied with category_filter, 'copies' is counted from it instead of trusted, and any disagreement is reported as drift.
deck_sizeNoTotal cards in the library (default 99 for Commander)
max_countNoMaximum matching cards to count as a hit (inclusive, default: no cap)
min_countNoMinimum matching cards to count as a hit (inclusive)
cards_seenNoCards drawn/seen so far (default 7 for an opening hand)
category_filterNoFilter defining the category to count in decklist, e.g. 'mv<=1 t:creature'. Supports mv/cmc comparisons, t:, o:, name:, kw:.

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, and idempotentHint, ensuring safety. The description adds behavioral context: it uses closed-form hypergeometric distribution, performs drift detection when decklist+category_filter is provided, and warns about the risk of uncounted copies. No contradiction with annotations.

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

Conciseness3/5

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

The description is front-loaded with purpose and includes an engaging example, but the cautionary story adds length without essential information. It could be more concise without losing clarity.

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

Completeness2/5

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

Despite covering parameters and usage, the description fails to specify the return format or structure. With no output schema, agents lack critical information about what the tool returns (e.g., probability value, drift details), making it incomplete.

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% with descriptions for all 7 parameters, so baseline is 3. The description adds value by explaining the interaction between decklist and category_filter for measured counts, and the drift concept, which is not captured in individual parameter descriptions.

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?

The description clearly states the tool computes exact hypergeometric probability for card categories, with a specific example. This distinguishes it from sibling tools like simulate_opening_hands, which use simulation, and other deck analysis tools.

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?

The description explains how to use the tool for probability queries and highlights the drift-checking feature when providing a decklist and category_filter. It does not explicitly exclude alternatives, but the context is sufficient for typical usage.

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

keyword_explainA
Read-onlyIdempotent

Explain an MTG keyword with rules text, examples, and interactions.

Returns the rules definition, reminder text, and up to 5 example cards from bulk data.

ParametersJSON Schema
NameRequiredDescriptionDefault
keywordYesMTG keyword to explain (e.g. 'trample', 'deathtouch')
response_formatNoOutput verbosity: 'detailed' (default) or 'concise'detailed

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, and idempotentHint, confirming safe read behavior. The description adds value by specifying output content: rules definition, reminder text, and up to 5 example cards. No contradictions with annotations.

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

Conciseness5/5

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

Two sentences with no fluff. First sentence states purpose, second adds specifics about output. Every sentence earns its place.

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?

Given the simplicity of the tool (2 params, no output schema, full annotations), the description covers purpose, output, and usage adequately. It could mention the format of keyword input, but that is already in the schema parameter description.

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%, with both parameters fully described in the schema. The description does not add additional semantic meaning beyond what the schema provides. Baseline 3 is appropriate.

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?

The description clearly states the tool explains an MTK keyword with rules text, examples, and interactions. It uses specific verb 'Explain' and resource 'MTG keyword', and distinguishes from sibling tools like scryfall_search_cards (card search) or rules_lookup (general rules).

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

Usage Guidelines3/5

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

The description implies usage for keyword explanation but does not explicitly state when to use this tool versus alternatives like rules_lookup or scryfall_card_details. No exclusion criteria or when-not-to-use guidance is provided.

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

metagame_snapshotA
Read-onlyIdempotent

Get the current metagame breakdown for a competitive format.

Shows top archetypes with meta share %, tier classification, and prices. Uses MTGGoldfish as primary source with Spicerack tournament data as fallback.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatYesCompetitive format (e.g. 'Modern', 'Legacy', 'Pioneer', 'Pauper')
response_formatNoOutput verbosity: 'detailed' (default) or 'concise'detailed

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, so safety profile is clear. Description adds value by disclosing data sources (MTGGoldfish primary, Spicerack fallback) and output content, enhancing behavioral transparency beyond annotations.

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

Conciseness5/5

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

Three efficient sentences, front-loaded with purpose, then output contents, then data sources. No redundant information.

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?

Given low parameter count, rich annotations, and read-only nature, the description is nearly complete. It covers purpose, output contents, and data sources. Missing minor details like pagination or response format behavior, but not required for this tool's simplicity.

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 description coverage is 100% (both 'format' and 'response_format' have descriptions). The description adds no additional parameter meaning beyond what the schema already provides, so baseline 3 is appropriate.

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?

Description clearly states verb 'Get' and resource 'metagame breakdown for a competitive format', listing content (archetypes, shares, tier, prices). It distinguishes the tool's scope from siblings by specifying data sources but does not explicitly differentiate from related tools like goldfish_metagame or archetype_comparison.

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

Usage Guidelines3/5

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

The description implies the tool is for obtaining a current metagame snapshot but provides no explicit guidance on when to use it versus alternatives. No exclusions or when-not-to-use context is given.

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

moxfield_deck_infoA
Read-onlyIdempotent

Get metadata for a Moxfield deck (name, format, author, dates).

Returns deck metadata without the full card list. Use decklist for the complete card list.

ParametersJSON Schema
NameRequiredDescriptionDefault
deck_idYesMoxfield deck ID or full URL (e.g. 'abc123' or 'https://www.moxfield.com/decks/abc123')

TDQS

A4.7/5.0
Behavior5/5

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

The description aligns with annotations (readOnlyHint, openWorldHint, idempotentHint) and adds context that only metadata is returned, not full card list. No contradictions.

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

Conciseness5/5

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

Two concise sentences, front-loaded with action and purpose. No unnecessary words.

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

Completeness5/5

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

Despite no output schema, the description lists example metadata fields (name, format, author, dates) and directs to sibling for full list. Complete for a simple metadata lookup tool.

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% with a detailed description for deck_id (supporting ID or full URL). The tool description adds no extra parameter info, so baseline of 3 is appropriate.

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?

The description clearly states it retrieves metadata for a Moxfield deck, listing specific fields (name, format, author, dates). It explicitly differentiates from the sibling tool moxfield_decklist by noting that it returns metadata without the full card list.

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?

The description provides explicit guidance: use this tool for metadata without the full card list, and use 'decklist' for the complete card list. This clearly distinguishes when to use each sibling tool.

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

moxfield_decklistA
Read-onlyIdempotent

Fetch a full decklist from Moxfield by deck ID or URL.

Returns the complete decklist organized by board (commanders, mainboard, sideboard, companions) with card names and quantities.

ParametersJSON Schema
NameRequiredDescriptionDefault
deck_idYesMoxfield deck ID or full URL (e.g. 'abc123' or 'https://www.moxfield.com/decks/abc123')

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already mark it as read-only, open-world, and idempotent. Description adds value by specifying the return structure (organized by board with names/quantities), which is beyond what annotations cover. No contradictions.

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

Conciseness5/5

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

Two sentences, front-loaded with purpose and immediate detail. No filler or repeated information.

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?

No output schema, but description explains return format (organized by board with names/quantities). Lacks error handling or rate limit info, but for a simple fetch tool it is sufficiently complete given the annotations.

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% and includes a detailed description of deck_id. The description rephrases 'by deck ID or URL' but adds no new semantic information beyond what the schema provides.

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?

Clearly states verb 'Fetch', resource 'full decklist from Moxfield', and method 'by deck ID or URL'. Distinguishes from siblings like moxfield_deck_info which likely returns deck metadata, not the full list.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool vs alternatives (e.g., moxfield_deck_info, moxfield_search_decks). The description only describes what it does, not when to choose it.

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

moxfield_search_decksA
Read-onlyIdempotent

Search public Moxfield decks by format, keyword, or sort order.

Returns a paginated list of deck summaries with name, format, author, colors, and card counts.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (1-indexed)
sortNoSort order: 'Updated', 'Created', or 'Views'Updated
queryNoOptional search text to filter decks by name or description
formatNoFormat filter (e.g. 'pauper', 'commander', 'modern'). Leave empty for all formats.
page_sizeNoResults per page (max 100)

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, and idempotentHint, clearly signaling safety and idempotency. The description adds value by specifying the output format (paginated deck summaries with fields like name, format, author) and that it searches public decks, complementing the annotations with concrete behavioral details.

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

Conciseness5/5

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

The description is three concise sentences with zero waste. It front-loads the purpose, then lists the output fields. Every sentence adds value, including the pagination mention and field enumeration.

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

Completeness5/5

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

Given the tool's moderate complexity (5 optional params, fully documented schema, and annotations), the description provides a complete mental model: what the tool searches, what it returns (paginated list with key fields), and the filtering dimensions. No output schema exists, but the description covers return values adequately for an agent to invoke the tool correctly.

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?

The input schema has 100% parameter description coverage, so the schema itself documents all 5 parameters. The description restates 'format, keyword, or sort order' but does not add new meaning beyond the schema. Baseline 3 is appropriate.

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?

The description clearly states the tool searches public Moxfield decks by format, keyword, or sort order, and specifies the returned fields (name, format, author, colors, card counts). It distinguishes from sibling Moxfield tools like moxfield_deck_info and moxfield_user_decks by focusing on search across all public decks.

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

Usage Guidelines3/5

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

The description implies use for finding decks on Moxfield but provides no explicit guidance on when to use this tool versus alternatives (e.g., moxfield_user_decks for a specific user). No when-not or exclusion criteria are given, leaving the agent to infer context from sibling tool names.

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

moxfield_user_decksA
Read-onlyIdempotent

List a user's public decks on Moxfield.

Verifies the user exists, then searches for their public decks. Optionally filter by format.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNoOptional format filter (e.g. 'commander', 'modern')
usernameYesMoxfield username to look up

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and openWorldHint. The description adds value by disclosing the verification step (checking user existence) and the optional format filtering, providing behavioral context beyond the annotations.

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

Conciseness5/5

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

The description is extremely concise, consisting of two short sentences. The purpose is front-loaded, and every word contributes meaning. No unnecessary text.

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

Completeness5/5

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

For a simple read-only tool with two well-documented parameters and no output schema, the description fully covers the tool's behavior: what it does, prerequisites (user existence), and optional filtering. No gaps remain.

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 the baseline is 3. The description adds minimal extra meaning beyond the schema's parameter descriptions: it reaffirms the optional format filter but does not provide new semantic details.

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?

The description clearly states the tool's purpose: listing a user's public decks on Moxfield. It uses a specific verb and resource, and distinguishes from sibling tools like moxfield_search_decks by being user-specific.

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

Usage Guidelines3/5

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

The description implies when to use (when you need decks for a specific user) but does not explicitly state when not to use or provide direct comparisons to alternatives like moxfield_search_decks. It mentions prerequisite verification (user exists) but lacks explicit exclusions.

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

pingA
Read-onlyIdempotent

Health check — returns 'pong'.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint, so the description only adds that it returns 'pong'. This is consistent and adds minor value beyond the annotations.

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

Conciseness5/5

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

The description is extremely concise, a single sentence that is front-loaded and every word contributes meaning.

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

Completeness5/5

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

For a zero-parameter health check tool with an output schema, the description is complete and tells the agent exactly what to expect.

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?

No parameters exist; schema coverage is 100% (empty). Baseline for 0 parameters is 4, and the description does not need to add parameter information.

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?

The description clearly states the tool performs a health check and returns 'pong', which is a specific verb+resource. It is distinct from all sibling tools which are MTG-related.

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?

The description implies use for checking service liveness, but does not explicitly exclude any scenarios or mention alternatives. However, given the tool's simplicity, this is sufficient.

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

precon_upgradeB
Read-onlyIdempotent

Analyze and upgrade a Commander precon — identify weakest cards, suggest replacements.

Pairs each upgrade with a specific cut, explaining the synergy improvement.

ParametersJSON Schema
NameRequiredDescriptionDefault
budgetNoMaximum price per upgrade card in USD
decklistYesFull precon decklist — card names
commanderYesCommander card name
num_upgradesNoNumber of upgrade suggestions
response_formatNoOutput verbosity: 'detailed' (default) or 'concise'detailed

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare the tool as read-only, idempotent, and open-world. The description adds that the tool pairs each upgrade with a specific cut and explains synergy improvement. This provides some behavioral context beyond annotations, but it does not disclose details about output format, limitations, or data sources.

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

Conciseness5/5

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

The description is two sentences long, with the first sentence stating the primary action and the second adding important detail about pairing cuts with synergy explanation. Every sentence is useful, and the information is front-loaded. No unnecessary words.

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

Completeness3/5

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

The description covers the core functionality but lacks details about edge cases, error conditions, or the nature of the output. Given the complexity of suggesting upgrades with cuts, the description is adequate but not thorough. The absence of an output schema is not compensated by additional description of return values.

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 all parameters are already described in the input schema. The description does not add any parameter-specific meaning beyond what is in the schema. It mentions 'identifying weakest cards' and 'suggesting replacements' but does not elaborate on how budget, num_upgrades, or response_format affect behavior.

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 clearly states it analyzes a Commander precon and suggests upgrades with specific cuts and synergy explanations. The verb 'upgrade' and resource 'precon' are specific. However, it does not differentiate from sibling tools like evaluate_upgrade, budget_upgrade, or suggest_cuts, which have similar purposes.

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

Usage Guidelines2/5

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

No explicit guidance is provided on when to use this tool vs alternatives. It does not state prerequisites (e.g., needing the decklist and commander) or indicate situations where other tools might be more appropriate. The description leaves the agent without clear usage boundaries.

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

price_comparisonA
Read-onlyIdempotent

Compare prices across multiple cards using Scryfall bulk data.

Returns a markdown table with USD, USD foil, and EUR prices sorted by USD descending.

ParametersJSON Schema
NameRequiredDescriptionDefault
cardsYes2-20 card names to compare prices
response_formatNoOutput verbosity: 'detailed' (default) or 'concise'detailed

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, and idempotentHint. The description adds behavioral details: it uses Scryfall bulk data, returns a markdown table with specific price types and sorting. No contradictions with annotations.

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

Conciseness5/5

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

The description is two sentences, front-loads the action and output, and contains no unnecessary words. Every sentence adds value.

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?

Given the schema and annotations, the description is adequate. It explains the output format (markdown table with currencies) which is missing from schema. No output schema exists, so the description compensates. Could mention caching or data freshness, but not critical.

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% (both parameters described). The description does not add additional meaning beyond the schema regarding parameters. The response_format parameter is mentioned indirectly via output format, but no new semantic insight.

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?

The description clearly states the tool compares prices across multiple cards using Scryfall bulk data, and specifies the output format (markdown table with USD, USD foil, EUR prices sorted by USD descending). This distinguishes it from sibling tools like scryfall_card_price (single card price) and card_comparison (likely stat comparison).

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?

The description indicates when to use (comparing prices across multiple cards) but does not explicitly mention when not to use or point to alternative tools. However, the purpose is clear and context is provided.

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

rotation_checkA
Read-onlyIdempotent

Check Standard rotation status and identify which cards are rotating.

Shows sets currently in Standard with rotation dates. If cards provided, identifies which are in rotating sets and suggests replacements.

ParametersJSON Schema
NameRequiredDescriptionDefault
cardsNoCard names to check for rotation — omit for general rotation info
response_formatNoOutput verbosity: 'detailed' (default) or 'concise'detailed

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare read-only, safe, idempotent. Description adds useful context: returns sets with rotation dates and suggests replacements for rotating cards.

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

Conciseness5/5

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

Two concise paragraphs, front-loaded with main purpose, no unnecessary words. Every sentence adds value.

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

Completeness5/5

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

Tool is simple with two optional parameters. Description fully explains both use cases (general info vs. specific cards) and expected outputs.

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 baseline 3. Description restates parameter purpose ('if cards provided') but adds no new semantic detail beyond what's in the schema.

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?

Description clearly states the tool checks Standard rotation status and identifies rotating cards, with specific outputs like sets with dates and card-specific suggestions. Distinct from siblings.

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?

Implies when to use: to get general rotation info or check specific cards. No explicit alternatives mentioned, but the focus on rotation is unique among siblings.

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

rules_interactionA
Read-onlyIdempotent

Explain how two mechanics or cards interact under MTG rules.

Returns relevant rules, step-by-step resolution, and common misconceptions.

ParametersJSON Schema
NameRequiredDescriptionDefault
mechanic_aYesFirst mechanic or card name
mechanic_bYesSecond mechanic or card name
response_formatNoOutput verbosity: 'detailed' (default) or 'concise'detailed

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint. The description adds return format details but not additional behavioral traits like rate limits or auth requirements. No contradiction.

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

Conciseness5/5

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

Two sentences front-load purpose and outputs with no wasted words. Every sentence is valuable and concise.

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?

Explains core functionality and return values given no output schema. However, missing mention of the response_format parameter and its effect on output, which is a minor gap.

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 parameters are fully documented. The description adds 'mechanics or cards' context but does not significantly extend schema meaning. 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?

The description clearly states the tool explains interactions between two mechanics or cards under MTG rules, listing outputs like relevant rules, step-by-step resolution, and common misconceptions. It is distinct from siblings like rules_lookup or keyword_explain.

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

Usage Guidelines3/5

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

The description implies usage for interaction questions but does not explicitly state when to use vs alternatives (e.g., not for single rule queries). No clear context or exclusions provided.

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

rules_lookupA
Read-onlyIdempotent

Look up MTG Comprehensive Rules by number or keyword search.

Returns matching rules with full text, parent context, and subrules.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum rules to return from a keyword search (default 100, max 200)
queryYesRule number (e.g. '704.5k') or keyword to search for
sectionNoNarrow search to a section (e.g. 'combat', 'stack', 'lands', 'state-based')
response_formatNoOutput verbosity: 'detailed' (default) or 'concise'detailed

TDQS

A4/5.0
Behavior4/5

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

Annotations already provide readOnlyHint, openWorldHint, idempotentHint, indicating safe, read-only, idempotent behavior. The description adds context about return structure (full text, parent context, subrules) beyond annotations.

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

Conciseness5/5

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

The description is two sentences with no wasted words. It front-loads the purpose and efficiently summarizes the return format.

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?

Without an output schema, the description hints at the return format (full text, parent context, subrules), which is helpful. Combined with complete schema coverage and annotations, it is fairly complete for a lookup tool.

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% and each parameter has a description. The description does not add new meaning beyond what the schema provides, so baseline 3 is appropriate.

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?

The description clearly states the tool looks up MTG Comprehensive Rules by number or keyword search, using a specific verb ('look up') and resource. This distinguishes it from sibling tools that search cards or decks.

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

Usage Guidelines3/5

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

The description explains two methods (number or keyword) and what is returned, but does not explicitly state when to use this tool over alternatives like scryfall_search_cards or keyword_explain. Usage context is implied rather than specified.

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

rules_scenarioA
Read-onlyIdempotent

Resolve a game scenario step-by-step using MTG rules.

Covers priority, stack resolution, state-based actions, and triggers with rule citations.

ParametersJSON Schema
NameRequiredDescriptionDefault
scenarioYesGame scenario to resolve (describe the board state and action)
response_formatNoOutput verbosity: 'detailed' (default) or 'concise'detailed

TDQS

A4/5.0
Behavior4/5

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

The annotations already provide readOnlyHint, openWorldHint, idempotentHint. The description adds behavioral context by mentioning coverage of priority, stack, state-based actions, triggers, and rule citations, which goes beyond what annotations offer.

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

Conciseness5/5

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

The description is concise (3 lines) and front-loaded with the purpose. Every sentence adds value, with no 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?

The tool has no output schema, but the description hints at output including rule citations. For a complex scenario resolver, it could specify output structure more, but overall it is adequate given the annotations and simplicity.

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?

With 100% schema coverage, the schema already documents both parameters. The description does not add new meaning beyond what's in the schema, so baseline score of 3 is appropriate.

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?

The description clearly states the verb 'resolve', the resource 'game scenario', and the scope 'step-by-step using MTG rules' with specific coverage of priority, stack, etc. It distinguishes from siblings like 'keyword_explain' or 'rules_interaction' by focusing on scenario resolution.

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

Usage Guidelines3/5

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

The description implies usage for resolving game scenarios but does not explicitly state when to use this tool versus alternatives like 'rules_interaction' or 'rules_lookup'. No exclusions or context for when not to use it.

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

scryfall_card_detailsA
Read-onlyIdempotent

Get full details for a Magic card by exact or fuzzy name.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesCard name — exact match by default (e.g. 'Muldrotha, the Gravetide')
fuzzyNoUse fuzzy matching for approximate names (e.g. 'muldrotha' finds 'Muldrotha, the Gravetide')
response_formatNoOutput verbosity: 'detailed' (default) or 'concise'detailed

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and openWorldHint=true, covering safety and behavior. The description adds 'full details' but does not disclose additional behaviors like error handling, rate limits, or result variability beyond what annotations imply.

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

Conciseness5/5

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

Single sentence front-loading the core action ('Get full details for a Magic card'). No unnecessary words, structure is optimal for quick scanning.

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

Completeness3/5

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

The tool has 3 parameters and no output schema. The description ignores what 'full details' includes, error behavior (e.g., card not found, multiple fuzzy matches), and output structure. Given the openWorldHint, more context would help the agent anticipate variability.

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 baseline is 3. The description adds no new semantic meaning beyond what the schema already provides (name, fuzzy, response_format). It merely summarizes the matching behavior.

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?

The description states a specific verb ('Get'), resource ('full details for a Magic card'), and method ('by exact or fuzzy name'), clearly distinguishing it from sibling tools like scryfall_search_cards which returns lists.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives (e.g., scryfall_search_cards for lists, scryfall_card_rulings for rulings, scryfall_card_price for prices). The description implies use when you have a card name but does not provide exclusions or context.

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

scryfall_card_priceA
Read-onlyIdempotent

Get current prices for a Magic card. Prices update once per day.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesCard name for price lookup (exact match)

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint. Description adds that prices update once per day, which is useful behavioral context beyond annotations. No contradictions.

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

Conciseness5/5

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

Two sentences with no filler. Front-loaded with core purpose, efficient and clear.

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?

Given simple input (1 param) and no output schema, description covers purpose and update frequency. Minor gap: does not describe output format, but not required if output schema exists.

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 has 100% coverage with description for 'name' as exact match. Description adds no additional semantic meaning beyond what schema provides, baseline 3 is appropriate.

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?

Description clearly states 'Get current prices for a Magic card' with a specific verb+resource. This distinguishes from sibling tools like scryfall_card_details or scryfall_card_rulings.

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

Usage Guidelines3/5

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

Implies usage for price lookups but lacks explicit guidance on when to use this tool vs alternatives (e.g., scryfall_card_details for more info). No when-not-to-use or alternatives mentioned.

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

scryfall_card_rulingsA
Read-onlyIdempotent

Get official rulings and clarifications for a Magic card.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesCard name to get official rulings for (exact match)

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, which the description does not contradict. The description adds the context of 'official' rulings, which is useful. No additional behavioral traits are disclosed beyond what annotations provide.

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

Conciseness5/5

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

A single sentence containing only essential information. No fluff or redundancy. Front-loaded with the action and object.

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

Completeness3/5

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

The description is minimal and adequate for a simple lookup tool with one parameter. However, since there is no output schema, the user might benefit from knowing the type of data returned (e.g., list of rulings). This is a minor gap.

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% and the parameter description in the schema ('Card name to get official rulings for (exact match)') is already precise. The tool description adds no extra meaning beyond the schema, meeting the baseline.

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?

The description clearly states the tool gets official rulings for a Magic card. It uses a specific verb ('Get') and resource ('official rulings and clarifications'), and among sibling tools, it is distinct from card search or details tools.

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?

The description implies the tool is for ruling lookups, but does not explicitly state when to use it over alternatives like scryfall_card_details or other search tools. The context is clear but lacks explicit exclusions.

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

scryfall_search_cardsA
Read-onlyIdempotent

Search for Magic cards using Scryfall syntax.

Examples: "f:commander id:sultai t:creature", "o:destroy t:instant cmc<=3" See https://scryfall.com/docs/syntax for full syntax reference.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number for paginated results, 1-indexed
limitNoMax cards to return (default 30, 0 for all)
queryYesScryfall search query (e.g. 'f:commander id:sultai t:creature cmc<=3'). See scryfall.com/docs/syntax
response_formatNoOutput verbosity: 'detailed' (default) or 'concise'detailed

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, and idempotentHint, so the description's burden is lower. It adds meaningful context about query syntax and pagination without contradicting annotations.

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

Conciseness5/5

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

The description is efficiently structured with a one-sentence purpose, followed by examples and a link. Every sentence is essential, making it concise and front-loaded.

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?

Given the tool's complexity (syntax-based search) and rich schema coverage, the description is adequate. It could briefly mention response format or pagination details, but the schema covers these. No output schema reduces the need for return value explanation.

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 baseline is 3. The description adds value by providing query examples and a syntax reference for the 'query' parameter, enhancing understanding beyond the schema's plain description.

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?

The description clearly states the tool searches for Magic cards using Scryfall syntax, with examples and a link to full syntax reference. It distinguishes from siblings like scryfall_card_details and bulk_card_search by emphasizing the specialized query language.

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

Usage Guidelines3/5

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

The description implies usage for advanced Scryfall syntax queries but does not explicitly contrast with sibling tools like bulk_card_search or moxfield_search_decks. No exclusions or when-not-to-use guidance is provided.

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

scryfall_set_infoA
Read-onlyIdempotent

Get metadata for a Magic set by its code.

ParametersJSON Schema
NameRequiredDescriptionDefault
set_codeYesSet code (e.g. 'dom', 'mh2', 'lci')

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, openWorldHint, and idempotentHint, so the description need not repeat these. The description adds no further behavioral details (e.g., no mention of rate limits, data freshness, or return structure). It is adequate but does not exceed the baseline set by annotations.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no unnecessary words. It efficiently conveys the tool's purpose and required input.

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 simple one-parameter tool with comprehensive annotations and no output schema, the description is almost sufficient. It explicitly states the action and input. However, it could hint at the output shape (e.g., 'returns set name, release date, etc.') to be fully complete, though not strictly required.

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 description coverage is 100% (the only parameter, set_code, has a clear description with examples). The tool description adds no additional parameter meaning beyond confirming that the set code is used. Baseline 3 is appropriate.

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?

The description uses a specific verb 'Get' and clearly identifies the resource 'metadata for a Magic set' and the method 'by its code'. It is distinct from sibling tools like scryfall_search_cards which search for cards, making this tool's purpose unambiguous.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives such as scryfall_search_cards or scryfall_card_details. The description does not mention prerequisites or exclusions, leaving the agent to infer usage context.

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

scryfall_whats_newA
Read-onlyIdempotent

Find recently printed or released Magic cards.

Searches Scryfall for cards released within the given number of days. Optionally filter by set or format legality.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoLook back this many days for recent cards (minimum 1)
limitNoMax cards to return (default 30, 0 for all)
formatNoFilter to cards legal in a format (e.g. 'standard', 'commander', 'modern')
set_codeNoFilter to a specific set code (e.g. 'mh3', 'lci')
response_formatNoOutput verbosity: 'detailed' (default) or 'concise'detailed

TDQS

A4/5.0
Behavior3/5

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

Annotations declare readOnlyHint, openWorldHint, idempotentHint, which already cover safety and idempotency. The description adds no additional behavioral details beyond the basic operation (searches Scryfall for recent cards). No contradictions.

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

Conciseness5/5

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

Extremely concise: two sentences front-loaded with purpose. No fluff or redundant information. Every sentence adds value.

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?

With full schema coverage and annotations, the description is sufficient for a straightforward read-only tool. It doesn't explain the output format, but given the tool's name and sibling context (e.g., scryfall_search_cards), the return values are predictable. A more complete description could mention output structure, but not strictly necessary.

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% with all parameters described. The description mentions 'optional filter by set or format legality' which corresponds to format and set_code, but adds no meaning beyond the schema. Baseline 3 as per guidelines.

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?

Description clearly states the tool's purpose: finding recently printed/released Magic cards. It specifies the resource (Scryfall), the action (search within days), and optional filters. This distinguishes it from siblings like scryfall_search_cards which don't focus on recency.

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?

The description implies when to use (for recent cards) but does not explicitly contrast with alternatives or state when not to use it. The sibling tools include many search tools, but no exclusionary guidance is provided.

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

sealed_pool_buildA
Read-onlyIdempotent

Build 1-3 decks from a sealed pool using card quality and color pair analysis.

Evaluates each 2-color pair, selects best cards, and suggests land splits. Uses 17Lands data when available for card quality scoring.

ParametersJSON Schema
NameRequiredDescriptionDefault
poolYesCard names in the sealed pool (typically 84-90)
set_codeYesThree-letter set code (e.g. 'LCI', 'MKM')
response_formatNoOutput verbosity: 'detailed' (default) or 'concise'detailed

TDQS

A4.4/5.0
Behavior5/5

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

Annotations already declare read-only, idempotent, and open-world hints. The description adds valuable behavioral context: it uses 17Lands data when available, evaluates color pairs, and suggests land splits. No contradictions with annotations.

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

Conciseness5/5

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

The description is two sentences long, front-loaded with the main action, and contains no superfluous words. It efficiently conveys the core functionality and method.

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 complex tool with no output schema, the description gives a good high-level overview of inputs and expected outputs (1-3 decks, land splits). It could benefit from mentioning the return format or structure, but it is sufficient for an agent to infer behavior.

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?

Input schema has 100% coverage with clear descriptions for all three parameters. The tool description does not add additional parameter-level detail beyond what the schema provides. Baseline of 3 is appropriate.

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?

The description begins with a clear verb-resource pair: 'Build 1-3 decks from a sealed pool'. It specifies the method (card quality and color pair analysis) and distinguishes itself from sibling tools like draft-related ones by focusing on sealed pool construction.

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?

The description clearly states when to use the tool (for building decks from a sealed pool) and what it does (evaluates color pairs, selects cards, suggests lands). It does not explicitly mention when not to use it or alternatives, but its unique purpose makes misuse unlikely.

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

set_overviewA
Read-onlyIdempotent

Draft format overview — top commons/uncommons and trap rares.

Uses 17Lands card ratings to provide a data-driven format breakdown. Requires 17Lands to be enabled.

ParametersJSON Schema
NameRequiredDescriptionDefault
set_codeYesThree-letter set code for the draft format (e.g. 'LCI', 'MKM')
event_typeNoDraft format — 'PremierDraft' (default) or 'TradDraft'PremierDraft
response_formatNoOutput verbosity: 'detailed' (default) or 'concise'detailed

TDQS

A4.2/5.0
Behavior4/5

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

Annotations declare readOnly, openWorld, and idempotent hints. The description adds that it uses 17Lands card ratings and requires 17Lands to be enabled, which is critical behavioral context beyond the annotations.

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

Conciseness5/5

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

Three concise sentences with the first sentence immediately stating the tool's purpose. No filler or redundant information.

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 simple tool with a small number of well-documented parameters and clear annotations, the description is sufficiently complete. It covers the tool's purpose, data source, and prerequisite. The absence of an output schema does not necessitate detailed return value documentation.

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?

The input schema has 100% description coverage for all three parameters. The description does not add parameter-specific information, so the baseline score of 3 is appropriate.

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?

The description clearly states the tool provides a draft format overview focusing on top commons/uncommons and trap rares using 17Lands ratings. It distinguishes itself from sibling tools like draft_card_ratings by specifying the scope of the overview.

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?

The description mentions the prerequisite 'Requires 17Lands to be enabled,' giving clear context for when it can be used. However, it does not explicitly compare against alternative tools or state when not to use it.

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

sideboard_guideA
Read-onlyIdempotent

Get a specific sideboard in/out plan for a named matchup.

Given a full 75 and a matchup archetype, produces specific boarding instructions with reasoning.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatYesCompetitive format (e.g. 'Modern', 'Pauper')
matchupYesMatchup archetype name (e.g. 'Mono-Red Aggro') — fuzzy matched
decklistYesMain deck card names (e.g. ['4 Lightning Bolt', '4 Goblin Guide'])
sideboardYesSideboard card names (e.g. ['2 Hydroblast', '3 Tormod\'s Crypt'])
response_formatNoOutput verbosity: 'detailed' (default) or 'concise'detailed

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare the tool as read-only, open-world, and idempotent. The description adds useful context: it requires a full 75-card deck and a matchup archetype, and outputs reasoning. This goes beyond what annotations provide.

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

Conciseness5/5

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

The description is extremely concise (two sentences), front-loaded with the action, and contains no filler. Every sentence adds value.

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?

Given the tool's complexity, the description adequately explains inputs and outputs. It is missing details about the return format or examples, but the schema covers parameters. Overall sufficient.

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 description coverage is 100%, so the parameters are well-documented in the schema. The description reinforces the overall purpose but does not add new semantic details for individual parameters.

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 clearly states the tool's purpose: obtaining a sideboard plan for a named matchup. It uses specific verbs ('Get') and resources ('sideboard in/out plan'), but does not explicitly differentiate from sibling tools like 'suggest_sideboard' or 'sideboard_matrix'.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites, suitable scenarios, or when not to use it.

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

sideboard_matrixA
Read-onlyIdempotent

Generate a sideboard matrix for a deck across common matchups.

Matrix shows which sideboard cards come IN/OUT/FLEX for each matchup. Auto-detects top matchups from metagame data or uses provided matchup list.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatYesCompetitive format (e.g. 'Modern', 'Pauper')
decklistYesMain deck card names (e.g. ['4 Lightning Bolt', '4 Goblin Guide'])
matchupsNoMatchup names to include — omit to auto-detect from metagame data
sideboardYesSideboard card names (e.g. ['2 Hydroblast', '3 Tormod\'s Crypt'])
response_formatNoOutput verbosity: 'detailed' (default) or 'concise'detailed

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already indicate read-only, open-world, and idempotent behavior. The description adds specific behavioral details: it shows IN/OUT/FLEX assignments and auto-detects matchups, which complements the annotations without contradiction.

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

Conciseness5/5

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

Two sentences cover purpose, output, and key behavior (auto-detection vs manual list). No wasted words; information is front-loaded.

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?

The description adequately explains the tool's function and parameters, though it does not describe the output format in detail (only mentions matrix with IN/OUT/FLEX). Given the absence of an output schema, slightly more detail could be beneficial, but it remains sufficient.

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% with descriptions for all parameters. The description adds minimal extra meaning beyond the schema, meeting the baseline for complete schema coverage.

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?

The description clearly states the tool generates a sideboard matrix showing IN/OUT/FLEX cards per matchup, which distinguishes it from sibling tools like suggest_sideboard (which suggests sideboard cards) and sideboard_guide (a general guide).

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?

The description explains when to provide matchups vs auto-detecting from metagame data, giving good context. However, it does not explicitly compare to alternatives or state when not to use this tool.

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

simulate_opening_handsA
Read-onlyIdempotent

Monte Carlo simulation of opening hands, mulligans, and early mana curve.

Simulates Commander-free-mulligan opening hands and a greedy 5-turn goldfish to estimate keep rates, kept-hand land distribution, and spendable mana per turn. Exclude the commander from decklist: it simulates a 99-card Commander library.

ParametersJSON Schema
NameRequiredDescriptionDefault
seedNoRNG seed for reproducible results (omit for random)
decklistYesCard entries, excluding the commander (a 99-card Commander library)
keep_ruleNoKeep rule: 'playability' (3-turn goldfish of the hand: development, flood, gas) or 'lands_v1' (legacy effective-land range only)playability
max_landsNoMaximum effective land cards in a kept hand (flood check, MDFC count 0.5)
min_landsNoKeep threshold: minimum turn-3 developed mana (playability rule) or minimum effective lands (lands_v1 rule)
iterationsNoNumber of simulated games (100-100000)
tutor_awareNoDetect tutors, count cheap ones as gas, and report per-tutor targets plus the odds of an opening hand holding a tutor
exclude_cardsNoCard names to force-classify as non-mana
free_mulliganNoCommander free mulligan: the first mulligan redraws 7 cards without bottoming
commander_colorsNoCommander color identity (e.g. 'mardu', 'WBR', 'boros') to enable the playability-rule color screen: hands that cannot source every color are mulliganed
count_mdfc_landsNoCount modal-double-faced land backs as half a land
gas_cmc_thresholdNoA hand needs at least one non-source card at or below this mana value to be kept (playability rule)
extra_mana_sourcesNoCard names to force-classify as mana rocks

TDQS

A4/5.0
Behavior4/5

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

Annotations (readOnlyHint, openWorldHint, idempotentHint) indicate safe, read-only behavior. The description adds behavioral context: it simulates, uses Monte Carlo, performs a 5-turn goldfish, and excludes the commander. This goes beyond annotations, though it does not mention performance considerations or the probabilistic nature.

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

Conciseness5/5

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

Two short paragraphs front-loading the core purpose and key details. Every sentence adds value; there is no fluff or repetition.

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?

The description covers the simulation's purpose, inputs, and high-level outputs (keep rates, land distribution, spendable mana). Despite 13 parameters and no output schema, it gives a reasonable understanding of what to expect, though the exact return format is not specified.

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 all parameters have descriptions. The description's main param-related addition is restating 'exclude the commander', which is already in the schema. No extra meaning beyond what the schema provides.

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?

The description clearly states it is a Monte Carlo simulation of opening hands, mulligans, and early mana curve. It specifies what it simulates (Commander free mulligan, keep rates, land distribution, spendable mana) and that the commander is excluded. This is specific and distinguishes it from siblings like hand_probability.

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

Usage Guidelines3/5

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

The description explains what the tool does but does not explicitly state when to use it versus alternatives like 'hand_probability' or 'deck_analysis'. It implies Commander usage but lacks explicit guidance on when not to use it.

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

spellbook_combo_detailsA
Read-onlyIdempotent

Get detailed steps for a specific combo by its Spellbook ID.

Use an ID from find_combos results (e.g. "1414-2730-5131-5256").

ParametersJSON Schema
NameRequiredDescriptionDefault
combo_idYesSpellbook combo ID from find_combos results (e.g. '1414-2730-5131-5256')

TDQS

A4.1/5.0
Behavior3/5

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

The annotations already declare readOnlyHint and idempotentHint, covering the main behavioral traits. The description adds minor context about the ID format but does not reveal any additional behavioral details beyond what annotations provide.

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

Conciseness5/5

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

The description is two concise sentences with no redundant information. It is well-structured and front-loaded with the core purpose.

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

Completeness5/5

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

For a simple tool with one parameter and no output schema, the description provides all necessary context: what the tool does, how to get the required ID, and an example. No additional information is needed.

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?

The input schema has 100% description coverage for combo_id, explaining its purpose and format. The description reinforces the source of the ID (find_combos results), adding slight value above the schema.

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?

The description clearly states the action ('Get detailed steps') and the resource ('specific combo by its Spellbook ID'). It distinguishes itself from sibling tools like spellbook_find_combos by focusing on retrieving details for a single combo, not searching or listing.

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 explicitly instructs to use an ID from find_combos results, providing clear context for when to use this tool. However, it does not mention when not to use it or suggest alternatives, which is acceptable for a simple lookup tool.

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

spellbook_estimate_bracketA
Read-onlyIdempotent

Estimate the Commander bracket (power level) for a decklist.

Provide commander name(s) and a list of card names in the main deck. Returns bracket tag and any bracket-relevant findings.

ParametersJSON Schema
NameRequiredDescriptionDefault
decklistYesList of card names in the main deck
commandersYesCommander card name(s) (e.g. ['Muldrotha, the Gravetide'])

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint. Description adds minimal behavioral context (returns bracket tag and findings). No details on computation cost, rate limits, or what constitutes 'bracket-relevant findings'. Adequate given annotations, but does not exceed them.

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

Conciseness5/5

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

Three sentences: purpose, input format, output format. Every sentence adds value. Front-loaded and free of fluff.

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 two-parameter tool with full schema descriptions and annotations, the description sufficiently covers inputs and outputs. Lacks explanation of bracket tag range or examples, but overall complete for typical use.

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 covers both parameters with descriptions (100% coverage). Description restates the input format without adding new meaning or constraints. Baseline score of 3 is appropriate since schema does the heavy lifting.

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?

Clearly states the tool estimates Commander bracket (power level) for a decklist, specifying inputs (commander names + decklist) and outputs (bracket tag + findings). Differentiated from sibling tools like spellbook_find_combos by focusing on power level estimation.

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

Usage Guidelines3/5

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

Implied usage: if you need bracket estimate, use this tool. However, no explicit guidance on when not to use it or alternatives (e.g., for combo detection or deck retrieval). Lacks context to disambiguate from similar bracket-related tools.

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

spellbook_find_combosA
Read-onlyIdempotent

Search for known combos involving a specific card.

Optionally filter by color identity (e.g. "sultai", "BUG", "wubrg"). Returns up to limit combos with cards involved and results produced.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of combos to return
card_nameYesCard name to search for combos (e.g. 'Muldrotha, the Gravetide')
color_identityNoFilter by color identity — name ('sultai'), letters ('BUG'), or 'wubrg'

TDQS

A4.4/5.0
Behavior4/5

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

Annotations (readOnlyHint, idempotentHint, openWorldHint) already indicate safe, idempotent, open-world behavior. Description adds context about filtering by color identity and returning up to limit combos with cards and results, which is informative beyond annotations.

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

Conciseness5/5

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

Description is three sentences, front-loaded with the main purpose, followed by optional filter and output summary. No unnecessary words, well-structured.

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?

Given no output schema and 3 parameters, the description covers the essential: search purpose, optional filter, and output nature. It could be more specific about the return format (e.g., list of combos), but it is adequate for the complexity.

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% with parameter descriptions. Description adds value by providing examples for color_identity (e.g., 'sultai', 'BUG', 'wubrg') and clarifying the output structure (cards involved and results produced).

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?

Description clearly states the tool searches for known combos involving a specific card, with optional color identity filter and output description. Differentiates from sibling tools like spellbook_combo_details and spellbook_find_decklist_combos by focusing on combos involving a card.

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?

Description clearly indicates when to use this tool (search for combos by card), but does not explicitly exclude alternatives or mention when not to use it. Sibling tool names suggest specific use cases, but the description could be more explicit about differentiation.

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

spellbook_find_decklist_combosA
Read-onlyIdempotent

Find combos present in (or nearly present in) a Commander decklist.

Provide commander name(s) and a list of card names in the main deck. Returns combos that are fully included and those that are almost included.

ParametersJSON Schema
NameRequiredDescriptionDefault
decklistYesList of card names in the main deck
commandersYesCommander card name(s) (e.g. ['Muldrotha, the Gravetide'])

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnly, openWorld, idempotent. Description adds behavioral context about returning fully/almost included combos, but does not define 'almost included' or disclose limitations. No contradiction.

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

Conciseness5/5

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

Three concise sentences, front-loaded with clear purpose. No redundant or filler text.

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?

With good annotations and schema, description covers purpose and input/output shape. Missing definition of 'almost included' and response format, but still fairly complete for the tool's simplicity.

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% and already describes parameters. Description reinforces parameter meaning (commander names, decklist) but does not add new semantic details beyond schema.

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?

Clearly states the verb 'Find' and the resource 'combos in a Commander decklist'. Distinguishes from siblings like spellbook_find_combos (likely general combo search) by specifying decklist input.

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?

Describes required inputs (commanders, decklist) and output types (fully/almost included). Does not explicitly compare to alternatives or state when not to use, but context is clear for decklist scenario.

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

spicerack_format_decklistsA
Read-onlyIdempotent

Find top-performing decklists across recent tournaments for a format.

Collects top-4 finishers with Moxfield decklists from recent events. Use moxfield_decklist to fetch the full card list for a deck.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of decklists to return (default 10)
formatYesMTG format name (e.g. 'Modern', 'Legacy', 'Pauper')
num_daysNoNumber of days to look back (default 14)
response_formatNoOutput verbosity: 'detailed' (default) or 'concise'detailed

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, and idempotentHint. The description adds useful context: it collects only top-4 finishers from recent events, sourced from Moxfield decklists. This goes beyond annotations but could mention data freshness or zero-result scenarios.

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

Conciseness5/5

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

Two concise sentences front-loaded with purpose, followed by a useful cross-reference. No wasted words.

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

Completeness3/5

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

No output schema, and the description does not specify the output structure (e.g., deck name, record, URL). While annotations hint at open world results, the agent lacks details on what to expect from the response.

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% with clear parameter descriptions. The description does not add new semantic value beyond the schema; it only implicitly references 'recent tournaments' which maps to num_days. Baseline 3 is appropriate.

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?

The description clearly states the tool finds top-performing decklists from recent tournaments for a format, specifying it collects top-4 finishers with Moxfield decklists. This distinguishes it from siblings like moxfield_search_decks or spicerack_recent_tournaments.

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

Usage Guidelines3/5

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

The description advises using moxfield_decklist for full card lists, providing an alternative for a specific need. However, it does not explicitly compare with other siblings like moxfield_search_decks or spicerack_tournament_results, nor does it state when to avoid this tool.

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

spicerack_recent_tournamentsA
Read-onlyIdempotent

List recent tournaments for a format with dates, player counts, and IDs.

Use the tournament ID from the results with tournament_results to see full standings and decklists.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of tournaments to return (default 10)
formatYesMTG format name (e.g. 'Modern', 'Legacy', 'Pauper')
num_daysNoNumber of days to look back (default 14)
response_formatNoOutput verbosity: 'detailed' (default) or 'concise'detailed

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, openWorldHint, and idempotentHint. Description adds no behavioral traits beyond listing data fields. It does not elaborate on open world behavior or potential variability, so the description adds modest value.

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

Conciseness5/5

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

Two concise sentences. First sentence states purpose and output. Second sentence provides a follow-up usage hint. No unnecessary words. Front-loaded with key information.

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?

Given no output schema, the description adequately explains what the tool returns (dates, player counts, IDs) and how to use the IDs. It could mention ordering (e.g., by date descending) but is otherwise complete for a listing tool.

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?

Input schema has 100% description coverage, so baseline is 3. The description reiterates the 'format' parameter context but does not add new meaning to parameters. Mentioning output fields like dates and IDs indirectly aids understanding but doesn't enhance parameter semantics.

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?

Description clearly states verb 'List' and resource 'recent tournaments for a format'. It specifies the data returned (dates, player counts, IDs). It also distinguishes from sibling tools by mentioning tournament_results for full details.

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?

Provides explicit guidance on when to use this tool: to get tournament IDs for use with tournament_results. However, it does not explicitly state when not to use it or mention other alternatives like spicerack_format_decklists.

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

spicerack_tournament_resultsA
Read-onlyIdempotent

Get full standings and decklists for a specific tournament.

Look up a tournament by its Spicerack ID. Use recent_tournaments first to find tournament IDs.

ParametersJSON Schema
NameRequiredDescriptionDefault
top_nNoNumber of top standings to show (default 8)
formatNoFormat to search within (optional, helps narrow results)
num_daysNoNumber of days to look back (default 30)
tournament_idYesSpicerack tournament ID (e.g. '3135276')
response_formatNoOutput verbosity: 'detailed' (default) or 'concise'detailed

TDQS

A4.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, openWorldHint, and idempotentHint. The description confirms a safe read operation ('Get full standings and decklists') but adds no additional behavioral traits beyond what annotations convey. With annotations covering the safety profile, a score of 3 is appropriate.

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

Conciseness5/5

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

The description is extremely concise: two sentences with zero redundancy. The first sentence states purpose, the second provides prerequisite workflow. Every word earns its place.

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?

Given the tool's moderate complexity (5 params, no output schema), the description covers the core action and prerequisite. It mentions both standings and decklists. However, without an output schema, details about return structure or pagination could be helpful, but the description is sufficient for a read-only lookup tool.

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 description coverage is 100% for all 5 parameters, each already described in the schema. The description adds no extra detail beyond referencing the 'tournament_id' parameter. Baseline 3 is correct since the schema carries the burden.

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?

The description clearly states the tool's action: 'Get full standings and decklists for a specific tournament.' It specifies the resource (tournament by its Spicerack ID) and distinguishes itself from siblings like 'spicerack_recent_tournaments' by explicitly directing users to use that tool first to find the ID.

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?

The description provides explicit usage guidance: 'Look up a tournament by its Spicerack ID. Use 'recent_tournaments' first to find tournament IDs.' This tells the agent the prerequisite step and when to use this tool, effectively communicating the intended workflow.

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

suggest_cutsA
Read-onlyIdempotent

Identify the weakest cards to cut from a commander decklist.

Scores cards by synergy, inclusion rate, and combo membership. Degrades gracefully if EDHREC or Spellbook backends fail (uses whatever data is available).

ParametersJSON Schema
NameRequiredDescriptionDefault
decklistYesList of card names in the deck
num_cutsNoNumber of cut candidates to suggest
commander_nameYesCommander the deck is built around
response_formatNoOutput verbosity: 'detailed' (default) or 'concise'detailed

TDQS

A4.4/5.0
Behavior5/5

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

Annotations already provide readOnlyHint, openWorldHint, idempotentHint. The description adds valuable behavioral context: scoring logic and graceful degradation on backend failure. No contradiction with annotations.

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

Conciseness5/5

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

Three concise sentences: core purpose, scoring criteria, and graceful degradation. No unnecessary words.

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?

The description lacks explicit mention of the output format (e.g., list of card names). Since there is no output schema, providing this would improve completeness. Otherwise, the tool is well-described.

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 baseline is 3. The description does not add parameter-specific details beyond the schema descriptions, which are already clear.

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?

The description clearly states the tool identifies the weakest cards to cut from a commander decklist, with specific criteria (synergy, inclusion rate, combo membership). It distinguishes itself from siblings like deck_analysis by focusing on cuts.

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?

The description explains when to use the tool (to identify cuts) and mentions graceful degradation, but does not explicitly mention when not to use it or suggest alternative tools for different analyses.

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

suggest_mana_baseA
Read-onlyIdempotent

Suggest a mana base for a decklist based on color pip distribution.

Analyzes color requirements, recommends land count, and suggests format-legal dual lands. Handles hybrid and phyrexian mana.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatYesFormat for land legality checking (e.g. 'commander', 'modern')
decklistYesNon-land card names in the deck
total_landsNoOverride total land count (default: auto-calculated from avg CMC)
response_formatNoOutput verbosity: 'detailed' (default) or 'concise'detailed

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and openWorldHint=true. The description adds valuable behavioral details: it handles hybrid and phyrexian mana, analyzes color requirements, and recommends land count. This complements the annotations well.

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

Conciseness5/5

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

The description is concise (3 sentences) and front-loaded with the core purpose. Each sentence adds value: purpose, functionality, and edge case handling. No wasted words.

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?

Given no output schema, the description explains the main functionality and handles special cases (hybrid/phyrexian). It could be more explicit about the output format, but it covers the essential aspects for a suggestion tool.

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 baseline is 3. The description does not add significant parameter-specific meaning beyond the schema. It mentions analyzing color requirements and land count but does not elaborate on response_format or total_lands override behavior.

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?

The description clearly states the specific verb and resource: 'Suggest a mana base for a decklist'. It differentiates from sibling tools by focusing on mana base construction, a unique function among the listed tools.

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

Usage Guidelines3/5

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

The description does not explicitly state when to use this tool versus alternatives, nor does it mention any prerequisites or exclusions. The usage is implied but not guided.

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

suggest_sideboardB
Read-onlyIdempotent

Suggest a 15-card sideboard for a competitive deck.

Analyzes the main deck's weaknesses and recommends sideboard cards with per-card reasoning. Works with heuristic analysis alone; enhanced with MTGGoldfish frequency data when available.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatYesCompetitive format (e.g. 'Modern', 'Pauper')
decklistYesMain deck card names (e.g. ['4 Lightning Bolt', '4 Goblin Guide'])
meta_contextNoOptional context about local metagame (e.g. 'heavy on Mono-Red and Affinity')
response_formatNoOutput verbosity: 'detailed' (default) or 'concise'detailed

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already indicate read-only, open-world, and idempotent behavior. The description adds that it uses heuristic analysis and MTGGoldfish data when available, but does not elaborate on limitations or data freshness.

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

Conciseness5/5

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

Two concise sentences that efficiently state the tool's purpose and method. No unnecessary words or repetition.

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?

The description adequately covers the tool's functionality for a 4-parameter, read-only tool with no output schema. It mentions output includes per-card reasoning, but could be more specific about the exact response format.

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 parameters are described in the schema. The description does not add new parameter-level details beyond what is already in the schema, earning a baseline score of 3.

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 clearly states the tool suggests a 15-card sideboard for competitive decks, analyzing weaknesses with per-card reasoning. While distinct from siblings like sideboard_guide, it does not explicitly differentiate itself.

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

Usage Guidelines2/5

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

No criteria for when to use this tool versus alternatives such as sideboard_guide or sideboard_matrix are provided. There is no guidance on exclusions or prerequisites.

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

tribal_staplesA
Read-onlyIdempotent

Best cards for a creature type — lords, synergy pieces, and top members.

Groups results by: lords/anthems, tribal synergy, best members, tribal support.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of results
tribeYesCreature type (e.g. 'Goblin', 'Merfolk', 'Samurai')
formatNoFormat legality filter (e.g. 'commander', 'modern')
color_identityNoColor identity filter (e.g. 'sultai', 'WR')
response_formatNoOutput verbosity: 'detailed' (default) or 'concise'detailed

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint. The description adds behavioral detail by specifying how results are grouped (lords/anthems, tribal synergy, best members, tribal support), which is beyond the annotations. No contradictions.

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

Conciseness5/5

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

Two concise sentences: first states the core purpose, second describes the grouping format. No fluff, efficient, and informative.

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

Completeness3/5

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

Given no output schema, the description should clarify what kind of data is returned (e.g., card names, counts, or ratings). It only says 'Best cards' and groups, but lacks explicit return structure. Adequate for a simple list but not fully complete.

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 parameters are well-documented. The description does not add parameter-specific details (e.g., format or color_identity usage) beyond what the schema provides. It mentions creature type and grouping, which are implicit from the tool's purpose, so minimal additional value.

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?

Description clearly states it provides the best cards for a creature type with specific groupings (lords, synergy, members, support). The verb 'Best cards' and resource 'creature type' are clear. It implicitly distinguishes from sibling tools like 'edhrec_commander_staples' by focusing on creature types, but does not explicitly differentiate.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like 'color_identity_staples' or 'bulk_format_staples'. The description implies use for tribal staples, but no explicit when/when-not or alternative references.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 74 tool updatesv3.0.0
    • First observedarchetype_comparison
    • First observedarchetype_decklist
    • First observedbudget_upgrade
    • First observedbuild_around
    • First observedbulk_ban_list
    • First observedbulk_card_in_formats
    • First observedbulk_card_lookup
    • First observedbulk_card_search
    • First observedbulk_format_legality
    • First observedbulk_format_search
    • First observedbulk_format_staples
    • First observedbulk_random_card
    • First observedbulk_similar_cards
    • First observedcard_comparison
    • First observedcolor_identity_staples
    • First observedcombat_calculator
    • First observedcommander_comparison
    • First observedcommander_overview
    • First observedcomplete_deck
    • First observedcost_reduction_check
    • First observeddeck_analysis
    • First observeddeck_audit_bundle
    • First observeddeck_mechanic_map
    • First observeddeck_validate
    • First observeddraft_archetype_stats
    • First observeddraft_card_ratings
    • First observeddraft_log_review
    • First observeddraft_pack_pick
    • First observeddraft_signal_read
    • First observededhrec_card_synergy
    • First observededhrec_commander_staples
    • First observedevaluate_upgrade
    • First observedformat_entry_guide
    • First observedgoldfish_archetype_list
    • First observedgoldfish_deck_price
    • First observedgoldfish_format_staples
    • First observedgoldfish_metagame
    • First observedhand_probability
    • First observedkeyword_explain
    • First observedmetagame_snapshot
    • First observedmoxfield_deck_info
    • First observedmoxfield_decklist
    • First observedmoxfield_search_decks
    • First observedmoxfield_user_decks
    • First observedping
    • First observedprecon_upgrade
    • First observedprice_comparison
    • First observedrotation_check
    • First observedrules_interaction
    • First observedrules_lookup
    • First observedrules_scenario
    • First observedscryfall_card_details
    • First observedscryfall_card_price
    • First observedscryfall_card_rulings
    • First observedscryfall_search_cards
    • First observedscryfall_set_info
    • First observedscryfall_whats_new
    • First observedsealed_pool_build
    • First observedset_overview
    • First observedsideboard_guide
    • First observedsideboard_matrix
    • First observedsimulate_opening_hands
    • First observedspellbook_combo_details
    • First observedspellbook_estimate_bracket
    • First observedspellbook_find_combos
    • First observedspellbook_find_decklist_combos
    • First observedspicerack_format_decklists
    • First observedspicerack_recent_tournaments
    • First observedspicerack_tournament_results
    • First observedsuggest_cuts
    • First observedsuggest_mana_base
    • First observedsuggest_sideboard
    • First observedtheme_search
    • First observedtribal_staples

TDQS

A3.5/5.0
Disambiguation3/5

Many tools have clear source prefixes, but there is functional overlap (e.g., scryfall_search_cards vs bulk_card_search, multiple deck analysis tools). Agents may struggle to choose the right tool for a given task.

Naming Consistency4/5

Most tools follow a consistent snake_case pattern with source prefixes (e.g., scryfall_, bulk_, moxfield_). A few outliers like 'ping' break the pattern, but overall naming is predictable.

Tool Count2/5

74 tools is far above typical MCP servers. Even for a complex domain like MTG, this volume is excessive and likely burdensome for agents to navigate. Splitting into specialized sub-servers would be more coherent.

Completeness4/5

Covers a wide range of MTG needs: card lookup, deck analysis, draft, competitive meta, rules, combos, etc. Some minor gaps (e.g., no trading or event creation) but overall thorough for an informational server.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables Magic: The Gathering players to manage decks and access card information through Claude, supporting gameplay actions like drawing cards and mulligans while providing Scryfall API integration for card lookups.
    15
    -
  • A
    license
    A
    quality
    D
    maintenance
    Provides AI assistants with 69 tools, 19 prompts, and 21 resources for deep access to Magic: The Gathering, including card data, combos, draft analytics, Commander metagame, competitive constructed, sideboard strategy, deck building, and rules engine, working with any MCP client.
    56
    17
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    A comprehensive Model Context Protocol server that provides AI assistants with rich Magic: The Gathering information, including card data, comprehensive rules, EDHREC recommendations, combo interactions, and intelligent Commander deck generation.
    1
    MIT

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/Cladios34/mtg-mcp-server'

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