Skip to main content
Glama

mtg-oracle

npm version npm downloads License: MIT Node.js MCP gregario/mtg-oracle MCP server

Magic: The Gathering MCP server. Card search, rules lookup, deck analysis, and Commander intelligence.

Provides 14 tools for AI assistants to answer questions about Magic cards, game rules, combos, synergies, and format meta via the Model Context Protocol.

Not just another Scryfall wrapper. mtg-oracle downloads card data, comprehensive rules, and combo databases locally into SQLite for fast offline queries, and ships with curated MTG knowledge (archetypes, format primers, commander strategies, mana base guidelines) that makes LLMs genuinely competent at Magic.

Installation

npm install -g mtg-oracle

Or run directly with npx:

npx mtg-oracle

Related MCP server: scryfall-mcp-server

Claude Desktop Configuration

Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):

{
  "mcpServers": {
    "mtg-oracle": {
      "command": "npx",
      "args": ["-y", "mtg-oracle"]
    }
  }
}

Or if installed globally:

{
  "mcpServers": {
    "mtg-oracle": {
      "command": "mtg-oracle"
    }
  }
}

Claude Code Configuration

claude mcp add mtg-oracle -- npx -y mtg-oracle

Data

On first run, mtg-oracle downloads card data from Scryfall and rules data from Academy Ruins. Data is stored in ~/.mtg-oracle/ and updated automatically on subsequent runs. No card data is bundled in the npm package.

Tools

Card Tools

Tool

Description

search_cards

Search cards by name, type, color, mana cost, rarity, set, format, or keyword. Full-text search across names, type lines, and oracle text.

get_card

Get complete details for a specific card: oracle text, mana cost, type, P/T, rulings, and legality. Fuzzy name matching.

get_rulings

Get official Wizards of the Coast rulings for a card (interactions, edge cases, clarifications).

check_legality

Check format legality for one or more cards (up to 50). Covers Commander, Modern, Standard, Legacy, Vintage, and more.

search_by_mechanic

Find cards with a specific keyword or mechanic (Flying, Trample, Cascade, etc.). Optionally includes the keyword's rules definition.

get_prices

Look up current market prices for one or more cards (up to 50). Returns USD, USD Foil, EUR, and MTGO tix prices from Scryfall.

Deck Tools

Tool

Description

analyze_deck

Analyze a deck list (plain text or MTGO XML). Returns mana curve, color distribution, type breakdown, mana base analysis, and format legality check.

Rules Tools

Tool

Description

lookup_rule

Look up Comprehensive Rules by section number (e.g., "702.1") or search by text. Returns rule text with subsections and parent context.

get_glossary

Look up game terminology in the official glossary ("permanent", "spell", "stack", "priority", etc.).

get_keyword

Get the official rules definition for keyword abilities (Flying, Deathtouch, Equip, etc.).

Commander Tools

Tool

Description

analyze_commander

Analyze a legendary creature as a Commander: strategies, archetypes, recommended card categories for deckbuilding.

find_combos

Find known infinite combos from Commander Spellbook. Search by card name(s) or color identity. Returns steps, prerequisites, and results.

find_synergies

Find synergy categories (tokens, sacrifice, counters, etc.) and sample cards that work well with a specific card.

get_format_staples

Get staple cards and popular archetypes for any format. Optionally filter by archetype.

Development

# Install dependencies
npm install

# Run tests
npm test

# Build
npm run build

# Run locally
npm start

Attribution

This is unofficial Fan Content permitted under the Fan Content Policy. Not approved/endorsed by Wizards of the Coast. Portions of the materials used are property of Wizards of the Coast. All rights reserved.

License

MIT

Available Tools

14 tools
analyze_commanderA

Analyze a legendary creature as a potential Commander. Returns color identity, suggested strategies, archetypes, and recommended card categories for building a deck around this commander. Use this when a user wants help building or evaluating a Commander deck.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesCommander card name to analyze

TDQS

