Skip to main content
Glama
wizkid17

mythic-index-mcp

by wizkid17

Mythic Index MCP Server

Magic: The Gathering card prices, deck analysis, and investment intelligence — powered by live data from 5 vendors covering 99K+ cards.

Connect this MCP server to Claude Desktop, Claude Code, or any MCP-compatible AI assistant to get real-time MTG card pricing, deck cost analysis, sealed product EV calculations, and investment insights.

What You Can Do

Ask about prices:

"What's the current price of Sheoldred, the Apocalypse?"

Build decks on a budget:

"Find me black creatures with deathtouch under $5 legal in Modern"

Price a full decklist:

"Price this deck: 4 Lightning Bolt, 4 Goblin Guide, 20 Mountain — check Modern legality"

Evaluate sealed products:

"Is the Modern Horizons 3 Collector Booster Box worth buying at $280?"

Track investments:

"What cards spiked this week? Show me Reserved List cards under $50"

Understand strategy:

"What role does Counterspell play? Find me blue counter spells for Commander under $3"

Related MCP server: scryfall-mcp-server

Quick Start

Prerequisites

  • Python 3.10+ (the MCP SDK requires 3.10 or newer)

  • Claude Desktop, Claude Code, or any MCP-compatible client

Install

The published package runs with no manual install via uv:

uvx mythic-index-mcp

Or install from source:

git clone https://github.com/wizkid17/mythic-index-mcp.git
cd mythic-index-mcp
pip install -r requirements.txt

Configure Claude Desktop

Edit your Claude Desktop config file:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "mythic-index": {
      "command": "uvx",
      "args": ["mythic-index-mcp"]
    }
  }
}

Restart Claude Desktop. The Mythic Index tools will appear in the tools menu (hammer icon).

Configure Claude Code

claude mcp add mythic-index uvx mythic-index-mcp

Use Your Own API Key (optional)

The server includes a public read-only key with rate limiting. For higher rate limits, get your own key and set it as an environment variable:

{
  "mcpServers": {
    "mythic-index": {
      "command": "uvx",
      "args": ["mythic-index-mcp"],
      "env": {
        "MYTHIC_INDEX_API_KEY": "mi_your_key_here"
      }
    }
  }
}

Available Tools (21)

Search & Discovery

Tool

Description

search_cards

Fuzzy name search — handles typos and partial names

find_cards

Advanced filters: oracle text, color, type, CMC, price, format, Reserved List

browse_cards

Browse by price, name, or newest sets

list_sets

List and search all 971 MTG sets

Pricing

Tool

Description

get_card_price

Current prices across TCGPlayer, Card Kingdom, CardMarket, CardSphere, CardHoarder

get_price_history

Price trends over 7/30/90/365 days

Sets & Sealed Products

Tool

Description

get_set_stats

Rarity distribution, avg price, total value, chase card, top 10

search_sealed

Find booster boxes, packs, bundles, commander decks

get_sealed_ev

Full EV breakdown with tier analysis (bulk → jackpot)

Investment

Tool

Description

top_movers

Biggest price gains and drops over any period

find_arbitrage

Cross-vendor profit opportunities (buy retail, sell buylist)

reserved_list_tracker

Browse Reserved List cards — never reprinted

Deck Analysis

Tool

Description

price_deck

Full decklist pricing: total cost, vendor comparison, mana curve, legality, budget swaps

suggest_budget_alternatives

Find cheaper cards with similar type and CMC

analyze_mana_curve

Curve visualization, land count evaluation, color source requirements

Strategy

Tool

Description

check_legality

Format legality: Standard, Modern, Pioneer, Commander, Legacy, Vintage, Pauper

evaluate_card

Strategic roles, keyword abilities, archetype fit

find_cards_by_role

Search by role: removal, ramp, card draw, burn, counter, tutor, and 7 more

Rules

Tool

Description

search_rules

Full-text search the official Comprehensive Rules + glossary

get_rule

Get a rule by number with its sub-rules (e.g. 509.1)

System

Tool

Description

get_api_status

Platform health and sync status

Data Coverage

Metric

Value

Cards

99,000+

Sets

971

Price sources

