CAT
/MCP
SkillsMCPMarketplacesDigestToolsAdvertise

This week in Claude

Every Monday: Claude Code, Agent SDK, MCP, and the Anthropic platform moves worth your time.

Skills by Category
Frontend DevelopmentBackend & APIsTesting & QASecurityDevOps & CI/CDGit & Pull RequestsDocumentationCode Review & QualityAI & Agent BuildingSkill Development
MCP Servers by Category
Sales & MarketingWeb & Browser AutomationDatabasesAI & LLM ToolsCloud & InfrastructureCommunication & MessagingDeveloper ToolsDesign & CreativeDocuments & KnowledgeSearch & Web Crawling
Marketplaces by Category
AI Agents & OrchestrationLLM IntegrationDevelopment ToolsFrontend & UIBackend & APIsDatabasesTesting & Code QualityDevOps & CloudSecurity & ComplianceGit & Version Control

Cross AI Tools

Discover Claude Code plugins, extensions, and tools. Automatically updated directory of Anthropic Claude AI marketplaces with development tools, productivity plugins, and integrations.

Resources

  • Browse Skills
  • Browse MCP Servers
  • Browse Marketplaces
  • Plugins Reference

Community

  • About
  • Tools
  • Feedback
  • Privacy Policy
  • Advertise

Built for the Claude Code community with Claude Code by @mertduzgun

Independent project, not affiliated with Anthropic

Iwantmymtg Mcp

matthewdtowles/iwantmymtg-mcp
133 toolsauthSTDIOregistry active
Summary

Connects Claude to the I Want My MTG platform so you can search Magic: The Gathering cards, check prices and 30-day price history, and manage your collection through conversation. Anonymous mode lets you query cards by name or set number and browse sealed products. With an API key you can list and update your inventory directly. Built on the iwantmymtg.net API with plans to add transaction tracking, portfolio breakdowns, and price alerts. Useful if you're already using I Want My MTG to track your collection and want to pull card data or log new acquisitions without leaving your editor or chat window.

CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →

Tools

Public tool metadata for what this MCP can expose to an agent.

33 tools
search_cardsSearch Magic: The Gathering cards by name (substring). A name query (q) is required to return results; set code, rarity, type, and format legality only narrow that name search. Returns a paginated list with prices and basic metadata. Use this for catalog lookups; for a specifi...8 params

Search Magic: The Gathering cards by name (substring). A name query (q) is required to return results; set code, rarity, type, and format legality only narrow that name search. Returns a paginated list with prices and basic metadata. Use this for catalog lookups; for a specifi...

Parameters* required
qstring
Substring to search card name + flavor name. Required to return results - the other parameters only narrow a name search; omitting q returns an empty list.
pageinteger
1-based page index.
typestring
Substring match against card type line (e.g. 'Goblin', 'Instant').
limitinteger
Page size (max 100).
formatstring
Filter to cards with a legality entry in this format (e.g. 'modern', 'commander').
raritystring
Filter by rarity.one of common · uncommon · rare · mythic
setCodestring
3-5 character set code (e.g. 'lea', 'mh3').
legalitystring
Used with 'format'. Defaults to 'legal' when format is set.one of legal · banned · restricted
get_cardLook up a specific card printing by set code and collector number. Returns full card detail including current prices, rarity, type, and flavor name. For broader catalog search use search_cards.2 params

Look up a specific card printing by set code and collector number. Returns full card detail including current prices, rarity, type, and flavor name. For broader catalog search use search_cards.

Parameters* required
setCodestring
Set code (e.g. 'lea').
setNumberstring
Collector number within the set (e.g. '161'). String, not int - some sets use suffixes like '12a'.
get_card_pricesGet current normal and foil prices for a specific card printing.2 params

Get current normal and foil prices for a specific card printing.

Parameters* required
setCodestring
Set code (e.g. 'lea').
setNumberstring
Collector number within the set (e.g. '161'). String, not int - some sets use suffixes like '12a'.
get_card_price_historyGet the 30-day price history for a card printing (normal + foil). Older data is retained on a weekly/monthly cadence beyond 30 days.2 params

Get the 30-day price history for a card printing (normal + foil). Older data is retained on a weekly/monthly cadence beyond 30 days.