A3.8/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It discloses the output type but does not mention any behavioral traits such as handling of invalid names, caching behavior, or prerequisites. For a tool that likely interacts with external data, more behavioral context (e.g., cases where the tool might fail) is missing.

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

Conciseness5/5

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

The description consists of two concise sentences that front-load the purpose and usage. Every sentence adds value, with no redundancy or filler.

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

Completeness4/5

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

Given the tool's simplicity (single parameter, no output schema), the description adequately explains what it does and what it returns. It does not cover error cases or fallback behavior, but for a straightforward analysis tool, the level of detail is almost complete.

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

Parameters3/5

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

The only parameter 'name' has a schema description 'Commander card name to analyze', which already covers its meaning. The description adds no additional semantics beyond what the schema provides. With 100% schema coverage, a baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the verb 'analyze' and the resource 'legendary creature as a potential Commander', and lists the returned information (color identity, strategies, archetypes, recommended card categories). It distinguishes from sibling tools like analyze_deck (whole deck) and find_synergies (specific card synergies).

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

Usage Guidelines4/5

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

The description explicitly states 'Use this when a user wants help building or evaluating a Commander deck', providing clear context for when to invoke. It does not enumerate when not to use or mention alternatives, but the specialized nature makes the guidance sufficient.

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

analyze_deckA

Analyze a Magic: The Gathering deck list. Paste a deck list (plain text format like '4 Lightning Bolt' per line, or MTGO .dek XML) and get mana curve, color distribution, type breakdown, mana base analysis, and format legality check. Use this when a user shares a deck list and wants feedback.

ParametersJSON Schema
NameRequiredDescriptionDefault
deck_listYesThe deck list in plain text or MTGO .dek XML format
formatNoFormat to check legality against (e.g., "modern", "commander", "standard")

TDQS

A4.3/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It mentions the outputs (mana curve, etc.) but does not disclose any behavioral traits like rate limits, statelessness, or if it modifies anything.

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 waste, front-loading the purpose. Efficient and well-structured.

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

Completeness4/5

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

The description covers inputs and expected outputs, but does not specify the output format (e.g., JSON, text). For a tool with no output schema, this would be helpful but is not critical.

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 description adds significant meaning beyond the schema, explaining acceptable formats for deck_list (plain text with '4 Lightning Bolt' per line, or MTGO XML) and the purpose of format parameter for legality checks.

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

Purpose5/5

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

The description clearly states it analyzes an MTG deck list and lists specific analyses (mana curve, color distribution, etc.). The verb 'analyze' and resource 'deck list' are specific, and it distinguishes from sibling tools like analyze_commander and check_legality.

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 says 'Use this when a user shares a deck list and wants feedback,' providing clear context. However, it does not explicitly mention when not to use it or compare to alternatives like check_legality for legality-only checks.

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

check_legalityA

Check which formats a card (or multiple cards) is legal in. Use this when a user wants to know if a card is legal, banned, or restricted in formats like Commander, Modern, Standard, Legacy, or Vintage. Accepts a single card name or an array of up to 50 card names.

ParametersJSON Schema
NameRequiredDescriptionDefault
cardsYesCard name or array of card names (max 50)
formatNoSpecific format to check (e.g., "commander", "modern"). Omit for all formats.

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description provides key behaviors: accepts single or array up to 50 cards, checks legality. It implies a read-only operation, no contradictory behaviors. Could mention output structure but adequate.

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

Conciseness5/5

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

Two sentences: first states purpose, second provides usage context and acceptable formats. No filler, front-loading of key info, every sentence earns its place.

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

Completeness4/5

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

Given no output schema, the description implies the output is a legality status per format, which is sufficient for this simple tool. Could detail output format, but the agent can infer from the query nature.

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

Parameters3/5

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

Schema coverage is 100%, so parameters are well-documented. The description adds context like 'max 50' and 'Omit for all formats' but does not go beyond what the schema already conveys. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the verb 'check' and the resource 'which formats a card is legal in', distinguishing it from sibling tools like 'get_card' (card details) and 'search_cards' (searching). It specifies the action and scope.

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 tells when to use the tool ('when a user wants to know if a card is legal') and lists example formats. It does not explicitly state when not to use it, but the focus on legality is clear, and siblings cover other use cases.

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