TCGPlayer, Card Kingdom, CardMarket, CardSphere, CardHoarder

Price listings

534,000+

Sealed products

3,900+ with EV calculations

Cards with format legality

99,287

Reserved List cards

1,096

Update frequency

Daily at 3 AM Lima (UTC-5)

Using as a Claude Project

For the best experience, create a Claude Project and add the contents of skill/system_prompt.md as the Project Instructions. This gives Claude deep MTG domain knowledge on top of the live data tools.

Self-Hosting

If you run your own Mythic Index API instance:

export MYTHIC_INDEX_API_URL=http://localhost:8000
export MYTHIC_INDEX_API_KEY=your-key
python3 mcp_server.py

For remote SSE hosting:

python3 mcp_server.py --sse --port 8080

API

This MCP server connects to the Mythic Index API. Documentation: api.mythic-index.com/mtg-api/docs

License

MIT — see LICENSE

Available Tools

21 tools
analyze_mana_curveB
Read-only

Analyze mana curve, lands, color sources. Args: decklist: Same format as price_deck.

ParametersJSON Schema
NameRequiredDescriptionDefault
decklistYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

Annotations provide readOnlyHint and openWorldHint, but the description adds no additional behavioral traits such as output format, performance, or effects. The description only restates the purpose without expanding on 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?

Extremely concise with only two sentences, front-loading the purpose and then the parameter reference. 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?

For a simple analysis tool with one parameter and an output schema, the description is somewhat complete but lacks examples or clarification of the input format beyond referencing price_deck. The output is not described, but since an output schema exists, this is acceptable. Still, more context about the analysis results would improve completeness.

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 single parameter 'decklist' is described as having 'Same format as price_deck', which provides useful cross-reference despite lacking explicit format details. Schema description coverage is 0%, so this reference partially compensates, but the format remains unclear without knowledge of price_deck.

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 mana curve, lands, and color sources using a verb+resource structure. It distinguishes from siblings like price_deck which do pricing, making the purpose clear although it could be more specific about the analysis scope.

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 only usage hint is that the decklist format matches price_deck, but no mention of prerequisites, timing, or 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.

browse_cardsA
Read-only

Browse MTG cards by price, name, or newest. Args: sort: price/name/recent. order: desc/asc. rarity/set_code: filters. limit: 1-50.

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNoprice
limitNo
orderNodesc
rarityNo
set_codeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=true and openWorldHint=true. The description adds no extra behavioral context (e.g., pagination, rate limits). It aligns with annotations but does not enhance beyond 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: first states purpose, second lists arguments in a compact format. No wasted words, but the arg list could be better formatted for readability.

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?

Covers main functionality and key parameters, but missing details about filter values (e.g., rarity options) and pagination (beyond limit). Output schema exists, so return values are not required. Adequate for a simple browse tool but has gaps.

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 0%, but the description provides some parameter details: sort values (price/name/recent), order values (desc/asc), limit range (1-50). However, it omits semantics for rarity and set_code filters, and default values are not mentioned.

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 verb 'Browse' and resource 'MTG cards', with specific capabilities (by price, name, newest). It differentiates from sibling tools like search_cards and find_cards which likely have more advanced filtering.

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?

Description lists sorting and filtering options but does not explicitly state when to use this tool versus alternatives like search_cards or find_cards. The context is clear but lacks exclusions or comparative guidance.

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

check_legalityD
Read-only

Format legality check. Args: card_id: From search results.

ParametersJSON Schema
NameRequiredDescriptionDefault
card_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

D1.9/5.0
Behavior2/5

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

Annotations indicate readOnlyHint and openWorldHint, but the description adds no behavioral detail. Does not explain what checking legality entails (e.g., which formats, restrictions).

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 very short (two sentences), which is concise but at the expense of clarity. It could use more detail without being verbose.

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?

Though an output schema may exist, the description fails to clarify input requirements or output interpretation. The tool's core functionality remains ambiguous.

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

Parameters2/5

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

With 0% schema description coverage, the description must compensate. It only says 'card_id: From search results', adding minimal context about the parameter's origin but no type or validation details.

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

Purpose2/5

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