Parameters* required
setCodestring
Set code (e.g. 'lea').
setNumberstring
Collector number within the set (e.g. '161'). String, not int - some sets use suffixes like '12a'.
search_setsList Magic: The Gathering sets, optionally paginated. Returns set code, name, release date, type, and aggregate prices.2 params

List Magic: The Gathering sets, optionally paginated. Returns set code, name, release date, type, and aggregate prices.

Parameters* required
pageinteger
1-based page index. Defaults to 1.
limitinteger
Page size, 1-100. Server default applies if omitted.
get_setGet detail for a single set by code (e.g. 'lea', 'mh3').1 params

Get detail for a single set by code (e.g. 'lea', 'mh3').

Parameters* required
codestring
Set code (e.g. 'lea', 'mh3').
list_set_cardsList all cards in a set, paginated. Supports the same filters as search_cards (rarity, type, format, legality).7 params

List all cards in a set, paginated. Supports the same filters as search_cards (rarity, type, format, legality).

Parameters* required
codestring
Set code.
pageinteger
1-based page index. Defaults to 1.
typestring
Substring match against card type line (e.g. 'Goblin', 'Instant').
limitinteger
Page size, 1-100. Server default applies if omitted.
formatstring
Filter to cards with a legality entry in this format (e.g. 'modern', 'commander').
raritystring
Filter by rarity.one of common · uncommon · rare · mythic
legalitystring
Used with 'format'. Defaults to 'legal' when format is set.one of legal · banned · restricted
get_sealed_productsList sealed products (booster boxes, bundles, commander decks, etc.) for a set. Each entry includes a TCGPlayer purchase URL.1 params

List sealed products (booster boxes, bundles, commander decks, etc.) for a set. Each entry includes a TCGPlayer purchase URL.

Parameters* required
codestring
Set code.
list_inventoryList the authenticated user's card inventory, paginated. Requires IWMM_API_KEY. Returns cards with quantities, prices, and metadata.2 params

List the authenticated user's card inventory, paginated. Requires IWMM_API_KEY. Returns cards with quantities, prices, and metadata.

Parameters* required
pageinteger
1-based page index. Defaults to 1.
limitinteger
Page size, 1-100. Server default applies if omitted.
get_inventory_quantitiesBatch lookup: given a list of card UUIDs, return how many of each (normal + foil) the user owns. Useful before recommending adds. Requires IWMM_API_KEY.1 params

Batch lookup: given a list of card UUIDs, return how many of each (normal + foil) the user owns. Useful before recommending adds. Requires IWMM_API_KEY.

Parameters* required
cardIdsarray
Internal IWMM card UUIDs to look up (1-200). Get them from search_cards or get_card.
add_inventoryAdd one or more cards to the authenticated user's inventory. Accepts a batch - pass a single-item array for one card. This is a real write. Use update_inventory to change quantities, remove_inventory to delete a row. Requires IWMM_API_KEY.1 params

Add one or more cards to the authenticated user's inventory. Accepts a batch - pass a single-item array for one card. This is a real write. Use update_inventory to change quantities, remove_inventory to delete a row. Requires IWMM_API_KEY.

Parameters* required
itemsarray
update_inventoryUpdate quantities for one or more existing inventory rows. Accepts a batch. Use remove_inventory to delete a row entirely. Requires IWMM_API_KEY.1 params

Update quantities for one or more existing inventory rows. Accepts a batch. Use remove_inventory to delete a row entirely. Requires IWMM_API_KEY.

Parameters* required
itemsarray
remove_inventoryRemove a card+finish row from the authenticated user's inventory. Requires IWMM_API_KEY.2 params

Remove a card+finish row from the authenticated user's inventory. Requires IWMM_API_KEY.

Parameters* required
cardIdstring
Internal IWMM card UUID.
isFoilboolean
Which finish row to remove - foil or non-foil.
list_transactionsList the authenticated user's transactions, paginated. Supports sort/filter query params. Free tier sees the last 30 days only; Premium gets full history. Requires IWMM_API_KEY.6 params

List the authenticated user's transactions, paginated. Supports sort/filter query params. Free tier sees the last 30 days only; Premium gets full history. Requires IWMM_API_KEY.