find_combosA

Find known infinite combos and synergistic card combinations from Commander Spellbook. Use this when a user asks about combos involving specific cards, combos in specific colors, or wants to find win conditions. Returns combo steps, prerequisites, and results.

ParametersJSON Schema
NameRequiredDescriptionDefault
card_nameNoSingle card name to search combos for
card_namesNoMultiple card names to search combos for
color_identityNoFilter combos within this color identity (e.g. ["W","U","B"])
limitNoMax results (default 20, max 50)

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description must cover behavioral traits. It states the output: 'Returns combo steps, prerequisites, and results,' which adds transparency about return format. However, it does not disclose whether the operation is read-only, any authentication needs, rate limits, or potential side effects. Without annotations, more detail would be beneficial.

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

Conciseness5/5

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

The description consists of three concise sentences, each earning its place: the first states the core function, the second provides usage context, and the third describes the return value. No unnecessary words, front-loaded with the most important information.

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

Completeness4/5

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

Given the parameter count (4) and full schema coverage, the description provides sufficient context for usage. It lacks mention of search behavior (e.g., exact match vs fuzzy) and does not specify if the tool is read-only, but the simplicity of the tool (no required params, no nested objects) means the description covers the essentials. The absence of an output schema is mitigated by the explicit listing of return components.

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

Parameters3/5

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

The input schema has 100% description coverage for all four parameters, so the schema already explains each parameter's meaning. The description adds no additional semantic value beyond what the schema provides, thus the baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool finds 'known infinite combos and synergistic card combinations from Commander Spellbook,' using a specific verb ('Find') and resource ('combos'). It also lists usage scenarios (combos involving specific cards, colors, or win conditions) that distinguish it from siblings like 'find_synergies' which likely serve a different purpose.

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

Usage Guidelines4/5

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

The description explicitly states when to use: 'when a user asks about combos involving specific cards, combos in specific colors, or wants to find win conditions.' While it does not mention alternatives or when not to use, the context of sibling tools is available externally, making the guidance clear enough for an AI agent to decide.

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

find_synergiesA

Find synergy categories and sample cards that work well with a specific card. Use this when a user wants to know what strategies or card types synergize with a particular card. Identifies matching archetypes (tokens, sacrifice, counters, etc.) and suggests complementary cards.

ParametersJSON Schema
NameRequiredDescriptionDefault
card_nameYesCard name to find synergies for
color_identityNoFilter synergistic cards within this color identity
formatNoFilter by format relevance
categoryNoFilter by specific synergy category ID
limitNoMax sample cards per category (default 5, max 50)

TDQS

A3.7/5.0
Behavior2/5

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

No annotations provided; description does not disclose behavioral traits beyond purpose. Lacks information on side effects, data freshness, or mutability. For a search tool, read-only implied but not stated.

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

Conciseness5/5

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

Two sentences front-loaded with main action and usage context. No redundant information; every sentence adds value.

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 purpose and usage adequately but lacks explanation of output structure (e.g., format of sample cards, categories). Without output schema, description could be more informative.

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

Parameters3/5

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

Schema description coverage is 100%, so description adds little beyond schema. Does not clarify parameter interactions or output behavior. Baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool finds synergy categories and sample cards for a given card, using specific verbs and resources. It distinguishes itself from siblings like find_combos by focusing on strategies and complementary 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?

Explicitly says when to use: 'when a user wants to know what strategies or card types synergize with a particular card.' No explicit when-not-to-use or alternative tools mentioned, but the usage context is clear.

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

get_cardA

Get complete details for a specific Magic card including oracle text, mana cost, type, power/toughness, rulings, and format legality. Use this when you know the exact card name (or close to it) and need full information. Supports fuzzy matching — partial names work.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesCard name to look up

TDQS

A4.6/5.0
Behavior4/5

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