The description says 'Format legality check' but does not specify what format or what legality means. It lacks specificity to distinguish it from sibling tools like 'search_cards' or 'evaluate_card'.

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

Usage Guidelines1/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 vs others. Only hints that card_id comes from search results, but no context about prerequisites or alternatives.

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

evaluate_cardA
Read-only

Strategic analysis: roles, keywords, archetypes. Args: card_id: From search.

ParametersJSON Schema
NameRequiredDescriptionDefault
card_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already provide readOnlyHint and openWorldHint, indicating safe read and potential unexpected results. The description adds context about output (roles, keywords, archetypes) but does not disclose further behavioral traits like 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: two sentences front-load purpose and parameter context. Every word serves a purpose 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?

The tool has an output schema, so return values are covered externally. The description appropriately covers purpose and parameter source. It is complete for a simple read-only analysis tool, though could mention that it is for a single card ID.

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 0%, so the description must compensate. It explains that 'card_id' comes from search, adding source context beyond the schema's type and requirement. This is helpful for agents to know how to obtain the ID.

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 states 'Strategic analysis: roles, keywords, archetypes', clearly indicating the tool analyzes a card's strategic aspects. While it distinguishes from siblings like 'find_cards_by_role' by focusing on evaluation of a single card, it could be more specific with a verb like 'Analyze'.

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 by mentioning 'card_id: From search', suggesting the tool is used after searching for a card. However, it lacks explicit when-to-use or when-not-to-use guidance, nor does it mention alternatives among the 20 sibling tools.

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

find_arbitrageB
Read-only

Cross-vendor profit opportunities. Args: min_spread: Min profit USD. limit: 1-50.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
min_spreadNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=true and openWorldHint=true. The description adds value by specifying 'limit: 1-50' as a behavioral constraint beyond the schema, and clarifies min_spread as minimum profit in USD. However, it does not detail other traits like rate limits 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.

Conciseness4/5

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

The description is very short at two sentences, front-loading the purpose. Every word earns its place, though additional context could be included without losing conciseness.

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 low complexity (2 optional params) and presence of an output schema, the description adequately covers the tool's purpose and parameter basics. However, it lacks context on when to use it and any prerequisites, making it minimally viable.

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 0% schema description coverage, the description provides basic semantics for both parameters: min_spread is 'Min profit USD' and limit is implied to be between 1 and 50. This is helpful but could be more explicit (e.g., limit is max results).

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 states 'Cross-vendor profit opportunities,' which clearly indicates the tool's function of finding arbitrage across vendors. However, it does not differentiate from sibling tools like 'find_cards' or 'get_card_price', though the unique purpose is implied by the name.

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?

There is no guidance on when to use this tool versus alternatives. No when-to-use or when-not-to-use instructions are provided, 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.

find_cardsA
Read-only

Find MTG cards by ability text, type, color, CMC, price, format. For deck building queries like 'black creatures with deathtouch under $5'. Args: oracle_text: Rules text search. type_line: Card type filter. colors: Comma-separated W,U,B,R,G. color_identity: Exact identity for Commander. cmc_min/cmc_max: Mana value range. rarity: common/uncommon/rare/mythic. keyword: Ability keyword. reserved_list: Only RL cards. price_min/price_max: USD range. format: Legality filter. sort: price/name/recent. limit: 1-50.

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNoprice
limitNo
colorsNo
formatNo
rarityNo
cmc_maxNo
cmc_minNo
keywordNo
price_maxNo
price_minNo
type_lineNo
oracle_textNo
reserved_listNo
color_identityNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint and openWorldHint. Description lists parameters but does not add behavioral details like response format, pagination, or search behavior (e.g., AND/OR logic). 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.

Conciseness4/5

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

Front-loaded with purpose and usage example, then parameter list. Efficient use of space with no fluff. Could be slightly more structured (e.g., grouping), but functional.

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 tool complexity (14 parameters, output schema exists), description covers core filtering capabilities. Missing detail on query conjunction (AND vs OR) and pagination beyond limit, but adequate for a search tool.

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?

