Install
openclaw skills install scryfall-cardsSearch and retrieve Magic: The Gathering card data using the Scryfall API. Use this skill when the user asks about MTG cards, wants to search for cards by name, type, color, mana cost, oracle text, set, or any other card attribute. Also use for getting card images, prices, rulings, legality information, or random cards. Triggers include mentions of MTG, Magic, Magic: The Gathering, card names, deck building questions, or requests for card information.
openclaw skills install scryfall-cardsSearch for Magic: The Gathering cards using the Scryfall API.
Base URL: https://api.scryfall.com
Required Headers:
headers = {
"User-Agent": "OpenClawMTGSkill/1.0",
"Accept": "application/json"
}
Rate Limiting: Insert 50-100ms delay between requests (max 10 req/sec).
GET /cards/search?q={query}
Parameters:
q (required): Fulltext search queryunique: cards|art|prints (default: cards)order: name|set|released|rarity|color|usd|tix|eur|cmc|power|toughness|edhrec|penny|artist|reviewdir: auto|asc|descpage: Page number for paginationGET /cards/named?exact={name}
GET /cards/named?fuzzy={name}
Use fuzzy for partial matches (e.g., "jac bele" → "Jace Beleren").
Add &set={code} to limit to specific set.
GET /cards/random
GET /cards/random?q={query}
GET /cards/{id}
GET /cards/{set_code}/{collector_number}
GET /cards/autocomplete?q={partial_name}
Returns up to 20 card name suggestions.
See references/search_syntax.md for the complete search syntax guide.
Quick examples:
c:red pow=3 - Red cards with power 3t:merfolk t:legend - Legendary merfolko:"draw a card" - Cards with "draw a card" in textcmc=3 r:rare - 3-mana rarese:dom - Cards from Dominariaf:standard - Standard legal cardsusd<1 - Cards under $1Use the provided script for common operations:
python3 scripts/scryfall_search.py search "lightning bolt"
python3 scripts/scryfall_search.py named --exact "Black Lotus"
python3 scripts/scryfall_search.py random
python3 scripts/scryfall_search.py random --query "t:dragon"
Or make direct API calls with proper headers and rate limiting.
When displaying card info, prioritize these fields:
name, mana_cost, type_lineoracle_text, power, toughnessimage_uris.normal (for card image)prices.usd, prices.usd_foillegalities (format legality)set_name, rarityFor double-faced cards, check card_faces array.
Always validate responses have object field; if object: "error", check details for message.