Discloses fuzzy matching behavior and lists returned fields. No annotations provided, but description implies read-only operation; could explicitly state no side effects.

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 efficiently convey purpose, usage, and parameter behavior with no redundancy.

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

Completeness5/5

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

Despite no output schema, description enumerates returned fields (oracle text, mana cost, type, power/toughness, rulings, format legality), covering agent needs fully.

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?

Adds value beyond schema by noting fuzzy matching and partial name support for the 'name' parameter, which schema only labels as 'Card name to look up'.

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 specifies verb (get complete details) and resource (Magic card), listing specific fields returned. Distinguishes from sibling search_cards by focusing on full details for a known name.

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

Usage Guidelines4/5

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

Describes when to use (know exact or partial name, need full info) and mentions fuzzy matching. Lacks explicit alternatives but context is clear.

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

get_format_staplesA

Get staple cards and popular archetypes for a specific format (Commander, Modern, Legacy, etc.). Use this when a user asks about the meta, popular decks, or key cards in a format. Optionally filter by archetype.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatYesFormat to get staples for (e.g. "commander", "modern", "legacy")
archetypeNoOptional archetype filter (e.g. "aggro-red", "control-uw")

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden. It implies a read operation but does not disclose any potential behaviors such as error handling, rate limits, or data freshness. Adequate but not detailed.

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

Conciseness5/5

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

Two sentences, no redundancy, front-loaded with the core action. Every word serves a purpose.

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

Completeness4/5

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

For a simple retrieval tool with two well-described parameters and no output schema, the description covers the essential purpose and usage context. It could mention the return format, but this is not critical given the tool's straightforward nature.

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

Parameters3/5

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

Schema coverage is 100%, and the description adds minimal additional meaning beyond the schema, only noting that the archetype filter is optional. Baseline score of 3 applies.

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 retrieves staple cards and popular archetypes for a format, with examples of formats. It does not explicitly differentiate from sibling tools, but the purpose is distinct enough given the sibling names.

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?

Explicitly states when to use: 'when a user asks about the meta, popular decks, or key cards in a format.' No alternatives or when-not-to-use are given, but the context is clear.

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

get_glossaryA

Look up a term in the Magic: The Gathering glossary. Use this when a user asks "what does X mean" for game-specific terminology like "permanent", "spell", "stack", "priority", etc. Supports partial matching.

ParametersJSON Schema
NameRequiredDescriptionDefault
termYesGlossary term to look up (case-insensitive). Supports exact and partial matching.

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations, the description carries full burden. It discloses case-insensitivity and partial matching support, which are key behaviors for a glossary lookup. No side effects or destructive actions are relevant, so transparency is adequate.

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

Conciseness5/5

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

The description is concise—two sentences with no filler. It front-loads the action and purpose, then provides usage guidance, 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.

Completeness5/5

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

Given the tool's simplicity (one parameter, no output schema), the description fully covers purpose, usage, and behavior. It is complete for an agent to select and invoke the tool correctly.

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

Parameters4/5

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

Schema coverage is 100% (one parameter 'term' described). The description adds value by stating the parameter is case-insensitive and supports partial matching, which is not 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: 'Look up a term in the Magic: The Gathering glossary.' It specifies the verb (look up) and resource (glossary), and distinguishes from sibling tools by focusing on game-specific terminology like 'permanent', 'spell', etc.

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 explicit usage context: 'Use this when a user asks "what does X mean" for game-specific terminology.' It gives examples and implies when not to use (e.g., for card rules, use get_rulings or lookup_rule), though it does not name alternatives explicitly.

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

get_keywordA

Get the official rules definition for a Magic keyword ability (e.g., "Flying", "Deathtouch", "Equip"). Use this when a user asks how a keyword works or what its rules text says. Different from get_glossary — this is specifically for keyword abilities with rules text.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesKeyword name to look up (case-insensitive). Examples: "Flying", "Equip", "Scry".

TDQS

A4.5/5.0
Behavior3/5

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

