About iwantmymtg-mcp
iwantmymtg-mcp exposes the I Want My MTG API to MCP clients for Magic: The Gathering players managing cards and collections. It supports public card and price lookups, with collection and selling tools available using an API key.
Key features
- 01Search cards, sets, and sealed products
- 02View current prices and price history
- 03Manage inventory, transactions, and decks
- 04Review portfolio performance and collection value
- 05Manage buy lists, price alerts, and notifications
Use cases
- 01Find a card printing and compare its prices
- 02Track a card’s price over the past 30 days
- 03Update inventory or import a decklist
- 04Estimate collection sell value by vendor
MCP support
Exposes I Want My MTG API capabilities as tools for MCP clients. Read-only lookups work without an API key; authenticated tools require an IWMM API key.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
npx -y iwantmymtg-mcpIWMM_API_KEYSecretPersonal IWMM API key (iwm_live_...). Optional; required only for the authenticated tools (anything that reads or changes your own collection). Read-only card, set, and price tools work without it.Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.
Tools
60Saved tool list · updated 2w ago
| Parameter | Type | Required | Description |
|---|---|---|---|
| q | string | No | Substring to search card name + flavor name. Optional; omit to filter purely by setCode/rarity/type/format. |
| page | integer | No | 1-based page index. |
| type | string | No | Substring match against card type line (e.g. 'Goblin', 'Instant'). |
| limit | integer | No | Page size (max 100). |
| format | enum | No | Filter to cards with a legality entry in this format (e.g. 'modern', 'commander').standard | commander | modern | legacy | vintage | brawl | explorer | historic | oathbreaker | pauper | pioneer |
| rarity | enum | No | Filter by rarity.common | uncommon | rare | mythic |
| setCode | string | No | 3-5 character set code (e.g. 'lea', 'mh3'). |
| legality | enum | No | Used with 'format'. Defaults to 'legal' when format is set.legal | banned | restricted |
Details
From the project READMEiwantmymtg-mcp
An MCP server for I Want My MTG. Exposes IWMM's API as tools so Claude Desktop, Claude Code, Cursor, and other MCP clients can search Magic: The Gathering cards/sets and manage a user's collection conversationally.
Published on npm, the MCP Registry, and Smithery. Coverage expands to match the API; see
docs/TOOLS.mdfor the full, always-current tool list.

What you can do
- Anonymous (no key): search cards, look up a card by set+number, get current prices and 30-day price history, get a card's buylist (sell-to-vendor) offers, list sets and their cards, list sealed products.
- Authenticated (with an IWMM API key): manage your inventory and transactions; build and manage decks (create, import from a decklist, edit cards, add the cards you're missing to your buy-list); view portfolio summaries, history, performance, cash flow, realized gains, and breakdowns (including by color, with per-slice drill-down); manage price alerts and notifications.
- Sell tools (with a key): see your collection's market sell value (best buylist offer per card, grouped by vendor), manage a buy-list (want-list), and get a cash-vs-store-credit recommendation for selling toward your buy list.
See the project roadmap for what's next.
Install
Requires Node 20+.
npx iwantmymtg-mcp
Or install globally if you prefer:
npm install -g iwantmymtg-mcp
iwantmymtg-mcp
Claude Desktop
Add to claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/claude_desktop_config.json; Windows: %APPDATA%\Claude\claude_desktop_config.json):
{
"mcpServers": {
"iwmm": {
"command": "npx",
"args": ["-y", "iwantmymtg-mcp"],
"env": {
"IWMM_API_KEY": "iwm_live_..."
}
}
}
}
IWMM_API_KEY is optional - read-only tools work without it. Create a key at https://iwantmymtg.net/user/api-keys.
Claude Code
Add to .mcp.json in your project (or ~/.claude/.mcp.json globally):
{
"mcpServers": {
"iwmm": {
"command": "npx",
"args": ["-y", "iwantmymtg-mcp"],
"env": { "IWMM_API_KEY": "iwm_live_..." }
}
}
}
Cursor
Add to ~/.cursor/mcp.json (global) or .cursor/mcp.json in your project:
{
"mcpServers": {
"iwmm": {
"command": "npx",
"args": ["-y", "iwantmymtg-mcp"],
"env": { "IWMM_API_KEY": "iwm_live_..." }
}
}
}
After saving, restart Cursor and confirm iwmm appears under Settings -> Features -> MCP Servers.
Example prompts
- "Search for Lightning Bolt printings and show me the cheapest one."
- "What's the price history of Bloodbraid Elf from Modern Horizons 3?"
- "Add 4 copies of Lightning Bolt LEA to my inventory."
- "What sealed products are available for MH3?"
- "What's my collection worth to sell right now, and which vendor pays most?"
- "Add these cards to my buy list, then tell me whether cash or store credit is the better deal."
See examples/ for walkthroughs of common flows, and docs/TOOLS.md for the full tool reference.
Configuration
| Env var | Default | Purpose |
|---|---|---|
IWMM_API_KEY | (unset) | Personal API key. Required only for authenticated tools. |
IWMM_BASE_URL | https://iwantmymtg.net | Override for self-hosted or local-dev IWMM instances. |
Local development
npm install
npm run build
node dist/index.js
Or with tsx for live reload:
npm install
npx tsx src/index.ts
License
This project is licensed under the MIT License — see the LICENSE file for details.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.