Scryfall
БесплатноНе проверенProvides access to Magic: The Gathering card data via Scryfall API, including search, rulings, sets, and local deck management with multi-owner support.
Описание
Provides access to Magic: The Gathering card data via Scryfall API, including search, rulings, sets, and local deck management with multi-owner support.
README
An MCP server that wraps the Scryfall API and gives any agent full access to Magic: The Gathering card data — search, rulings, sets, symbols, catalogs, and local deck management with multi-owner support.
Works with Claude Desktop, Pi, Hermes, Cursor, Claude Code, or any MCP client.
What you get
28 tools. Full Scryfall API coverage — search, rulings, sets, symbols, catalogs, bulk data, migrations, plus local deck management with multi-owner support, export/import, and card caching.
| Area | Tools |
|---|---|
| Card lookup | search_cards, get_card, autocomplete_card, get_random_cards, get_cards_collection |
| Card display | Shows all faces (transform/adventure/battle), tokens/related cards, game changer flags, EDHREC rank, purchase links, preview info |
| Rulings | get_card_rulings |
| Sets | list_sets, get_set |
| Symbols | list_card_symbols, parse_mana_cost |
| Catalogs | get_catalog (creature types, keywords, artists — every canonical list) |
| API data | list_bulk_data, get_bulk_data, list_card_migrations, get_related_cards |
| Deck CRUD | create_deck, list_decks, get_deck, update_deck, delete_deck, search_decks |
| Deck cards | add_card_to_deck, remove_card_from_deck |
| Deck analysis | analyze_deck, validate_deck |
| Format rules | get_format_rules (13 formats with per-format validation) |
| Export/Import | export_deck (MTGA/Archidekt format), import_deck_from_text (bulk add from text) |
Decks live as JSON files at ~/.config/scryfall-mcp/decks/. Each deck has an owner field — multiple people can manage their own decks from the same server.
Card data is cached locally at ~/.config/scryfall-mcp/cache/cards/ so repeated lookups (same card, same session or across sessions) cost zero API calls. The cache has a 24-hour TTL.
Both paths live outside your repo clone — updating the code or switching branches won't touch your data.
Quick start
git clone <repo-url> scryfall-mcp
cd scryfall-mcp
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
python server.py
That's it. The server starts on stdio, which is what most MCP clients expect.
Connecting
Claude Desktop
Add to claude_desktop_config.json:
{
"mcpServers": {
"scryfall": {
"command": "python3",
"args": ["/absolute/path/to/scryfall-mcp/server.py"]
}
}
}
Pi
Add to your Pi settings.json (global or project-local):
{
"mcpServers": {
"scryfall": {
"command": "python3",
"args": ["/absolute/path/to/scryfall-mcp/server.py"]
}
}
}
Then /reload Pi.
Hermes
Same pattern — point your Hermes MCP config at the server script.
Any MCP client via Python
from mcp import ClientSession, StdioServerParameters
from mcp.client.stdio import stdio_client
server_params = StdioServerParameters(
command="python3",
args=["/path/to/scryfall-mcp/server.py"],
)
async with stdio_client(server_params) as (read, write):
async with ClientSession(read, write) as session:
await session.initialize()
result = await session.call_tool("search_cards", {
"query": "c:red t:instant cmc<=2",
})
print(result.content[0].text)
Search syntax (the part you'll use most)
Scryfall's search is powerful. Here's the cheat sheet:
c:red Color
t:instant Type
o:"draw a card" Oracle text
m:{U}{U} Mana cost
pow>=4 Power
tou<=2 Toughness
s:mkm Set code
f:standard Format legality
id:ub Color identity
r:mythic Rarity
year:2024 Release year
is:transform Layout flag
-t:creature Negation
(t:instant OR t:sorcery) Grouping
Combine freely. c:red t:instant cmc<=1 = cheap red instants.
Deck management
Decks are stored as JSON files in ~/.config/scryfall-mcp/decks/. One file per deck.
# Create a deck
python -c "
import asyncio
from mcp import ClientSession, StdioServerParameters
from mcp.client.stdio import stdio_client
async def run():
async with stdio_client(StdioServerParameters(command='python3', args=['server.py'])) as (r, w):
async with ClientSession(r, w) as s:
await s.initialize()
r = await s.call_tool('create_deck', {
'name': 'My Deck',
'owner': 'zg',
'format': 'commander'
})
print(r.content[0].text)
asyncio.run(run())
"
Or just use the tools directly from your agent — that's the whole point.
Export to MTG Arena / Archidekt
# Export a deck in MTGA format (importable into Arena, Archidekt, Moxfield)
python -c "
import asyncio
from mcp import ClientSession, StdioServerParameters
from mcp.client.stdio import stdio_client
async def run():
async with stdio_client(StdioServerParameters(command='python3', args=['server.py'])) as (r, w):
async with ClientSession(r, w) as s:
await s.initialize()
r = await s.call_tool('export_deck', {
'deck_id': '<deck-uuid>',
'format': 'mtga'
})
print(r.content[0].text)
asyncio.run(run())
"
Output:
// My Deck
// Format: commander
// Cards: 100 main + 1 side
// Mainboard
1 Krenko, Mob Boss (JMP) 338
20 Mountain (SLD) 432
4 Lightning Bolt (M10) 123
...
Sideboard
2 Pyroblast (EMA) 141
Import from MTGA text
Paste a deck list into an existing deck:
python -c "... call import_deck_from_text with:
deck_id: '<deck-uuid>'
text: |
4 Lightning Bolt (M10) 123
20 Mountain
Sideboard
2 Disenchant
"
Options
python server.py --transport sse --port 8000 # HTTP mode
python server.py --decks-dir ~/Dropbox/my-decks # Custom deck location
Default transport is stdio. Default deck directory is ~/.config/scryfall-mcp/decks/.
Default card cache is ~/.config/scryfall-mcp/cache/.
License
MIT. Scryfall data belongs to Scryfall LLC. Magic: The Gathering belongs to Wizards of the Coast.
Установка Scryfall
У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.
▸ github.com/as3k/scryfall-mcpFAQ
Scryfall MCP бесплатный?
Да, Scryfall MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для Scryfall?
Нет, Scryfall работает без API-ключей и переменных окружения.
Scryfall — hosted или self-hosted?
Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.
Как установить Scryfall в Claude Desktop, Claude Code или Cursor?
Открой Scryfall на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
GitHub
PRs, issues, code search, CI status
автор: GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
автор: mcpdotdirectCompare Scryfall with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории development