No annotations are provided, so the description must cover behavioral traits. It describes a read-only lookup operation but does not disclose potential side effects, authentication needs, rate limits, or data source details. The simplicity of the operation partially mitigates this, but more transparency would be beneficial.

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

Conciseness5/5

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

The description is two sentences long, with no extraneous information. The first sentence defines the purpose with examples, and the second provides usage guidance and sibling differentiation. Every word earns its place.

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 lookup tool with one parameter and no output schema, the description covers purpose, usage context, and differentiation. No additional information (e.g., output format) is necessary for the agent to use the tool effectively.

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 100% description coverage, so baseline is 3. The description adds value with examples ('Flying', 'Equip', 'Scry') and implicitly confirms case-insensitivity, which is already in the schema. This extra context justifies a 4.

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

Purpose5/5

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

The description clearly states the tool retrieves official rules definitions for Magic keyword abilities, with examples like 'Flying', 'Deathtouch', 'Equip'. It distinguishes itself from the sibling tool 'get_glossary' by specifying it is for keyword abilities with rules text.

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

Usage Guidelines5/5

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

The description explicitly states when to use this tool: 'Use this when a user asks how a keyword works or what its rules text says.' It also contrasts with the alternative 'get_glossary', providing clear guidance on differentiation.

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

get_pricesA

Look up current market prices for one or more Magic cards. Returns USD, USD Foil, EUR, and MTGO tix prices from Scryfall. Use this when a user asks about card prices, deck costs, or wants to compare card values.

ParametersJSON Schema
NameRequiredDescriptionDefault
namesYesCard names to look up prices for (1-50)

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description must stand alone. It states the tool returns prices from Scryfall but does not disclose behavior for missing or misspelled names, rate limits, or any side effects. This is adequate for a simple lookup but lacks depth for full transparency.

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

Conciseness5/5

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

Two sentences, front-loaded with the action and key details, followed by usage guidance. No wasted words, highly efficient.

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

Completeness4/5

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

The description explains what the tool does, what it returns, and when to use it. With one parameter and no output schema, it provides enough context for an agent to invoke correctly, though it could mention error handling or return format for missing cards.

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

Parameters3/5

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

The input schema has 100% description coverage for the single 'names' parameter. The description adds context about the currencies returned but does not explain parameter format or constraints beyond the schema. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool looks up current market prices for Magic cards, specifies the price types (USD, USD Foil, EUR, MTGO tix) and source (Scryfall). It distinguishes from sibling tools like get_card or check_legality which deal with card details or legality, not prices.

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?

Explicitly tells when to use: 'Use this when a user asks about card prices, deck costs, or wants to compare card values.' Does not mention when not to use or provide alternative tools, but the context is clear given sibling names.

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

get_rulingsA

Get official rulings for a specific Magic card. Use this when a user asks about specific interactions, edge cases, or how a card works in unusual situations. Returns timestamped rulings from Wizards of the Coast.

ParametersJSON Schema
NameRequiredDescriptionDefault
card_nameYesName of the card to get rulings for

TDQS

A4/5.0
Behavior3/5

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

No annotations provided, so the description carries the full burden. It discloses that rulings are timestamped and from Wizards of the Coast, but does not cover potential error conditions or 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?

Two sentences efficiently convey function, usage context, and output. No wasted words.

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

Completeness4/5

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

For a simple tool with one parameter and no output schema, the description is fairly complete: it explains purpose, usage, and output format. Could add details on error handling or no results, but not essential.

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

Parameters3/5

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

Schema coverage is 100%, and the parameter description in the schema is adequate. The tool description does not add extra semantic value beyond the schema.

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

Purpose5/5

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

The description clearly states the verb 'get official rulings' and the resource 'specific Magic card'. It distinguishes from siblings like get_card (basic info) and lookup_rule (rules) by specifying the use case for interactions and edge cases.

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?

Explicitly states when to use: 'when a user asks about specific interactions, edge cases, or how a card works in unusual situations.' Provides solid context, though it doesn't explicitly mention when not to use.

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