With 0% schema description coverage, the description provides brief but meaningful explanations for all 14 parameters (e.g., 'oracle_text: Rules text search.'). Adds value beyond schema titles and defaults (e.g., 'limit: 1-50').

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?

Clear verb+resource ('Find MTG cards') and enumerates key filtering dimensions. Usage example reinforces purpose. However, does not explicitly differentiate from siblings like 'search_cards' or 'browse_cards'.

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 via example ('For deck building queries'), but no guidance on when not to use or comparison to alternatives. Given many sibling tools, explicit when-to-use would help.

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

find_cards_by_roleA
Read-only

Find cards by role: removal, card_draw, ramp, counter, protection, evasion, token_generation, lifegain, discard, tutor, graveyard, board_wipe, burn. Args: role: Strategic role. colors: W,U,B,R,G. format: modern/commander. max_price: Budget. limit: 1-30.

ParametersJSON Schema
NameRequiredDescriptionDefault
roleYes
limitNo
colorsNo
formatNo
max_priceNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, indicating a safe, non-deterministic read operation. The description adds no additional behavioral details beyond what is implied by 'Find cards', which is consistent. It does not contradict and offers minimal extra context.

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 efficient sentences: one listing the specific roles, one listing the arguments. Every phrase earns its place, no redundancy. Critical 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 covers the essential aspects of role-based card search given its complexity (5 params, output schema exists). It lists roles and parameters clearly. One minor gap: it doesn't explain default behavior (e.g., empty colors means all), but overall it is sufficient for an AI agent to correctly invoke the tool.

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?

The input schema has 0% coverage (no descriptions), so the description carries the full burden. It provides meaningful explanations for all five parameters: role (lists specific roles), colors (abbreviations), format (modern/commander), max_price (budget), and limit (range). This adds value beyond the bare 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 finds cards by strategic role, listing 13 specific roles. This differentiates it from siblings like 'find_cards' or 'search_cards' which likely have broader or different search criteria.

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 clear context for when to use: when you need cards fulfilling a specific strategic role, with options for colors, format, max price, and limit. It does not explicitly say when not to use or name alternatives, but the role-focused purpose is evident.

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

get_api_statusA
Read-only

Platform health and sync status.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so the description carries a lighter burden. The description adds 'Platform health and sync status' but does not elaborate on behavioral traits like caching, rate limits, or what 'sync status' means beyond the annotations. It provides minimal additional behavioral context.

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 a single sentence with no unnecessary words, making it concise. However, it could be slightly longer to add more value without being verbose. It is well-structured and 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?

Given no parameters and the existence of an output schema, the description could still benefit from elaborating on what 'health' and 'sync status' include. It is adequate but leaves some ambiguity about the exact nature of the information returned.

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?

There are zero parameters, and the input schema is fully covered (100%). The description does not add parameter-specific information, but none is needed. Baseline 4 is appropriate as the schema already handles everything.

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 tool name 'get_api_status' combined with the description 'Platform health and sync status' clearly and specifically states the resource (platform health and sync status) and the action (getting). It is well-differentiated from sibling tools, which are all card-related or other distinct functions.

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?

No explicit guidelines are given for when to use versus alternatives, but the tool's domain is distinctly different from all sibling tools (cards, prices, rules, etc.), making its usage context obvious. The lack of explicit guidance does not cause confusion due to the uniqueness of the tool.

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

get_card_priceA
Read-only

Current prices across all vendors. Args: card_id: From search results.

ParametersJSON Schema
NameRequiredDescriptionDefault
card_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=true and openWorldHint=true. Description adds 'current prices across all vendors' but no further behavioral details (e.g., price frequency, vendor list).

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 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?

Output schema exists, so return values need not be described. However, missing details like vendors included or data freshness. Adequate for a simple lookup.

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

Parameters2/5

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

Schema coverage is 0%; description says 'From search results' for card_id, adding minimal context. Does not explain what card_id represents or its 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?

Clearly states 'get' verb and 'card price' resource with scope 'across all vendors'. Distinguishes from siblings like get_price_history (historical) and top_movers (movers).

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 use after obtaining card_id from search results, but no explicit when-not or alternatives among siblings. Limited guidance.

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

get_price_historyA
Read-only

