Loading languages...
DB

dbeltra/scryfall-mcp

@dbeltra

MCP server for the Scryfall API

mtg
scryfall
magic-the-gathering
card-data

Tests codecov

MCP Server – Scryfall API Interface

This is an MCP server that interfaces with the Scryfall API to fetch and display detailed Magic: The Gathering card data. It supports searching cards by name, color, type, and text content.

Features

  • Search MTG cards via Scryfall by:
    • Card name
    • Color(s)
    • Type line
    • Oracle text
  • Detailed card data output:
    • Oracle text, mana cost, colors
    • Type, power/toughness, rarity
    • Set name
    • Prices in USD/EUR (regular and foil)

Project Setup

This project uses uv for Python environment and dependency management. All dependencies are declared in pyproject.toml.

Requirements

  • Python 3.12+
  • uv (install with cargo install uv)

Installation

uv venv
source .venv/bin/activate  # or `.venv/Scripts/activate` on Windows
uv pip install -r pyproject.toml

Running the project

Running the project with uv run scryfall.py "Atraxa" should display the scryfall results for the Atraxa card in the console, however this is intended to be ran by an MCP host, like Claude Desktop.

Integration with Claude Desktop

Claude Desktop can run the MCP server to interact with the Scryfall API and use the results. You need to install or update to the latest Claude version and create the claude_desktop_config.json file if it doesn't exist yet:

~/Library/Application\\ Support/Claude/claude_desktop_config.json in MacOS $env:AppData\\Claude\\claude_desktop_config.json in Windows

{
    "mcpServers": {
        "scryfall": {
            "command": "/ABSOLUTE/PATH/TO/BIN/uv",
            "args": [
                "--directory",
                "/ABSOLUTE/PATH/TO/mcp-server",
                "run",
                "scryfall.py"
            ]
        }
    }
}

Testing

This project uses pytest for unit testing. Tests are located in the tests/ directory.

Running Tests

To run the full test suite:

pytest

To run a specific test:

pytest tests/test_scryfall.py::test_get_cards_no_query

# mcpServer Config

{
  "mcpServers": {
    "scryfall": {
      "command": "/ABSOLUTE/PATH/TO/BIN/uv",
      "args": [
        "--directory",
        "/ABSOLUTE/PATH/TO/mcp-server",
        "run",
        "scryfall.py"
      ]
    }
  }
}

# stdio

uv --directory <your-repo-path> run scryfall.py
Transport:
stdio
Language:
Python
Created: 4/20/2025
Updated: 4/24/2025