lookup_ruleA

Look up a specific section of the Magic: The Gathering Comprehensive Rules by section number (e.g., "702", "702.1") or search rules text. Use this when a user asks about specific game rules, rule interactions, or needs the official rule text. Returns the rule and its subsections.

ParametersJSON Schema
NameRequiredDescriptionDefault
sectionNoRule section number to look up (e.g. "702" or "702.1"). Returns exact match plus all subsections.
queryNoText to search for across all rule titles and text (case-insensitive).

TDQS

A4/5.0
Behavior2/5

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

No annotations are provided, so the description must fully cover behavior. It states 'Returns the rule and its subsections' but omits details like read-only behavior, potential rate limits, or that no modifications occur. For a safe lookup tool, more clarity on safety would improve transparency.

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

Conciseness5/5

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

Two sentences with no filler. The first sentence states action and provides an example. Every word contributes to understanding the tool's function.

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

Completeness4/5

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

For a simple lookup tool with no output schema and two parameters, the description covers purpose, usage, and return behavior. It could briefly mention whether both parameters can be used together, but overall it's sufficiently complete.

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

Parameters4/5

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

Schema description coverage is 100%, but the description adds value by explaining that 'section' returns exact match plus subsections and that 'query' is case-insensitive search across all text. This goes beyond the schema's parameter names.

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

Purpose5/5

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

The description uses specific verbs ('look up', 'search') and clearly identifies the resource ('Magic: The Gathering Comprehensive Rules') and methods (by section number or text search). It distinguishes from siblings like get_card or get_rulings which are for different purposes.

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

Usage Guidelines4/5

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

Provides explicit guidance on when to use ('when a user asks about specific game rules, rule interactions, or needs the official rule text'). Does not explicitly mention when not to use or list alternatives, but the context is clear enough.

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

search_by_mechanicA

Find cards that have a specific keyword or mechanic (e.g., "Flying", "Trample", "Scry", "Cascade"). Use this when a user asks about cards with a particular ability or mechanic. Optionally includes the keyword's official rules definition.

ParametersJSON Schema
NameRequiredDescriptionDefault
keywordYesKeyword/mechanic to search for (e.g., "Flying", "Trample")
include_definitionNoInclude keyword definition from keywords table
formatNoFilter by format legality
limitNoMax results (default 25, max 50)

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It reveals that the tool searches cards and optionally includes definitions, but does not describe error handling, return format, or any behavioral traits beyond the basic operation.

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

Conciseness5/5

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

Two sentences, front-loaded with the core action and examples. Every word earns its place with no redundancy.

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

Completeness4/5

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

Given no output schema and no annotations, the description is fairly complete. It covers the main functionality and optional feature. Could mention default limit or pagination, but schema fills some 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 coverage is 100%, so the baseline is 3. The description adds minimal extra meaning beyond what the schema already provides for parameters like keyword, include_definition, format, and limit.

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

Purpose5/5

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

Clearly states the tool finds cards by keyword/mechanic with examples. Distinguishes from sibling tools like search_cards which is more general, and get_keyword which focuses on definitions alone.

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?

Explicitly says 'Use this when a user asks about cards with a particular ability or mechanic.' Provides clear context for when to use, but does not mention when not to use or alternatives like get_keyword or search_cards.

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

search_cardsA

Search for Magic: The Gathering cards by name, type, color, mana cost, rarity, set, format legality, or keyword. Use this when you need to find cards matching specific criteria. Supports full-text search across card names, type lines, and oracle text. Returns a summary list — use get_card for full details on a specific card.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNoFree-text search (FTS5) across name, type_line, oracle_text
nameNoFilter by card name (LIKE match)
typeNoFilter by type_line (LIKE match)
colorsNoFilter by colors (JSON array contains all specified)
cmcNoFilter by converted mana cost
cmcOpNoCMC comparison operator (default: eq)
rarityNoFilter by rarity (common, uncommon, rare, mythic)
setNoFilter by set code
formatNoFilter by format legality (legal status)
keywordNoFilter by keyword in keywords JSON array
limitNoMax results (default 25, max 50)

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description must carry the burden. It mentions full-text search and that it returns a summary list, but lacks details on pagination, sorting, error handling, or read-only nature. The behavioral transparency is adequate but could be improved.

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: the first succinctly lists capabilities, the second gives usage guidelines and a pointer to get_card. No wasted words, front-loaded with key information.

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

