mythic-index-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mythic-index-mcpWhat's the price of Sheoldred, the Apocalypse?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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-mcpOr install from source:
git clone https://github.com/wizkid17/mythic-index-mcp.git
cd mythic-index-mcp
pip install -r requirements.txtConfigure 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-mcpUse 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 |
| Fuzzy name search — handles typos and partial names |
| Advanced filters: oracle text, color, type, CMC, price, format, Reserved List |
| Browse by price, name, or newest sets |
| List and search all 971 MTG sets |
Pricing
Tool | Description |
| Current prices across TCGPlayer, Card Kingdom, CardMarket, CardSphere, CardHoarder |
| Price trends over 7/30/90/365 days |
Sets & Sealed Products
Tool | Description |
| Rarity distribution, avg price, total value, chase card, top 10 |
| Find booster boxes, packs, bundles, commander decks |
| Full EV breakdown with tier analysis (bulk → jackpot) |
Investment
Tool | Description |
| Biggest price gains and drops over any period |
| Cross-vendor profit opportunities (buy retail, sell buylist) |
| Browse Reserved List cards — never reprinted |
Deck Analysis
Tool | Description |
| Full decklist pricing: total cost, vendor comparison, mana curve, legality, budget swaps |
| Find cheaper cards with similar type and CMC |
| Curve visualization, land count evaluation, color source requirements |
Strategy
Tool | Description |
| Format legality: Standard, Modern, Pioneer, Commander, Legacy, Vintage, Pauper |
| Strategic roles, keyword abilities, archetype fit |
| Search by role: removal, ramp, card draw, burn, counter, tutor, and 7 more |
Rules
Tool | Description |
| Full-text search the official Comprehensive Rules + glossary |
| Get a rule by number with its sub-rules (e.g. |
System
Tool | Description |
| 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.pyFor remote SSE hosting:
python3 mcp_server.py --sse --port 8080API
This MCP server connects to the Mythic Index API. Documentation: api.mythic-index.com/mtg-api/docs
License
MIT — see LICENSE
Links
Admin Console: https://api.mythic-index.com/admin
MCP Protocol: https://modelcontextprotocol.io
Anthropic: https://anthropic.com
Available Tools
21 toolsanalyze_mana_curveBRead-only
Analyze mana curve, lands, color sources. Args: decklist: Same format as price_deck.
| Name | Required | Description | Default |
|---|---|---|---|
| decklist | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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_cardsARead-only
Browse MTG cards by price, name, or newest. Args: sort: price/name/recent. order: desc/asc. rarity/set_code: filters. limit: 1-50.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | price | |
| limit | No | ||
| order | No | desc | |
| rarity | No | ||
| set_code | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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_legalityDRead-only
Format legality check. Args: card_id: From search results.
| Name | Required | Description | Default |
|---|---|---|---|
| card_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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_cardARead-only
Strategic analysis: roles, keywords, archetypes. Args: card_id: From search.
| Name | Required | Description | Default |
|---|---|---|---|
| card_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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_arbitrageBRead-only
Cross-vendor profit opportunities. Args: min_spread: Min profit USD. limit: 1-50.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| min_spread | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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_cardsARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | price | |
| limit | No | ||
| colors | No | ||
| format | No | ||
| rarity | No | ||
| cmc_max | No | ||
| cmc_min | No | ||
| keyword | No | ||
| price_max | No | ||
| price_min | No | ||
| type_line | No | ||
| oracle_text | No | ||
| reserved_list | No | ||
| color_identity | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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_roleARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| role | Yes | ||
| limit | No | ||
| colors | No | ||
| format | No | ||
| max_price | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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_statusARead-only
Platform health and sync status.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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_priceARead-only
Current prices across all vendors. Args: card_id: From search results.
| Name | Required | Description | Default |
|---|---|---|---|
| card_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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_historyARead-only
Price trends over time. Args: card_id: Card ID. days: 7/30/90/365. finish: nonfoil/foil.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | ||
| finish | No | nonfoil | |
| card_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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_ruleARead-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'.
| Name | Required | Description | Default |
|---|---|---|---|
| number | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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_evARead-only
EV breakdown for sealed product. Args: product_id: From search_sealed.
| Name | Required | Description | Default |
|---|---|---|---|
| product_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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_statsARead-only
Set statistics: cards, rarity, prices, top cards. Args: set_code: e.g. 'mh3'.
| Name | Required | Description | Default |
|---|---|---|---|
| set_code | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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_setsCRead-only
List MTG sets. Args: search: Optional name/code filter.
| Name | Required | Description | Default |
|---|---|---|---|
| search | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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_deckARead-only
Price a decklist with curve, colors, legality, budget swaps. Args: decklist: '4 Lightning Bolt' per line. format: standard/modern/commander.
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | ||
| decklist | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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_trackerARead-only
Reserved List cards — never reprinted. Args: max_price: Budget cap. sort: price/name. limit: 1-50.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | price | |
| limit | No | ||
| max_price | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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_cardsARead-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).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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_rulesARead-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).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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_sealedBRead-only
Find sealed products. Args: set_code: Filter by set. category: booster_box/booster_pack/bundle.
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | ||
| set_code | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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_alternativesARead-only
Cheaper alternatives with similar type/CMC. Args: card_name: Card to replace. max_price: Cap. format: Legality filter.
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | ||
| card_name | Yes | ||
| max_price | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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_moversARead-only
Biggest price gains/drops. Args: days: 1-90. direction: up/down. min_price: Filter noise.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | ||
| limit | No | ||
| direction | No | up | |
| min_price | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
21 tool updates
v0.1.2- First observed
analyze_mana_curve - First observed
browse_cards - First observed
check_legality - First observed
evaluate_card - First observed
find_arbitrage - First observed
find_cards - First observed
find_cards_by_role - First observed
get_api_status - First observed
get_card_price - First observed
get_price_history - First observed
get_rule - First observed
get_sealed_ev - First observed
get_set_stats - First observed
list_sets - First observed
price_deck - First observed
reserved_list_tracker - First observed
search_cards - First observed
search_rules - First observed
search_sealed - First observed
suggest_budget_alternatives - First observed
top_movers
TDQS
Scored across 21 tools
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.
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.
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.
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
Related MCP Connectors
Unlock the power of real-time cryptocurrency data with our Crypto Price Insights MCP server.
Official CoinMarketCap MCP server: real-time crypto prices, market cap, rankings and exchange data.
Crypto market intelligence, token rug-checks, and wallet verification in one MCP server.
MTG market data: search 114K+ cards, price signals, AI analysis. Free tier available.
Related MCP Servers
- AlicenseAqualityCmaintenanceMagic: The Gathering MCP server with card search, rules lookup, deck analysis, and Commander intelligence1434 npm4MIT
- AlicenseNot gradedqualityCmaintenanceMCP server that searches and retrieves Magic: The Gathering card data from the Scryfall API.42,316 npmMIT
- AlicenseNot gradedqualityBmaintenanceUnified MCP server for Magic: The Gathering, combining Scryfall card search and pricing, EDHRec commander recommendations, Archidekt deck reading, and decklist validation into a single service.MIT
- AlicenseNot gradedqualityBmaintenanceMCP server for searching Flesh and Blood TCG cards, retrieving print variations, and browsing product catalogs via the CardVault API.MIT