Price trends over time. Args: card_id: Card ID. days: 7/30/90/365. finish: nonfoil/foil.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNo
finishNononfoil
card_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, indicating a safe read operation with potentially varying responses. The description clarifies the parameters (card_id, days, finish) but 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?

Extremely concise: one sentence stating purpose followed by a brief parameter list. Every sentence contributes value without 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?

The description adequately covers the essential information for a 3-parameter tool. An output schema exists (indicated by context), so return format details are not needed in the description.

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

Parameters5/5

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

Schema coverage is 0%, so the description fully compensates by explaining each parameter: 'card_id: Card ID', 'days: 7/30/90/365', 'finish: nonfoil/foil'. This adds meaningful semantic context beyond the schema's type and default values.

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 'Price trends over time' which is a specific verb-resource combination. It distinguishes from the sibling 'get_card_price' which likely provides current price rather than historical trends.

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 historical price data but does not explicitly state when to use this tool versus alternatives like 'get_card_price'. No exclusion criteria are provided.

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

get_ruleA
Read-only

Get a specific Comprehensive Rule by number, with its sub-rules (e.g. '509.1' returns 509.1, 509.1a, 509.1b...). Args: number: Rule number like '509.1' or '601.2a', or a section like '702'.

ParametersJSON Schema
NameRequiredDescriptionDefault
numberYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true. The description adds value by explaining that the tool returns sub-rules for a given rule number, which is behavioral detail 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 sentences with no wasted words. First sentence states purpose and output, second explains parameter format. Front-loaded 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 get tool with an output schema, the description is complete. It covers the input parameter thoroughly and states the output behavior (sub-rules). The annotations provide additional context (read-only, open-world).

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

Parameters5/5

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

The schema has 0% description coverage with a single string parameter 'number'. The description compensates fully by providing examples ('509.1', '601.2a', '702') and explaining the format. This adds critical meaning for correct usage.

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 'Get a specific Comprehensive Rule by number, with its sub-rules'. The verb 'Get' and resource 'Comprehensive Rule' are specific. It distinguishes from the sibling 'search_rules' by implying this is for precise rule retrieval.

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 examples of valid inputs ('509.1' or '702') and explains the output includes sub-rules. However, it does not explicitly state when not to use it (e.g., for keyword searches, use 'search_rules' instead).

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

get_sealed_evA
Read-only

EV breakdown for sealed product. Args: product_id: From search_sealed.

ParametersJSON Schema
NameRequiredDescriptionDefault
product_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true. The description adds that it provides 'EV breakdown', reinforcing the read-only nature. No extra behavioral details beyond annotations are needed; the description 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?

The description is two short sentences, front-loaded with the purpose. Every word is necessary—no fluff or repetition. It is optimally concise for the complexity of 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 tool has one parameter and an output schema (implied completeness), the description provides enough context: what it does, how the parameter is sourced. For a simple retrieval tool, this is adequate; missing details like the output format are handled by the output schema.

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?

The schema only provides title and type for product_id (0% coverage). The description adds critical context that the ID comes from search_sealed, linking to a sibling tool and guiding parameter provenance. This compensates for the lack of 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 the verb ('get EV breakdown') and the resource ('sealed product'), distinguishing it from siblings like search_sealed which searches for sealed products. The parameter reference to 'From search_sealed' further clarifies the tool's role.

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 after search_sealed by stating the product_id comes from there. It provides clear context on when to use, though it does not explicitly mention when not to use or name alternatives. This is sufficient for a simple tool.

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

get_set_statsA
Read-only

Set statistics: cards, rarity, prices, top cards. Args: set_code: e.g. 'mh3'.

ParametersJSON Schema
NameRequiredDescriptionDefault
set_codeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=true and openWorldHint=true, so the description's mention of return categories (cards, rarity, prices) adds some context but no additional behavioral constraints like rate limits or pagination. It 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?

