万智牌卡牌与套牌MCP服务器

Mystic Forge 是一个面向万智牌玩家的统一 MCP 服务器,整合卡牌搜索与价格、指挥官推荐、套牌读取与校验、预组套牌导出、金鱼模拟及规则查询等功能,适用于卡牌查询、套牌构建、价格追踪和规则检索等场景。

  • by Kautiontape
  • Python
  • 混合部署
  • 更新于
在 GitHub 查看 Kautiontape/mystic-forge

使用说明

Mystic Forge

A unified MCP (Model Context Protocol) server for Magic: The Gathering. Combines Scryfall card search & pricing, EDHRec commander recommendations, Archidekt deck reading, and decklist validation into a single server.

Tools

Scryfall — Card Search & Pricing

Tool Description
scryfall_search Full Scryfall query syntax search
scryfall_named Look up a card by name (exact + fuzzy)
scryfall_random Random card with optional filter
scryfall_price Prices per printing; pin one with set code + collector number, filter by finish
scryfall_price_list Price a decklist at the printing and finish on each line
scryfall_card_text Exact oracle text for a whole list of cards in one call

EDHRec — Commander Recommendations

Tool Description
edhrec_commander Top card recommendations for a commander
edhrec_average_deck Average decklist for a commander
edhrec_precon_upgrade Community cut/added cards for a precon (real add %, ranked cuts)
edhrec_combos Popular combo lines
edhrec_top_cards Trending cards by period and color
edhrec_recommendations Personalized suggestions given your current cards
edhrec_salt Saltiest (most hated) cards

Archidekt — Deck Reading

Tool Description
archidekt_deck Fetch a public deck by ID or URL (include_text adds full oracle text)
archidekt_user_decks List a user's public decks
archidekt_export Export deck as importable card list

Validation

Tool Description
validate_decklist Verify card names, deck size, and color identity
validate_archidekt_deck Full validation of an Archidekt deck including categories

Precon Decks (MTGJSON + EDHRec)

Tool Description
precon_search Search official precons by name or set code (MTGJSON)
precon_decklist Full official contents of a precon (MTGJSON)
precon_export Export a precon in Archidekt import format
precon_diff Exact cut/added cards between a precon and a specific deck

Goldfish — Deck Simulation

Tool Description
goldfish_annotate Pre-flight a deck: auto-derive card effects, list only the cards needing a manual annotation
goldfish_run Seeded Monte Carlo goldfish stats with 95% CIs and an honesty report
goldfish_ab Paired A/B of two lists: per-metric deltas ± CI with significance flags
goldfish_odds Exact hypergeometric draw odds (flat or multi-group joint)
goldfish_report Self-contained HTML report of a stored run, rendered verbatim from its metrics
goldfish_start Start an interactive seeded game (or resume one from a state blob)
goldfish_step Advance an interactive game: policy step, explicit action, or fast-forward
goldfish_state Current state and legal actions of an interactive game

Workflow: run goldfish_annotate on the deck first — it auto-derives what the engine models on its own and hands back the short list of cards that need a manual annotation. Pass those annotations to goldfish_run (or goldfish_ab for a paired swap comparison), then publish the numbers with goldfish_report — reports are rendered from the stored run's metrics, never hand-authored. Goldfish sims measure speed and consistency only; they cannot value interaction. For hosted reports, set GOLDFISH_REPORT_DIR to persist each run's HTML (served at /goldfish/r/<run_code>), and GOLDFISH_PUBLIC_BASE_URL to have run outputs include the public report link; leave both unset and reports are served from memory via goldfish_report only.

Comprehensive Rules

Tool Description
rules_get Exact CR text by rule number (702.2b) or keyword/glossary term
rules_search Ranked full-text search over rules and glossary

Quick Start

Docker

docker compose up -d

The server runs at http://localhost:8000/mcp (streamable HTTP transport).

Connect to Claude Code

Add to ~/.claude/settings.local.json:

{
  "mcpServers": {
    "mystic-forge": {
      "type": "url",
      "url": "http://localhost:8000/mcp"
    }
  }
}

Connect to Claude.ai

Add as a Custom Connection with the URL http://localhost:8000/mcp.

stdio mode

python server.py --stdio

Self-Hosting with Private Archidekt Decks

Archidekt does not support OAuth, so private deck access requires your credentials. Create a .env file:

cp .env.example .env
# Edit .env with your Archidekt username and password

Important: Never deploy credentials on a shared/public server. Private deck access is for self-hosted instances only.

MYSTIC_FORGE_CR is optional: it sets where the auto-refreshed Comprehensive Rules cache is written; it defaults to the working directory.

Price watchlist

Personal MTG price watchlists with 120 days of daily MTGJSON history plus weekly averages further back — the server keeps its own price store, so history outlives MTGJSON's rolling ~90-day window. Lists are identified by a passphrase (shown once at watchlist_create, or forged by hand at https://mcp.kautiontape.com/mtg/w/new): use it in a personal connector URL (https://mcp.kautiontape.com/mtg/mcp/<passphrase>) or pass it to tools in chat. Share codes (SC-…) grant read-only viewing at https://mcp.kautiontape.com/mtg/s/<code>. Every change is an append-only event — see the full chain at https://mcp.kautiontape.com/mtg/w/<passphrase> and recover any revision with watchlist_clone(at_seq=N) (mints a new passphrase). Prices ingest nightly from MTGJSON (tcgplayer/cardkingdom/cardmarket/manapool retail). A card's price basis is the cheapest of the USD shops unless it is pinned to one market; targets are judged on the basis. A target is a fixed price or a rule — low follows the historic low, low-10% stays 10% under it, -20% resolves to 20% under today's price — written after @ in bulk adds and imports. The board exports 1 Card Name lists straight into TCGplayer Mass Entry, the Card Kingdom deck builder, or Mana Pool, and imports them back. Health: GET /health.

Data Sources

  • Scryfall — Card data and prices (updated daily from TCGPlayer, Cardmarket, Cardhoarder)
  • EDHRec — Commander metagame data and recommendations
  • Archidekt — Deck building and storage
  • MTGJSON — Daily price history and printing/uuid mapping for the watchlist

License

MIT