Parameters* required
pageinteger
1-based page index. Defaults to 1.
sortstring
Sort key (e.g. TX_DATE, TX_TYPE, TX_CARD, TX_PRICE).
typestring
Filter to BUY or SELL transactions (case-insensitive). Omit for both.one of BUY · SELL
limitinteger
Page size, 1-100. Server default applies if omitted.
ascendboolean
Sort ascending. Defaults to descending (most recent first).
filterstring
Substring filter on card name.
record_transactionRecord a buy or sell transaction. By default this also adjusts inventory (BUY adds, SELL subtracts). This is a real write. Requires IWMM_API_KEY.10 params

Record a buy or sell transaction. By default this also adjusts inventory (BUY adds, SELL subtracts). This is a real write. Requires IWMM_API_KEY.

Parameters* required
datestring
ISO 8601 date (YYYY-MM-DD).
feesnumber
Optional fees or shipping in USD.
typestring
Transaction type: BUY or SELL.one of BUY · SELL
notesstring
Optional free-text note.
cardIdstring
Internal IWMM card UUID.
isFoilboolean
Whether the transacted copies are the foil finish.
sourcestring
Where the transaction happened (e.g. 'TCGPlayer', 'LGS').
quantityinteger
Number of copies transacted.
pricePerUnitnumber
Per-unit price in USD.
skipInventorySyncboolean
If true, record the transaction without adjusting inventory. Default false - transactions normally update inventory.
update_transactionUpdate an existing transaction by ID. Only the fields supplied are changed. Card identity and type (BUY/SELL) cannot be changed via this endpoint - delete and re-create instead. Requires IWMM_API_KEY.2 params

Update an existing transaction by ID. Only the fields supplied are changed. Card identity and type (BUY/SELL) cannot be changed via this endpoint - delete and re-create instead. Requires IWMM_API_KEY.

Parameters* required
idinteger
Transaction ID from list_transactions.
patchobject
delete_transactionDelete a transaction by ID. Requires IWMM_API_KEY.1 params

Delete a transaction by ID. Requires IWMM_API_KEY.

Parameters* required
idinteger
Transaction ID from list_transactions.
get_cost_basisGet FIFO cost basis for a specific card+finish for the authenticated user. Pass either cardId or (setCode, setNumber). Requires IWMM_API_KEY.4 params

Get FIFO cost basis for a specific card+finish for the authenticated user. Pass either cardId or (setCode, setNumber). Requires IWMM_API_KEY.

Parameters* required
cardIdstring
Internal IWMM card UUID. Provide this, or setCode + setNumber.
isFoilboolean
Whether to compute cost basis for the foil finish.default: false
setCodestring
Set code, used with setNumber as an alternative to cardId.
setNumberstring
Collector number within the set, used with setCode.
get_portfolio_summaryGet the authenticated user's portfolio summary - current value, total invested, realized gains, card/unit counts. Requires IWMM_API_KEY.

Get the authenticated user's portfolio summary - current value, total invested, realized gains, card/unit counts. Requires IWMM_API_KEY.

No parameter schema in public metadata yet.

get_portfolio_historyGet portfolio value history. Premium-gated - free tier receives 403. Requires IWMM_API_KEY.1 params

Get portfolio value history. Premium-gated - free tier receives 403. Requires IWMM_API_KEY.

Parameters* required
daysinteger
How many days of history. Server default applies if omitted.
get_card_performanceGet the user's best- or worst-performing cards by P&L. Default: best, top 10. Requires IWMM_API_KEY.2 params

Get the user's best- or worst-performing cards by P&L. Default: best, top 10. Requires IWMM_API_KEY.

Parameters* required
typestring
Rank by best or worst P&L. Defaults to 'best'.one of best · worst
limitinteger
How many cards to return (1-100). Defaults to 10.
get_cash_flowGet the user's cash flow (money in vs money out from BUY/SELL transactions). Premium-gated. Requires IWMM_API_KEY.

Get the user's cash flow (money in vs money out from BUY/SELL transactions). Premium-gated. Requires IWMM_API_KEY.

No parameter schema in public metadata yet.

get_realized_gainsGet the user's realized gains from SELL transactions using FIFO cost basis. Premium-gated. Requires IWMM_API_KEY.

Get the user's realized gains from SELL transactions using FIFO cost basis. Premium-gated. Requires IWMM_API_KEY.

No parameter schema in public metadata yet.

get_portfolio_breakdownGet the user's collection value broken down by a dimension. Premium-gated. Requires IWMM_API_KEY.1 params

