edhrec-mcp
by getsec
README.md
# edhrec-mcp
An MCP server for Magic: The Gathering, focused on Commander (EDH). It exposes
authoritative card data from [Scryfall](https://scryfall.com) and community
deckbuilding suggestions from [EDHREC](https://edhrec.com).
## Tools
- `get_card(name)` — card details: oracle text, mana cost, type, color identity,
Commander legality, USD price, image.
- `search_cards(query, limit=20)` — Scryfall query-syntax search.
- `get_commander_recommendations(commander, theme=None, budget=None)` — EDHREC
recommended cards (top, high-synergy, game changers, by type) with stats.
- `list_commander_themes(commander)` — available themes/archetypes with counts.
- `get_average_decklist(commander, theme=None, budget=None)` — the typical ~99 cards.
`theme` is a slug from `list_commander_themes` (e.g. `infect`). `budget` is
`budget` or `expensive`.
## Install
Uses [uv](https://docs.astral.sh/uv/) for environment and dependency management.
```bash
uv sync
```
This creates `.venv/` and installs the project from the locked dependencies.
Without uv, you can use a standard virtualenv instead:
```bash
python3 -m venv .venv && .venv/bin/pip install -e .
```
## Run
```bash
uv run edhrec-mcp
```
## Register with Claude Code
```bash
claude mcp add edhrec -- uv run --directory /absolute/path/to/edhrec-mcp edhrec-mcp
```
Or add to an MCP client config:
```json
{
"mcpServers": {
"edhrec": {
"command": "uv",
"args": ["run", "--directory", "/absolute/path/to/edhrec-mcp", "edhrec-mcp"]
}
}
}
```
## Data & caching
Responses are cached under `~/.cache/edhrec-mcp/` (override with
`EDHREC_MCP_CACHE_DIR`): EDHREC pages 24h, Scryfall cards 12h. Prices may
therefore be up to 12h stale. EDHREC has no official API; this server reads its
public JSON endpoints politely (identifying User-Agent, throttled requests).
## Development
```bash
uv sync --extra dev # install runtime + dev dependencies
uv run pytest # unit tests (no network)
uv run pytest -m network # live integration tests
```
TDQS
A3.8/5.0
Scored across 5 tools
Disambiguation5/5
Each tool has a distinct purpose: decklist retrieval, card lookup, recommendations, theme listing, and card search. No overlap or ambiguity.
Naming Consistency5/5
All tool names follow a consistent verb_noun pattern using snake_case (e.g., get_average_decklist, list_commander_themes). Verbs like get, list, search are clear and predictable.
Tool Count5/5
5 tools is well-scoped for the EDHREC domain, covering core operations without being overly extensive or sparse.
Completeness5/5
The tool set covers essential EDHREC operations: decklist retrieval, card info, commander recommendations, theme listing, and card search. No obvious gaps that would hinder agent workflows.
Maintenance
ActivityInactive
ResponsivenessNo issues