mcp-scryfall
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SCRYFALL_CONTACT | No | Optional email contact to include in User-Agent per Scryfall API guidelines |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| card_namedA | Exact-name lookup of a Magic card. Returns the full Scryfall card object (oracle_text, mana_cost, type_line, P/T, legalities, etc.) on a hit. A miss (no card by that exact name) surfaces as an error carrying Scryfall's details; try card_fuzzy instead. Use when the caller has the exact card name. |
| card_fuzzyA | Fuzzy-name lookup of a Magic card. Handles typos, partial names, and alternate spellings. Returns the full card object; no close match surfaces as an error carrying Scryfall's details. Use when the caller's spelling may be wrong or incomplete. |
| card_searchA | Scryfall query-syntax search (e.g. 'is:fetchland t:land', 'c:rb cmc<=2 t:creature', 'o:"draw a card" pow=1'). Returns compact per-card summaries plus total_cards/has_more by default to keep responses small; pass full:true for the raw Scryfall response. A query that matches no cards is NOT an empty list — Scryfall answers it with a 404, which surfaces as an error carrying Scryfall's details. That error is the answer 'no cards match'; do not retry it as a tool failure. Full syntax: https://scryfall.com/docs/syntax |
| card_collectionA | Batch lookup of many cards in one call (POST /cards/collection) — use this for decklists instead of one card_named call per card. Identifiers are exact-name strings (not fuzzy) and/or Scryfall identifier objects: {name}, {id}, {name, set}, {set, collector_number}. Scryfall caps one POST at 75 identifiers; longer lists are chunked into sequential rate-limited POSTs transparently. Returns {requested, found, not_found, data}: check not_found — it lists the identifiers Scryfall could not resolve. data holds compact summaries (with oracle_text) by default; pass full:true for raw card objects. |
| card_randomA | A random Magic card. An optional q= filter uses the same Scryfall query syntax as card_search. Returns the full card object. |
| card_rulingsA | Official Wizards/Scryfall rulings for one card — the errata and corner-case answers that are not in the oracle text. Give an exact name (resolved via an exact lookup first) or a Scryfall card id to skip that hop. Returns Scryfall's rulings list {object:'list', data:[{published_at, comment, source}]}; empty data means the card has no rulings, which is itself an answer. |
| bulk_defaultA | List Scryfall bulk-data endpoints. Returns an array of items carrying type, name, updated_at, compressed_size and jsonl_download_uri; the caller fetches jsonl_download_uri directly. Payloads are gzipped JSONL — one card object per line, not a single JSON array. Useful for offline corpus building. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 7 tools
Each tool targets a distinct lookup mode: exact name, fuzzy name, query search, batch collection, random, rulings, and bulk data. Even the two name-based lookups are clearly separated by exact vs. fuzzy intent, and the descriptions explicitly call out when to use which.
Six of seven tools follow a consistent 'card_' prefix and snake_case naming (card_named, card_fuzzy, card_search, card_collection, card_random, card_rulings). The outlier 'bulk_default' breaks the prefix pattern, but it's still readable and the rest form a clear family.
Seven tools is well-scoped for a card-database server: single-card lookups, search, batch, random, rulings, and bulk data. Each tool earns its place with a distinct function, and the count is neither thin nor overwhelming.
Core card access is fully covered: exact/fuzzy lookup, query search, batch decklist resolution, rulings, random, and bulk corpus download. Minor gaps exist (e.g., no direct set/expansion list or card-by-ID endpoint), but these are workarounds via card_collection or card_search, and the typical Scryfall workflows are complete.