The description is extremely concise: two sentences total. The first sentence lists output categories, the second gives parameter guidance. No filler or 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 that an output schema exists (though not shown), the description need not detail return types. It adequately lists the main output categories (cards, rarity, prices, top cards). However, it could briefly mention any sorting or filtering constraints, but overall it is complete enough for a simple tool.

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 0%, so the description bears full burden. It adds meaning by providing an example ('e.g. 'mh3'') for the set_code parameter, which the schema only labels as 'Set Code'. This helps the agent understand the format, though it does not enumerate all valid values.

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 provides set statistics including cards, rarity, prices, and top cards. The verb 'get' is implied by the name, and the resource 'set' is specified, but the exact scope (e.g., what 'top cards' means) is not fully elaborated. It distinguishes itself from siblings like browse_cards and get_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 Guidelines2/5

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

The description provides parameter guidance (example for set_code) but no explicit when-to-use or when-not-to-use information. It does not mention alternatives or context for selection among siblings.

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

list_setsC
Read-only

List MTG sets. Args: search: Optional name/code filter.

ParametersJSON Schema
NameRequiredDescriptionDefault
searchNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already provide readOnlyHint and openWorldHint. The description adds no behavioral details beyond the schema (e.g., pagination, rate limits, return format). It relies on annotations, which are present, so value added is minimal.

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?

Very short (two sentences) and front-loaded with the core action. While concise, the parameter description could be integrated more efficiently. No wasted words, but could add value without increasing length much.

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 low complexity (one optional parameter) and presence of an output schema, the description is adequate but not comprehensive. It does not explain what information is returned (e.g., set codes, names, release dates), leaving it to the output schema. Usage context and examples are missing.

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 description explains that the search parameter is an 'Optional name/code filter,' adding meaning beyond the raw schema (which has no description). However, it lacks details on match behavior (case sensitivity, partial match) and default behavior when empty. Schema coverage is 0%, so description compensates but only modestly.

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 lists MTG sets, with an optional search filter. It is specific enough to distinguish from sibling tools like browse_cards, but could explicitly mention that it returns a list of set names or codes.

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 get_set_stats or search_cards. The description does not mention context or restrictions.

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

price_deckA
Read-only

Price a decklist with curve, colors, legality, budget swaps. Args: decklist: '4 Lightning Bolt' per line. format: standard/modern/commander.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNo
decklistYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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

The description aligns with the readOnlyHint annotation, indicating a read operation. However, it does not add behavioral context beyond the annotations, such as data sources, permission requirements, or caveats about pricing accuracy.

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 and no redundant content. The key action and arguments are front-loaded, making it efficient for an agent 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?

Given the presence of an output schema, the description need not detail return values. It covers the tool's core functionality and argument semantics adequately. Minor omission: no mention of optional format behavior when empty.

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?

With 0% schema description coverage, the description adds crucial meaning: it specifies the decklist format ('4 Lightning Bolt' per line) and lists valid format values (standard/modern/commander). This compensates for the bare 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 prices a decklist and enumerates specific features (curve, colors, legality, budget swaps). It uses the specific verb 'Price' and resource 'decklist', distinguishing it from sibling tools like analyze_mana_curve, check_legality, and suggest_budget_alternatives.

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 lists arguments but does not provide explicit guidance on when to use this tool versus alternatives. It implies usage through the argument descriptions but lacks when-not or direct comparisons to siblings.

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

reserved_list_trackerA
Read-only

Reserved List cards — never reprinted. Args: max_price: Budget cap. sort: price/name. limit: 1-50.

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNoprice
limitNo
max_priceNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint and openWorldHint. The description adds 'never reprinted' context but does not detail behavior beyond that (e.g., whether it fetches current prices, handles errors, or paginates). Adds some, but not much, 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 brief sentences with no wasted words. Front-loads core purpose ('Reserved List cards — never reprinted') followed by compact parameter guidance. Every word 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 only 3 parameters and an output schema present, the description covers param meaning adequately. However, it does not explain the output format or any constraints beyond limit range. Still, given output schema handles return structure, this is sufficient for most use cases.

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 0% (no descriptions in schema). The description provides clear semantics: 'max_price: Budget cap,' 'sort: price/name,' 'limit: 1-50.' This compensates for the schema's lack of descriptions, giving agents concrete understanding of each parameter's role.

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 'Reserved List cards — never reprinted,' specifying the precise domain (Reserved List) and implying a search or listing action. This distinguishes it from siblings like browse_cards or search_cards which are broader.

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 Reserved List card searches via budget cap and sorting, but does not explicitly state when to use versus alternatives like browse_cards or suggest exclusions. Usage context is only implied.

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

