Scryfall MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
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
Server capabilities have not been inspected yet.
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| search_cardsA | Search for MTG cards by a text query, e.g. 'oracle text includes: draw cards'. Returns a list of matching cards (with basic fields: name, set, collector_number, ID). If no matches are found, returns an error message from Scryfall. |
| get_card_by_idA | Retrieve a card by its Scryfall ID (a 36-char UUID). Returns the card data in JSON. |
| get_card_by_nameA | Retrieve a card by its exact English name, e.g. 'Black Lotus'. Returns the card data in JSON. If multiple cards share that exact name, Scryfall returns one (usually the most relevant printing). |
| random_cardA | Retrieve a random Magic card from Scryfall. Returns JSON data for that random card. |
| get_rulingsA | Retrieve official rulings for a specified card by Scryfall ID or Oracle ID. Returns an array of rulings. Each ruling has a 'published_at' date and a 'comment' field. |
| get_prices_by_idA | Retrieve price information for a card by its Scryfall ID. Returns JSON with usd, usd_foil, eur, tix, etc. |
| get_prices_by_nameA | Retrieve price information for a card by its exact name. Returns JSON with usd, usd_foil, eur, tix, etc. |
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
Every tool has a clearly distinct purpose with no ambiguity: get_card_by_id and get_card_by_name are for retrieving card data by different identifiers, get_prices_by_id and get_prices_by_name are for price data by different identifiers, get_rulings is for rulings, random_card is for random cards, and search_cards is for text-based searches. There is no overlap in functionality.
All tool names follow a consistent verb_noun pattern with underscores (snake_case), such as get_card_by_id, get_prices_by_name, and search_cards. The naming is predictable and uniform throughout the set.
With 7 tools, the count is well-scoped for a Scryfall server, covering core operations like retrieving cards by ID/name, getting prices, accessing rulings, fetching random cards, and searching. Each tool earns its place without being excessive or insufficient.
The tool set provides comprehensive coverage for card lookup, pricing, rulings, and search, with no dead ends. A minor gap exists in lacking update/delete operations, but this is reasonable as Scryfall is a read-only API, and agents can work around this for typical query tasks.