Get the user's collection value broken down by a dimension. Premium-gated. Requires IWMM_API_KEY.

Parameters* required
bystring
Dimension to break down by. 'cost-basis' buckets are gain/loss/at-cost.one of set · rarity · type · format · cost-basis
refresh_portfolioRecalculate the user's portfolio P&L. Use after recording a batch of transactions if you want immediate fresh numbers. Requires IWMM_API_KEY.

Recalculate the user's portfolio P&L. Use after recording a batch of transactions if you want immediate fresh numbers. Requires IWMM_API_KEY.

No parameter schema in public metadata yet.

list_price_alertsList the authenticated user's price alerts. Free tier is capped at 5 active alerts and a single threshold direction per alert; Premium removes both limits. Paginated. Requires IWMM_API_KEY.2 params

List the authenticated user's price alerts. Free tier is capped at 5 active alerts and a single threshold direction per alert; Premium removes both limits. Paginated. Requires IWMM_API_KEY.

Parameters* required
pageinteger
1-based page index. Defaults to 1.
limitinteger
Page size, 1-100. Server default applies if omitted.
create_price_alertCreate a price alert for a card. Supply increasePct, decreasePct, or both (Premium). At least one threshold is required. Requires IWMM_API_KEY.3 params

Create a price alert for a card. Supply increasePct, decreasePct, or both (Premium). At least one threshold is required. Requires IWMM_API_KEY.

Parameters* required
cardIdstring
Internal IWMM card UUID.
decreasePctnumber
Trigger when price decreases by at least this percent.
increasePctnumber
Trigger when price increases by at least this percent.
update_price_alertUpdate an existing price alert. Pass null for a threshold to clear it (Premium only - free users must keep exactly one direction). isActive toggles enable/disable without deleting. Requires IWMM_API_KEY.4 params

Update an existing price alert. Pass null for a threshold to clear it (Premium only - free users must keep exactly one direction). isActive toggles enable/disable without deleting. Requires IWMM_API_KEY.

Parameters* required
idinteger
Alert ID from list_price_alerts.
isActiveboolean
Enable or disable the alert without deleting it.
decreasePctnumber
New decrease threshold percent, or null to clear it (Premium).
increasePctnumber
New increase threshold percent, or null to clear it (Premium).
delete_price_alertDelete a price alert by ID. Requires IWMM_API_KEY.1 params

Delete a price alert by ID. Requires IWMM_API_KEY.

Parameters* required
idinteger
Alert ID from list_price_alerts.
list_notificationsList the authenticated user's price alert notifications, newest first. Includes both read and unread. Paginated. Requires IWMM_API_KEY.2 params

List the authenticated user's price alert notifications, newest first. Includes both read and unread. Paginated. Requires IWMM_API_KEY.

Parameters* required
pageinteger
1-based page index. Defaults to 1.
limitinteger
Page size, 1-100. Server default applies if omitted.
get_unread_notification_countGet the count of unread notifications for the authenticated user. Requires IWMM_API_KEY.

Get the count of unread notifications for the authenticated user. Requires IWMM_API_KEY.

No parameter schema in public metadata yet.

mark_notification_readMark a single notification as read. Requires IWMM_API_KEY.1 params

Mark a single notification as read. Requires IWMM_API_KEY.

Parameters* required
idinteger
Notification ID from list_notifications.
mark_all_notifications_readMark every notification for the authenticated user as read. Requires IWMM_API_KEY.

Mark every notification for the authenticated user as read. Requires IWMM_API_KEY.

No parameter schema in public metadata yet.

iwantmymtg-mcp

npm version License: MIT smithery badge

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.md for the full, always-current tool list.

Demo: Claude Code answering four collection queries via the iwmm MCP server

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 varDefaultPurpose
IWMM_API_KEY(unset)Personal API key. Required only for authenticated tools.
IWMM_BASE_URLhttps://iwantmymtg.netOverride 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.

Featured
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →

Configuration

IWMM_API_KEYsecret

Personal IWMM API key (iwm_live_...). Optional; required only for the inventory, transaction, portfolio, and price-alert tools.

Registryactive
Packageiwantmymtg-mcp
TransportSTDIO
AuthRequired
UpdatedMay 31, 2026
View on GitHub