search_cardsA
Read-only

Search MTG cards by name with fuzzy matching. Handles typos and partial names. Args: query: Card name (min 2 chars). limit: Max results (1-50).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryYes

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 provide readOnlyHint and openWorldHint. Description adds specific behavioral traits: fuzzy matching, typo handling, and minimum 2 chars for query. No contradictions; adds 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?

Two sentences covering purpose and parameter constraints. No wasted words, front-loaded with key action. Every sentence contributes.

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 search tool with output schema, description covers input constraints and behavior fully. Context signals show no nested objects or enums, so no hidden complexity. Complete enough for correct tool invocation.

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?

Despite 0% schema coverage, the description explicitly adds constraints: query minimum 2 characters, limit range 1-50 (schema shows default 10). This adds meaningful validation context beyond the bare 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 searches MTG cards by name with fuzzy matching, handling typos and partial names. It distinguishes from sibling tools like browse_cards or find_cards by specifying name-based fuzzy search.

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 for name-based fuzzy searches but does not explicitly state when not to use or mention alternatives. Context from sibling tools suggests it is distinct, but no direct exclusions are given.

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

search_rulesA
Read-only

Search the official Magic Comprehensive Rules + glossary by keyword. Use for rules questions and card interactions (e.g. 'deathtouch trample', 'the legend rule', 'priority'). Args: query: What to look up (min 2 chars). limit: Max rule matches (1-25).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true. The description adds practical constraints: query minimum 2 characters, limit range 1-25. 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 and an args line. No redundant information. Front-loaded with purpose and usage.

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 presence of an output schema, the description covers all essential aspects: purpose, usage, parameter constraints, and examples. No gaps for a search tool.

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

Parameters5/5

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

Despite 0% schema description coverage, the description fully explains both parameters: 'query: What to look up (min 2 chars). limit: Max rule matches (1-25).' This adds significant meaning beyond the schema's type/default.

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 'Search the official Magic Comprehensive Rules + glossary by keyword' with specific verb and resource. It distinguishes from sibling tools like get_rule (single rule lookup) and search_cards.

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 usage context: 'Use for rules questions and card interactions' with example queries. While it doesn't explicitly state when not to use it, it offers clear guidance on appropriate use cases.

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

search_sealedB
Read-only

Find sealed products. Args: set_code: Filter by set. category: booster_box/booster_pack/bundle.

ParametersJSON Schema
NameRequiredDescriptionDefault
categoryNo
set_codeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so the description's statement 'Find sealed products' is consistent. The description does not add behavioral details beyond what annotations provide, but also does not contradict them. It lacks disclosure of pagination, result structure, or dynamic behavior, but annotations cover the safety profile.

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 very concise: two sentences with the main purpose front-loaded. It lists arguments in a compact format. Every sentence is functional and earns its place. Minor room for improvement in structuring the argument list.

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 only 2 optional parameters and an existing output schema, the description is minimally adequate. It does not explain the return format or ordering, but the output schema likely covers that. The openWorldHint annotation suggests dynamic results, but the description doesn't elaborate. Overall, it covers essential context but leaves some unanswered questions.

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 0% schema description coverage, the description adds meaning to both parameters: 'set_code: Filter by set' and 'category: booster_box/booster_pack/bundle'. This provides useful context beyond the schema's names and defaults. However, the description does not specify allowed values for set_code or clarify that category values are examples, leaving some ambiguity.

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 'Find sealed products' with a specific verb and resource. It provides example categories (booster_box/booster_pack/bundle) that help distinguish it from sibling tools like search_cards or browse_cards. However, it could be more explicit about the exact scope of 'sealed products'.

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 provide any guidance on when to use this tool versus alternatives among the 20 siblings. It only implies usage by the tool name and description, but no explicit when-not or alternative recommendations are given, leaving the agent without clear contextual cues.

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

suggest_budget_alternativesA
Read-only