Completeness2/5

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

With 11 parameters, no output schema, and no annotations, the description should compensate. It omits some parameters (e.g., cmc, cmcOp, limit) and does not describe output structure beyond 'summary list'. This leaves significant gaps for an agent.

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

Parameters3/5

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

Schema coverage is 100%, so every parameter has a description. The tool description lists many parameters but does not add new semantics beyond the schema. Baseline of 3 is appropriate as the schema already documents parameters well.

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 explicitly states the action (search) and resource (cards) and lists numerous filter criteria. It distinguishes from sibling tool get_card by noting that get_card provides full details. This is clear and specific.

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

Usage Guidelines4/5

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

Description provides clear guidance on when to use the tool ('when you need to find cards matching specific criteria') and directs to get_card for full details. However, it does not mention when not to use it or alternative sibling tools like search_by_mechanic, limiting completeness.

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. 14 tool updatesv0.2.2
    • Addedanalyze_commander
    • Addedanalyze_deck
    • Addedcheck_legality
    • Addedfind_combos
    • Addedfind_synergies
    • Addedget_card
    • Addedget_format_staples
    • Addedget_glossary
    • Addedget_keyword
    • Addedget_prices
    • Addedget_rulings
    • Addedlookup_rule
    • Addedsearch_by_mechanic
    • Addedsearch_cards
  2. 14 tool updatesv0.1.0
    • Removedanalyze_commander
    • Removedanalyze_deck
    • Removedcheck_legality
    • Removedfind_combos
    • Removedfind_synergies
    • Removedget_card
    • Removedget_format_staples
    • Removedget_glossary
    • Removedget_keyword
    • Removedget_prices
    • Removedget_rulings
    • Removedlookup_rule
    • Removedsearch_by_mechanic
    • Removedsearch_cards
  3. 14 tool updatesv1.0.0
    • First observedanalyze_commander
    • First observedanalyze_deck
    • First observedcheck_legality
    • First observedfind_combos
    • First observedfind_synergies
    • First observedget_card
    • First observedget_format_staples
    • First observedget_glossary
    • First observedget_keyword
    • First observedget_prices
    • First observedget_rulings
    • First observedlookup_rule
    • First observedsearch_by_mechanic
    • First observedsearch_cards

TDQS

A4.2/5.0

Scored across 14 tools

Disambiguation4/5

Most tools have distinct targets, but search_by_mechanic overlaps with search_cards since the latter supports keyword-based search. get_keyword and get_glossary are explicitly differentiated, and lookups like rulings vs. card details are well separated.

Naming Consistency5/5

All tool names follow a consistent verb_noun snake_case pattern (get_, search_, analyze_, find_, check_, lookup_). Even multi-word objects like get_format_staples are clear and predictable.

Tool Count5/5

14 tools is well-scoped for a Magic: The Gathering oracle service. Each tool covers a meaningful aspect (card data, pricing, legality, rulings, deck/commander analysis, combos), and none feels superfluous.

Completeness5/5

The surface covers all major info needs: card lookup and search, prices, legality, rulings, comprehensive rules, glossary, deck analysis, commander analysis, combos, synergies, and format staples. There are no obvious dead ends for common MTG questions.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    MCP server for I Want My MTG that enables conversational search of Magic: The Gathering cards/sets and inventory management via API tools.
    60
    82
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Unified 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
  • A
    license
    A
    quality
    A
    maintenance
    MCP server for Magic: The Gathering card prices, deck analysis, sealed product EV calculations, and investment insights, powered by live data from 5 vendors covering 99K+ cards.
    21
    MIT