Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

MTG MCP Server

PYPI · MTG-MCP-SERVER · SCANNED SEP 20

Magic: The Gathering card search, combo lookup, draft analytics, and Commander tools.

Available components

−15 this week 53 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security43
  • Malware scan not yet available for this package.Unverified
  • No known CVEs affecting this package version or its production dependencies.Pass
  • Runs a script at install time (build_backend) that we could not recognise. It may be perfectly ordinary, but we do not read the published tarball, so we cannot say what it does. View diagnostics → Partial
  • 4 of 38 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency35
Schema Quality & AI Usability86
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 8651 tokens (~121/item across 71 items; 69 tools + 2 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management0
  • Stability not yet verified: two runs of the same published version returned different tool surfaces, so we cannot tell a change in the package from a difference in our own sandbox run.Unverified
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • We read all 69 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 71 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a current MCP spec version (2026-07-28).Pass

Unverified: 1 category

A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

Install

How do I install the MTG MCP Server server?

MTG MCP Server runs locally as a PyPI package, launched with uvx mtg-mcp-server. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

pypi · mtg-mcp-server

# add to Claude Code
claude mcp add j4th-mtg-mcp-server -- uvx mtg-mcp-server
// .cursor/mcp.json
{
  "mcpServers": {
    "j4th-mtg-mcp-server": {
      "command": "uvx",
      "args": [
        "mtg-mcp-server"
      ]
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "j4th-mtg-mcp-server": {
      "command": "uvx",
      "args": [
        "mtg-mcp-server"
      ]
    }
  }
}
# add to Codex CLI
codex mcp add j4th-mtg-mcp-server -- uvx mtg-mcp-server
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "j4th-mtg-mcp-server": {
      "type": "local",
      "command": [
        "uvx",
        "mtg-mcp-server"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add j4th-mtg-mcp-server --command uvx --arg mtg-mcp-server
# ~/.hermes/config.yaml
mcp_servers:
  j4th-mtg-mcp-server:
    command: "uvx"
    args: ["mtg-mcp-server"]
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "j4th-mtg-mcp-server": {
      "Transport": "stdio",
      "Command": "uvx",
      "Arguments": [
        "mtg-mcp-server"
      ]
    }
  }
}
# add to Vellum
assistant mcp add j4th-mtg-mcp-server -t stdio -c uvx -a mtg-mcp-server
// mcp.json
{
  "mcpServers": {
    "j4th-mtg-mcp-server": {
      "command": "uvx",
      "args": [
        "mtg-mcp-server"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 14 Sept 26 −15
    • Malware scan: pass → unverified security
  • 13 Sept 26 +15
    • Malware scan: unverified → pass security
  • 11 Sept 26 −15
    • Malware scan: pass → unverified security
  • 1 Sept 26 −13
    • Stability: 0.87 → unverified security
    • MCP protocol: Implements a current MCP spec version (2026-07-28). functional
  • 31 Aug 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.

  • 29 Aug 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 77 to 80. That category is still filling its 30-day observation window: 23 days of observed history at the previous scan, 24 at this one. The score rises as the window fills, whether or not the server changes.

  • 27 Aug 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 70 to 73. That category is still filling its 30-day observation window: 21 days of observed history at the previous scan, 22 at this one. The score rises as the window fills, whether or not the server changes.

  • 26 Aug 26 +1
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 20 Sept 2026 · Analysed pypi/mtg-mcp-server@3.0.0

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem pypi

Background: How many MCP packages publish verified provenance →

Install scripts 1 script
Hook Tier Command
build_backend unreviewed uv_build

Background: Why install scripts are a supply-chain risk →

Dependencies 38 packages
Packages resolved 38
Stale 4
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 69 exposed · ~8,075 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
archetype_comparison ~106

Compare 2-4 competitive archetypes side-by-side. Shows price, colors, key cards, shared staples, and differences.

NameTypeReqDescription
archetypesarrayyes2-4 archetype names to compare (fuzzy matched)
formatstringyesCompetitive format (e.g. 'Modern', 'Legacy', 'Pioneer', 'Pauper')
response_formatstringOutput verbosity: 'detailed' (default) or 'concise'

No output schema declared.

No examples provided.

archetype_decklist ~130

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

NameTypeReqDescription
archetypestringyesArchetype name (e.g. 'Boros Energy', 'Mono-Blue Terror') — fuzzy matched
formatstringyesCompetitive format (e.g. 'Modern', 'Legacy', 'Pioneer', 'Pauper')
response_formatstringOutput verbosity: 'detailed' (default) or 'concise'

No output schema declared.

No examples provided.

budget_upgrade ~125

Suggest budget-friendly upgrades for a commander deck. Ranks EDHREC staples by synergy-per-dollar within the given budget ceiling. Requires EDHREC (for staples) and Scryfall (for prices).

NameTypeReqDescription
budgetnumberyesMaximum price per card in USD (e.g. 5.0 for cards under $5)
commander_namestringyesCommander the deck is built around
num_suggestionsintegerNumber of upgrade suggestions to return
response_formatstringOutput verbosity: 'detailed' (default) or 'concise'

No output schema declared.

No examples provided.

build_around ~141

Find synergistic cards for 1-5 build-around cards in any format. Analyzes oracle text for key mechanics, searches for synergies, and checks combo potential. Groups results by role (enablers, payoffs, support).

NameTypeReqDescription
budgetMaximum price per card in USD
cardsarrayyes1-5 card names to build around
formatstringyesFormat to build for (e.g. 'standard', 'modern', 'commander')
limitintegerMaximum number of suggestions
response_formatstringOutput verbosity: 'detailed' (default) or 'concise'

No output schema declared.

No examples provided.

bulk_ban_list ~62

Get the banned and restricted cards for a format. Returns alphabetically sorted lists of banned and restricted cards, including their type lines.

NameTypeReqDescription
formatstringyesFormat to check ban list for (e.g. 'commander', 'modern', 'standard')

No output schema declared.

No examples provided.

bulk_card_in_formats ~56

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

NameTypeReqDescription
card_namestringyesCard name to check format legality for

No output schema declared.

No examples provided.

bulk_card_lookup ~104

Look up a Magic card by exact name using Scryfall bulk data. Returns full card details including mana cost, type, oracle text, colors, power/toughness, prices, legalities, and EDHREC rank. Case-insensitive.

NameTypeReqDescription
namestringyesCard name for exact lookup, case-insensitive (e.g. 'Sol Ring')
response_formatstringOutput verbosity: 'detailed' (default) or 'concise'

No output schema declared.

No examples provided.

bulk_card_search ~105

Search for Magic cards in Scryfall bulk data.

NameTypeReqDescription
limitintegerMaximum number of results to return
querystringyesSubstring to search for, case-insensitive
response_formatstringOutput verbosity: 'detailed' (default) or 'concise'
search_fieldstringField to search in -- 'name' (card name), 'type' (type line), or 'text' (oracle text)

No output schema declared.

No examples provided.

bulk_format_legality ~95

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

NameTypeReqDescription
cardsarrayyesList of card names to check legality for
formatstringyesFormat to check (e.g. 'commander', 'modern', 'standard', 'legacy')

No output schema declared.

No examples provided.

bulk_format_search ~211

Search for legal cards in a specific format using natural language. Combines format legality filtering with name/type/text search and optional color identity, price, and rarity constraints. Results are sorted by EDHREC rank (most popular first).

NameTypeReqDescription
color_identityColor identity filter (e.g. 'sultai', 'WU', 'red'). Only returns cards within this identity.
formatstringyesFormat to search in (e.g. 'commander', 'modern', 'standard')
limitintegerMaximum results to return
max_priceMaximum USD price filter
querystringyesSearch query -- card name, type, or oracle text substring (e.g. 'flying creatures', 'destroy target')
rarityRarity filter (e.g. 'common', 'uncommon', 'rare', 'mythic')
response_formatstringOutput verbosity: 'detailed' (default) or 'concise'

No output schema declared.

No examples provided.

bulk_format_staples ~241

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

NameTypeReqDescription
card_typeCard type filter (e.g. 'creature', 'instant', 'land')
colorColor identity filter (e.g. 'sultai', 'WU', 'red'). Only returns cards within this identity.
formatstringyesFormat to find staples for (e.g. 'commander', 'modern', 'legacy')
limitintegerMaximum results to return
ranking_modestringHow to rank staples: 'auto' (default) picks the best mode for the format, 'edhrec' uses Commander popularity, 'competitive' uses a mana-efficiency heuristic, 'tournament' uses MTGGoldfish metagame fr…
response_formatstringOutput verbosity: 'detailed' (default) or 'concise'

No output schema declared.

No examples provided.

bulk_random_card ~139

Get a random Magic card, optionally filtered by format, color, type, and rarity. Returns full card details in the same format as card_lookup.

NameTypeReqDescription
card_typeCard type filter (e.g. 'creature', 'instant', 'land')
color_identityColor identity filter (e.g. 'sultai', 'WU', 'red'). Only returns cards within this identity.
formatFormat filter (e.g. 'commander', 'modern'). Only returns legal cards.
rarityRarity filter (e.g. 'common', 'uncommon', 'rare', 'mythic')

No output schema declared.

No examples provided.

bulk_similar_cards ~132

Find cards similar to a given card. Scores similarity based on shared keywords, type words, CMC proximity, and oracle text overlap. Optionally filter by format legality and price.

NameTypeReqDescription
card_namestringyesName of the card to find similar cards for
formatFormat filter (e.g. 'commander', 'modern'). Only returns legal cards.
limitintegerMaximum results to return
max_priceMaximum USD price filter
response_formatstringOutput verbosity: 'detailed' (default) or 'concise'

No output schema declared.

No examples provided.

card_comparison ~111

Compare 2-5 cards side-by-side for a specific commander deck. Shows mana cost, type, synergy, inclusion rate, combo count, and price for each card. Scryfall and Spellbook required; EDHREC optional.

NameTypeReqDescription
cardsarrayyes2-5 card names to compare side-by-side
commander_namestringyesCommander the deck is built around
response_formatstringOutput verbosity: 'detailed' (default) or 'concise'

No output schema declared.

No examples provided.

color_identity_staples ~124

Top cards across ALL commanders in a color identity. Uses EDHREC aggregated data when available, falls back to EDHREC rank from bulk data.

NameTypeReqDescription
categoryCard category filter (e.g. 'creatures', 'instants', 'lands')
color_identitystringyesColor identity (e.g. 'sultai', 'BUG', 'WR', 'mono-red')
limitintegerMaximum number of results
response_formatstringOutput verbosity: 'detailed' (default) or 'concise'

No output schema declared.

No examples provided.

combat_calculator ~116

Calculate combat step-by-step with keyword interactions. Resolves declare attackers → declare blockers → damage steps → state-based actions. Looks up card keywords from bulk data if card names are provided.

NameTypeReqDescription
attackersarrayyesAttacking creature names or descriptions
blockersarrayyesBlocking creature names or descriptions
keywordsAdditional keyword abilities to consider (e.g. 'deathtouch', 'trample')
response_formatstringOutput verbosity: 'detailed' (default) or 'concise'

No output schema declared.

No examples provided.

commander_comparison ~93

Compare 2-5 commanders head-to-head: stats, combos, staples, popularity. Side-by-side comparison table with mana cost, color identity, EDHREC rank, combo count, and shared/unique staples.

NameTypeReqDescription
commandersarrayyes2-5 commander names to compare head-to-head
response_formatstringOutput verbosity: 'detailed' (default) or 'concise'

No output schema declared.

No examples provided.

commander_overview ~99

Comprehensive commander profile combining data from all available sources. Returns card details, top combos, EDHREC staples, and synergy scores. Degrades gracefully if optional sources (EDHREC, Spellbook) are unavailable.

NameTypeReqDescription
commander_namestringyesCommander card name (e.g. 'Muldrotha, the Gravetide')
response_formatstringOutput verbosity: 'detailed' (default) or 'concise'

No output schema declared.

No examples provided.

complete_deck ~131

Identify gaps in a partial decklist and suggest cards to fill them. Analyzes mana curve, card roles, and format-specific ratios, then suggests cards for underrepresented categories.

NameTypeReqDescription
budgetMaximum price per suggested card in USD
commanderCommander name (required for Commander format)
decklistarrayyesPartial decklist — card names already chosen
formatstringyesFormat to build for (e.g. 'standard', 'modern', 'commander')
response_formatstringOutput verbosity: 'detailed' (default) or 'concise'

No output schema declared.

No examples provided.

deck_analysis ~135

Full decklist health check — mana curve, colors, combos, bracket, budget, synergy. Uses all available backends: Scryfall bulk data for rate-limit-free card resolution, Scryfall API as fallback, Spellbook for combos and bracket estimation, EDHREC for synergy scores. Degrades gracefully if optional backends are unavailable.

NameTypeReqDescription
commander_namestringyesCommander the deck is built around
decklistarrayyesList of card names in the deck (99 cards for Commander)
response_formatstringOutput verbosity: 'detailed' (default) or 'concise'

No output schema declared.

No examples provided.

deck_validate ~159

Validate a decklist against a format's construction rules. Checks legality, deck size, copy limits, color identity (Commander), singleton rules, and Pauper rarity. Returns VALID or INVALID with actionable error messages.

NameTypeReqDescription
commanderCommander card name (required for Commander format)
decklistarrayyesCard names, optionally prefixed with quantity (e.g. '4x Lightning Bolt' or 'Lightning Bolt')
formatstringyesFormat to validate against (e.g. 'commander', 'modern', 'standard', 'legacy')
response_formatstringOutput verbosity: 'detailed' (default) or 'concise'
sideboardSideboard card names, same format as decklist

No output schema declared.

No examples provided.

draft_archetype_stats ~141

Get win rates by color pair/archetype for a draft set. Note: start_date and end_date are required by the 17Lands API.

NameTypeReqDescription
end_datestringyesEnd date in YYYY-MM-DD format (required by 17Lands API)
event_typestringDraft format — 'PremierDraft' (default) or 'TradDraft'
set_codestringyesThree-letter set code (e.g. 'LCI', 'MKM', 'OTJ', 'BLB')
start_datestringyesStart date in YYYY-MM-DD format (required by 17Lands API)

No output schema declared.

No examples provided.

draft_card_ratings ~214

Get win rate and draft performance data for cards in a set. Key metrics: GIH WR (ever_drawn_win_rate), ALSA (avg_seen), OH WR (opening_hand_win_rate), IWD (drawn_improvement_win_rate). Note: 17Lands data skews toward above-average players (~56% baseline WR). Cards with <500 games may not have reliable data.

NameTypeReqDescription
event_typestringDraft format — 'PremierDraft' (default) or 'TradDraft'
limitintegerMax cards to return (default 50, 0 for all)
response_formatstringOutput verbosity: 'detailed' (default) or 'concise'
set_codestringyesThree-letter set code (e.g. 'LCI', 'MKM', 'OTJ', 'BLB')
sort_bystringSort order: 'gih_wr' (default), 'alsa', 'iwd', 'name'

No output schema declared.

No examples provided.

draft_log_review ~136

Review a completed draft — pick-by-pick GIH WR analysis and key decision points. Identifies where you could have taken a higher-WR card, pivot points, and overall draft grade.

NameTypeReqDescription
final_deckFinal deck submitted — enables 'made the deck' analysis
picksarrayyesCards drafted in order (pack 1 pick 1 through pack 3 pick 14)
response_formatstringOutput verbosity: 'detailed' (default) or 'concise'
set_codestringyesThree-letter set code (e.g. 'LCI', 'MKM')

No output schema declared.

No examples provided.

draft_pack_pick ~136

Rank cards in a draft pack using 17Lands win rate data. Provides GIH WR, ALSA, IWD stats, and color fit analysis based on current picks. Requires 17Lands to be enabled.

NameTypeReqDescription
current_picksCards already drafted — enables color fit analysis when provided
packarrayyesList of card names currently in the draft pack
response_formatstringOutput verbosity: 'detailed' (default) or 'concise'
set_codestringyesThree-letter set code for the draft format (e.g. 'LCI', 'MKM')

No output schema declared.

No examples provided.

draft_signal_read ~118

Analyze draft picks and recommend a direction based on color signals. Uses ALSA data to detect which colors are open (cards seen later than expected = open).

NameTypeReqDescription
current_packCurrent pack contents — if provided, cards are ranked with signal context
picksarrayyesCards already drafted, in pick order
response_formatstringOutput verbosity: 'detailed' (default) or 'concise'
set_codestringyesThree-letter set code (e.g. 'LCI', 'MKM')

No output schema declared.

No examples provided.

edhrec_card_synergy ~96

Get synergy data for a specific card with a specific commander. Shows how synergistic the card is with the commander compared to its general popularity, plus how many decks include it.

NameTypeReqDescription
card_namestringyesCard to check synergy for (e.g. 'Spore Frog')
commander_namestringyesCommander to check synergy against (e.g. 'Muldrotha, the Gravetide')

No output schema declared.

No examples provided.

edhrec_commander_staples ~160

Get the most-played cards for a commander with synergy scores and inclusion rates. Shows which cards are most commonly played with this commander and how synergistic they are (vs. generic popularity).

NameTypeReqDescription
categoryFilter by card type: 'creatures', 'enchantments', 'artifacts', 'instants', 'sorceries', 'lands', 'planeswalkers'
commander_namestringyesFull commander name (e.g. 'Muldrotha, the Gravetide')
limitintegerMax cards per category (default 10, 0 for all)
response_formatstringOutput verbosity: 'detailed' (default) or 'concise'

No output schema declared.

No examples provided.

evaluate_upgrade ~114

Assess whether a card is worth adding to a specific commander deck. Returns card details, price, synergy score, and combos enabled for the caller to assess. Degrades gracefully if optional sources (EDHREC, Spellbook) are unavailable.

NameTypeReqDescription
card_namestringyesCard to evaluate for the deck (e.g. 'Spore Frog')
commander_namestringyesCommander the deck is built around
response_formatstringOutput verbosity: 'detailed' (default) or 'concise'

No output schema declared.

No examples provided.

format_entry_guide ~113

Get a beginner-oriented guide for entering a competitive format. Shows archetypes sorted by budget accessibility, cross-archetype staples (buy once, play everywhere), and format rules summary.

NameTypeReqDescription
budgetMax budget in USD — filters archetypes to this price ceiling
formatstringyesCompetitive format (e.g. 'Modern', 'Legacy', 'Pioneer', 'Pauper')
response_formatstringOutput verbosity: 'detailed' (default) or 'concise'

No output schema declared.

No examples provided.

goldfish_archetype_list ~119

Get a sample decklist for an archetype in a format. Returns deck metadata (author, event, result, date) and the full mainboard and sideboard card list.

NameTypeReqDescription
archetypestringyesArchetype name (e.g. 'Boros Energy', 'Azorius Control')
formatstringyesMTG format name (e.g. 'Modern', 'Legacy', 'Pioneer')
response_formatstringOutput verbosity: 'detailed' (default) or 'concise'

No output schema declared.

No examples provided.

goldfish_deck_price ~112

Get the estimated paper price for an archetype deck. Returns the total estimated cost of the deck based on current card prices from MTGGoldfish.

NameTypeReqDescription
archetypestringyesArchetype name (e.g. 'Boros Energy', 'Azorius Control')
formatstringyesMTG format name (e.g. 'Modern', 'Legacy', 'Pioneer')
response_formatstringOutput verbosity: 'detailed' (default) or 'concise'

No output schema declared.

No examples provided.

goldfish_format_staples ~111

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

NameTypeReqDescription
formatstringyesMTG format name (e.g. 'Modern', 'Legacy', 'Pioneer')
limitintegerMaximum number of staples to return (default 20)
response_formatstringOutput verbosity: 'detailed' (default) or 'concise'

No output schema declared.

No examples provided.

goldfish_metagame ~92

Get the current metagame breakdown for a competitive format. Shows top archetypes with meta share percentages, deck counts, and estimated paper prices.

NameTypeReqDescription
formatstringyesMTG format name (e.g. 'Modern', 'Legacy', 'Pioneer', 'Pauper')
response_formatstringOutput verbosity: 'detailed' (default) or 'concise'

No output schema declared.

No examples provided.

keyword_explain ~89

Explain an MTG keyword with rules text, examples, and interactions. Returns the rules definition, reminder text, and up to 5 example cards from bulk data.

NameTypeReqDescription
keywordstringyesMTG keyword to explain (e.g. 'trample', 'deathtouch')
response_formatstringOutput verbosity: 'detailed' (default) or 'concise'

No output schema declared.

No examples provided.

metagame_snapshot ~102

Get the current metagame breakdown for a competitive format. Shows top archetypes with meta share %, tier classification, and prices. Uses MTGGoldfish as primary source with Spicerack tournament data as fallback.

NameTypeReqDescription
formatstringyesCompetitive format (e.g. 'Modern', 'Legacy', 'Pioneer', 'Pauper')
response_formatstringOutput verbosity: 'detailed' (default) or 'concise'

No output schema declared.

No examples provided.

moxfield_deck_info ~88

Get metadata for a Moxfield deck (name, format, author, dates). Returns deck metadata without the full card list. Use ``decklist`` for the complete card list.

NameTypeReqDescription
deck_idstringyesMoxfield deck ID or full URL (e.g. 'abc123' or 'https://www.moxfield.com/decks/abc123')

No output schema declared.

No examples provided.

moxfield_decklist ~91

Fetch a full decklist from Moxfield by deck ID or URL. Returns the complete decklist organized by board (commanders, mainboard, sideboard, companions) with card names and quantities.

NameTypeReqDescription
deck_idstringyesMoxfield deck ID or full URL (e.g. 'abc123' or 'https://www.moxfield.com/decks/abc123')

No output schema declared.

No examples provided.

moxfield_search_decks ~137

Search public Moxfield decks by format, keyword, or sort order. Returns a paginated list of deck summaries with name, format, author, colors, and card counts.

NameTypeReqDescription
formatFormat filter (e.g. 'pauper', 'commander', 'modern'). Leave empty for all formats.
pageintegerPage number (1-indexed)
page_sizeintegerResults per page (max 100)
queryOptional search text to filter decks by name or description
sortstringSort order: 'Updated', 'Created', or 'Views'

No output schema declared.

No examples provided.

moxfield_user_decks ~73

List a user's public decks on Moxfield. Verifies the user exists, then searches for their public decks. Optionally filter by format.

NameTypeReqDescription
formatOptional format filter (e.g. 'commander', 'modern')
usernamestringyesMoxfield username to look up

No output schema declared.

No examples provided.

ping ~14

Health check — returns 'pong'.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

precon_upgrade ~112

Analyze and upgrade a Commander precon — identify weakest cards, suggest replacements. Pairs each upgrade with a specific cut, explaining the synergy improvement.

NameTypeReqDescription
budgetnumberMaximum price per upgrade card in USD
commanderstringyesCommander card name
decklistarrayyesFull precon decklist — card names
num_upgradesintegerNumber of upgrade suggestions
response_formatstringOutput verbosity: 'detailed' (default) or 'concise'

No output schema declared.

No examples provided.

price_comparison ~77

Compare prices across multiple cards using Scryfall bulk data. Returns a markdown table with USD, USD foil, and EUR prices sorted by USD descending.

NameTypeReqDescription
cardsarrayyes2-20 card names to compare prices
response_formatstringOutput verbosity: 'detailed' (default) or 'concise'

No output schema declared.

No examples provided.

rotation_check ~82

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

NameTypeReqDescription
cardsCard names to check for rotation — omit for general rotation info
response_formatstringOutput verbosity: 'detailed' (default) or 'concise'

No output schema declared.

No examples provided.

rules_interaction ~82

Explain how two mechanics or cards interact under MTG rules. Returns relevant rules, step-by-step resolution, and common misconceptions.

NameTypeReqDescription
mechanic_astringyesFirst mechanic or card name
mechanic_bstringyesSecond mechanic or card name
response_formatstringOutput verbosity: 'detailed' (default) or 'concise'

No output schema declared.

No examples provided.

rules_lookup ~106

Look up MTG Comprehensive Rules by number or keyword search. Returns matching rules with full text, parent context, and subrules.

NameTypeReqDescription
querystringyesRule number (e.g. '704.5k') or keyword to search for
response_formatstringOutput verbosity: 'detailed' (default) or 'concise'
sectionNarrow search to a section (e.g. 'combat', 'stack', 'lands', 'state-based')

No output schema declared.

No examples provided.

rules_scenario ~78

Resolve a game scenario step-by-step using MTG rules. Covers priority, stack resolution, state-based actions, and triggers with rule citations.

NameTypeReqDescription
response_formatstringOutput verbosity: 'detailed' (default) or 'concise'
scenariostringyesGame scenario to resolve (describe the board state and action)

No output schema declared.

No examples provided.

scryfall_card_details ~108

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

NameTypeReqDescription
fuzzybooleanUse fuzzy matching for approximate names (e.g. 'muldrotha' finds 'Muldrotha, the Gravetide')
namestringyesCard name — exact match by default (e.g. 'Muldrotha, the Gravetide')
response_formatstringOutput verbosity: 'detailed' (default) or 'concise'

No output schema declared.

No examples provided.

scryfall_card_price ~40

Get current prices for a Magic card. Prices update once per day.

NameTypeReqDescription
namestringyesCard name for price lookup (exact match)

No output schema declared.

No examples provided.

scryfall_card_rulings ~43

Get official rulings and clarifications for a Magic card.

NameTypeReqDescription
namestringyesCard name to get official rulings for (exact match)

No output schema declared.

No examples provided.

Common questions

What is the MTG MCP Server server?

MTG MCP Server is listed in the public MCP registry as io.github.j4th/mtg-mcp-server. Magic: The Gathering card search, combo lookup, draft analytics, and Commander tools. This page covers its PyPI package (mtg-mcp-server).

Is the MTG MCP Server server safe to use?

MTG MCP Server scores 53 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 20 September 2026. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the MTG MCP Server server expose?

MTG MCP Server exposes 69 tools: ping, scryfall_search_cards, scryfall_card_details, scryfall_card_price, scryfall_card_rulings, and 64 more. Their descriptions and schemas cost roughly 8,075 tokens of context every time the server is loaded.

Is the MTG MCP Server server still maintained?

MTG MCP Server is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.