Scryfall · Capability

Scryfall Sets

Scryfall Sets capability — list and retrieve Magic: The Gathering set metadata by code, Scryfall ID, or TCGplayer groupId. 4 operations. Lead operation: List Sets.

Run with Naftiko ScryfallSetsMagic The Gathering

What You Can Do

GET
Listsets — List Sets
/v1/sets
GET
Getsetbycode — Get a Set by Code
/v1/sets/{code}

MCP Tools

list-sets

List every Magic - The Gathering set known to Scryfall.

read-only idempotent
get-set-by-code

Retrieve a Magic set by its three-to-five-letter set code.

read-only idempotent
get-set-by-scryfall-id

Retrieve a Magic set by its Scryfall ID.

read-only idempotent
get-set-by-tcgplayer-id

Retrieve a Magic set by its TCGplayer groupId.

read-only idempotent

Capability Spec

scryfall-sets.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Scryfall Sets
  description: 'Scryfall Sets capability — list and retrieve Magic: The Gathering set metadata by code, Scryfall ID, or TCGplayer groupId. 4 operations. Lead operation: List Sets.'
  tags:
    - Scryfall
    - Sets
    - Magic The Gathering
  created: '2026-05-29'
  modified: '2026-05-29'
binds:
  - namespace: env
    keys:
      SCRYFALL_USER_AGENT: SCRYFALL_USER_AGENT
capability:
  consumes:
    - type: http
      namespace: scryfall-sets
      baseUri: https://api.scryfall.com
      description: Scryfall Sets business capability.
      resources:
        - name: sets
          path: /sets
          operations:
            - name: listsets
              method: GET
              description: List Sets
              outputRawFormat: json
              outputParameters:
                - { name: result, type: object, value: $. }
        - name: sets-code
          path: /sets/{code}
          operations:
            - name: getsetbycode
              method: GET
              description: Get a Set by Code
              outputRawFormat: json
              outputParameters:
                - { name: result, type: object, value: $. }
        - name: sets-tcgplayer-id
          path: /sets/tcgplayer/{id}
          operations:
            - name: getsetbytcgplayerid
              method: GET
              description: Get a Set by TCGplayer ID
              outputRawFormat: json
              outputParameters:
                - { name: result, type: object, value: $. }
        - name: sets-id
          path: /sets/{id}
          operations:
            - name: getsetbyscryfallid
              method: GET
              description: Get a Set by Scryfall ID
              outputRawFormat: json
              outputParameters:
                - { name: result, type: object, value: $. }
      authentication:
        type: header
        key: User-Agent
        value: '{{env.SCRYFALL_USER_AGENT}}'
        placement: header
  exposes:
    - type: rest
      namespace: scryfall-sets-rest
      port: 8080
      description: REST adapter for Scryfall Sets.
      resources:
        - path: /v1/sets
          name: sets
          operations:
            - method: GET
              name: listsets
              description: List Sets
              call: scryfall-sets.listsets
              outputParameters:
                - { type: object, mapping: $. }
        - path: /v1/sets/{code}
          name: sets-code
          operations:
            - method: GET
              name: getsetbycode
              description: Get a Set by Code
              call: scryfall-sets.getsetbycode
              outputParameters:
                - { type: object, mapping: $. }
    - type: mcp
      namespace: scryfall-sets-mcp
      port: 9090
      transport: http
      description: MCP adapter for Scryfall Sets.
      tools:
        - name: list-sets
          description: List every Magic - The Gathering set known to Scryfall.
          hints: { readOnly: true, destructive: false, idempotent: true }
          call: scryfall-sets.listsets
          outputParameters:
            - { type: object, mapping: $. }
        - name: get-set-by-code
          description: Retrieve a Magic set by its three-to-five-letter set code.
          hints: { readOnly: true, destructive: false, idempotent: true }
          call: scryfall-sets.getsetbycode
          outputParameters:
            - { type: object, mapping: $. }
        - name: get-set-by-scryfall-id
          description: Retrieve a Magic set by its Scryfall ID.
          hints: { readOnly: true, destructive: false, idempotent: true }
          call: scryfall-sets.getsetbyscryfallid
          outputParameters:
            - { type: object, mapping: $. }
        - name: get-set-by-tcgplayer-id
          description: Retrieve a Magic set by its TCGplayer groupId.
          hints: { readOnly: true, destructive: false, idempotent: true }
          call: scryfall-sets.getsetbytcgplayerid
          outputParameters:
            - { type: object, mapping: $. }