Cheaper alternatives with similar type/CMC. Args: card_name: Card to replace. max_price: Cap. format: Legality filter.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNo
card_nameYes
max_priceNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior3/5

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

Annotations already provide readOnlyHint (true) and openWorldHint (true), indicating safe read operation and non-exhaustive results. The description adds that alternatives share type/CMC and are cheaper, but does not mention ordering, completeness guarantees, or edge cases. With annotations covering safety, the description adds moderate behavioral context.

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: one sentence plus a brief arg list. No extraneous words, all information is relevant 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 existence of an output schema, the description does not need to explain return values. It covers purpose, parameters, and constraints. However, it could briefly hint at the output structure (e.g., a list of cards with prices) to improve completeness, but not required.

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

Parameters5/5

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

Schema coverage is 0%, so the description carries full burden. It explains each parameter: card_name as 'Card to replace', max_price as 'Cap', format as 'Legality filter'. This adds clear meaning beyond the schema's type/title, fully compensating for the lack of 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 the tool's purpose: finding cheaper alternatives with similar type/CMC (converted mana cost). It provides a specific verb ('suggest') and resource ('budget alternatives'), and distinguishes from sibling tools like 'find_cards' or 'evaluate_card' by focusing on budget substitutions.

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 (when a cheaper version of a card is needed) and lists parameters (card_name, max_price, format) but does not explicitly state when not to use or provide alternatives. The context of sibling tools makes the usage clear enough.

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

top_moversA
Read-only

Biggest price gains/drops. Args: days: 1-90. direction: up/down. min_price: Filter noise.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNo
limitNo
directionNoup
min_priceNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true. The description adds no new behavioral context, but it doesn't contradict 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 with one sentence and parameter hints. Every phrase adds value, and it is front-loaded with the core purpose.

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 output schema exists and the tool is simple, the description covers the essentials. However, it lacks guidance on combining with other tools or handling edge cases like empty results.

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?

With 0% schema description coverage, the description explains three of four parameters (days, direction, min_price) with practical constraints. The limit parameter is not mentioned, but defaults are provided 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 tool's purpose: find biggest price gains or drops. It specifies key parameters (days, direction, min_price) and distinguishes from siblings by focusing on movers rather than search or analysis.

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 provides parameter constraints (days range, direction values, min_price as filter) but does not explicitly state when to use this tool versus alternatives like search_cards or browse_cards.

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.

  1. 21 tool updatesv0.1.2
    • First observedanalyze_mana_curve
    • First observedbrowse_cards
    • First observedcheck_legality
    • First observedevaluate_card
    • First observedfind_arbitrage
    • First observedfind_cards
    • First observedfind_cards_by_role
    • First observedget_api_status
    • First observedget_card_price
    • First observedget_price_history
    • First observedget_rule
    • First observedget_sealed_ev
    • First observedget_set_stats
    • First observedlist_sets
    • First observedprice_deck
    • First observedreserved_list_tracker
    • First observedsearch_cards
    • First observedsearch_rules
    • First observedsearch_sealed
    • First observedsuggest_budget_alternatives
    • First observedtop_movers

TDQS

A3.5/5.0

Scored across 21 tools

Disambiguation5/5

All tools have clearly distinct purposes. Search tools differ by query type (fuzzy name, complex filters, browsing, role-based). Analysis tools (mana curve, deck pricing, card evaluation) are distinct. Pricing, legality, rules, sealed, and market tools are also well-separated.

Naming Consistency4/5

Most tools follow a verb_noun pattern (e.g., analyze_mana_curve, get_card_price). A few deviate (reserved_list_tracker, top_movers) but are still understandable. No mixed conventions like camelCase, so overall consistent.

Tool Count5/5

21 tools cover a broad MTG domain: card searching, pricing, deck analysis, rules, sealed products, market data. Each tool serves a clear need without redundancy. The count is well-scoped for a comprehensive index server.

Completeness5/5

The tool set covers all major aspects: card discovery (multiple methods), pricing and history, deck building (curve, budget swaps), legality, rules, sealed product EV, and market opportunities. No obvious gaps for the intended functionality.

Maintenance

ActivityStale
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers