360 Secure SkillHub
360 安全技能中心

scryfall-card

使用 Scryfall 公开 API 与自带 Python 脚本,按名称、类型、颜色、法术力、文本或系列等条件检索万智牌卡牌,返回卡牌名称、文本、图片链接、价格、合法性与随机卡等信息,并附完整搜索语法参考。

santidev95
santidev95
热度 78.99
最近更新 2026-05-11 15:53:49
分类:搜索依赖:第三方 API / 代码执行应用场景:API 集成 / 研究

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add scryfall-card
Metadata
name
scryfall-mtg
description
Search 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.

Scryfall MTG Card Search

Search for Magic: The Gathering cards using the Scryfall API.

API Overview

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).

Core Endpoints

Search Cards

GET /cards/search?q={query}

Parameters:

  • q (required): Fulltext search query
  • unique: cards|art|prints (default: cards)
  • order: name|set|released|rarity|color|usd|tix|eur|cmc|power|toughness|edhrec|penny|artist|review
  • dir: auto|asc|desc
  • page: Page number for pagination

Named Card Lookup

GET /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.

Random Card

GET /cards/random
GET /cards/random?q={query}

Card by ID

GET /cards/{id}
GET /cards/{set_code}/{collector_number}

Autocomplete

GET /cards/autocomplete?q={partial_name}

Returns up to 20 card name suggestions.

Search Syntax Reference

See references/search_syntax.md for the complete search syntax guide.

Quick examples:

  • c:red pow=3 - Red cards with power 3
  • t:merfolk t:legend - Legendary merfolk
  • o:"draw a card" - Cards with "draw a card" in text
  • cmc=3 r:rare - 3-mana rares
  • e:dom - Cards from Dominaria
  • f:standard - Standard legal cards
  • usd<1 - Cards under $1

Implementation

Use 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.

Card Object Key Fields

When displaying card info, prioritize these fields:

  • name, mana_cost, type_line
  • oracle_text, power, toughness
  • image_uris.normal (for card image)
  • prices.usd, prices.usd_foil
  • legalities (format legality)
  • set_name, rarity

For double-faced cards, check card_faces array.

Error Handling

  • 404: Card not found
  • 422: Invalid search query
  • 429: Rate limited (wait and retry)

Always validate responses have object field; if object: "error", check details for message.