← Discover MCPs and Agents
M
MCPOtherMCP Registry

Midpoint Card Prices

Trading card prices and grading ROI for 1.5M+ Pokémon, Magic, Yu-Gi-Oh! and sports cards. Read-only.

Links

README

From the repo.

Midpoint MCP server

Trading-card market prices and grading ROI as Model Context Protocol tools. Read-only, no account, no API key. Powers the Midpoint Card Prices plugin in ChatGPT and works with Claude, Claude Code, Cursor and any MCP client.

What you can ask

Plain questions in a collector's words. The assistant picks the tool, finds the card and answers with prices, the capture date and a link to the card page.

  • "What is a PSA 10 Base Set Charizard worth?" · "Is my Umbreon VMAX alt art worth grading?"
  • "1986 Fleer Michael Jordan raw and PSA 10 price" · "Luka Doncic Prizm Silver rookie value"
  • "1952 Topps Mickey Mantle PSA 10 price history" · "Is my Shohei Ohtani rookie worth grading?"
  • "Alpha Black Lotus price" · "LOB-001 Blue-Eyes White Dragon 1st edition" · "OP-01 Manga Luffy"
  • "Which Pokémon cards jumped the most this month?" · "Which rising cards actually sell?"
  • "Most valuable cards in Evolving Skies" · "Best basketball cards to grade"

Every answer can include raw prices by condition (NM/LP/MP/HP), the graded ladder for PSA, CGC, BGS, SGC and TAG, the PSA 9 and PSA 10 premium over raw, net profit after $25/$50/$150 fees, expected value by gem rate, the break-even gem rate, 7–180 days of price history, 30-day movers, liquid movers, best cards to grade, and priced set checklists.

Coverage: Pokémon, Magic: The Gathering, Yu-Gi-Oh!, One Piece, Disney Lorcana, Riftbound, Gundam, Dragon Ball, Digimon; baseball, basketball, football, hockey, soccer, wrestling, UFC, racing, tennis, golf, boxing; Marvel, Star Wars, Garbage Pail Kids and other entertainment and TCG sets.

Installation

Remote server, nothing to install. Add it to any MCP client that supports HTTP servers:

{
  "mcpServers": {
    "midpoint": {
      "url": "https://mcp.cardcenteringtool.com/mcp"
    }
  }
}

Clients that only speak stdio (Claude Desktop, some IDE plugins) can bridge with mcp-remote:

{
  "mcpServers": {
    "midpoint": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://mcp.cardcenteringtool.com/mcp"]
    }
  }
}
  • ChatGPT: install Midpoint Card Prices from the plugin directory, or in Developer Mode add a connector with the endpoint.
  • Claude (web, desktop, mobile): Customize → Connectors → Add custom connector → paste the endpoint.
  • Claude Code: claude mcp add --transport http midpoint https://mcp.cardcenteringtool.com/mcp
  • Cursor / Windsurf / others: paste the JSON above into the client's MCP settings.
  • MCP Inspector: npx @modelcontextprotocol/inspector and connect to the endpoint.

No authentication. Streamable HTTP transport. Rate limited per client IP.

Tools

search_cards

Find cards by name, set, number or year and return raw and PSA 10 USD prices with the card id.

Inputs: query, game?, set_id?, limit?

get_card_prices

Full price ladder for one card: raw by condition (NM/LP/MP/HP) and graded prices for PSA, CGC, BGS, SGC and TAG by grade. The ladder is for the card's primary printing (variant, e.g. "holofoil"); other printings of the same id (reverse holo, 1st edition…) come back separately under other_variants and are never mixed in. raw_note is set when the raw ladder is out of condition order (thin data).

Inputs: card_id

grading_roi

Is this card worth grading? Raw vs PSA 9 vs PSA 10, gem premium, net profit after $25/$50/$150 fees, expected value by gem rate, break-even gem rate, which company pays most, and a plain verdict.

Inputs: card_id, grading_fee_usd?

get_price_history

Dated market values over 7 to 180 days for the raw series or a PSA grade (1–10, half grades allowed). The series follows one printing (variant). coverage says how many of the days have a capture and how to read repeated or sparse values: a value repeated on consecutive days is an unchanged market estimate, not a frozen market.

Inputs: card_id, days?, grade?

best_cards_to_grade

Cards with the biggest expected net profit from grading in a game or set (half PSA 10, half PSA 9, minus raw and the fee; both graded prices required).

Inputs: game, set_slug?, grading_fee_usd?, limit?

trending_cards

Biggest 30-day gainers or drops, one game or all.

Inputs: game?, direction?, min_market_usd?, limit?

liquid_movers

Rising cards (30-day change > 0) with a recorded sales count of 25+ in the last year. Each candidate's own 40-day series is checked first (enough captures, stable baseline, no one-capture jump); unstable ones are dropped and counted in excluded_unstable. trending_cards applies the same check. Cards whose source does not track yearly volume are excluded unless include_unknown_volume is set.

Inputs: game?, include_unknown_volume?, limit?

list_sets

Sets and expansions for a game, newest first, with ids.

Inputs: game, query?, limit?

get_set_cards

Priced checklist or most valuable cards in a set.

Inputs: game, set_id, sort?, limit?

Every tool is read-only (readOnlyHint: true, destructiveHint: false, openWorldHint: false), returns structuredContent with an output schema, and links back to the matching page on cardcenteringtool.com. Card ids are the public URL keys (swsh7-215, pricecharting-1821843).

Game keys: pokemon magicthegathering yugioh onepiece lorcana riftbound gundam dragonball digimon baseball basketball football hockey soccer wrestling ufc racing tennis golf boxing marvel starwars gpk entertainment othertcg.

Discord bot

The same nine tools as slash commands (/price, /grade, /history, /trending, /movers, /set), answered as embeds. Source in src/discord/, built by the same npm run build, run with npm run start:discord (or Dockerfile.discord as a second Coolify app). It is a plain HTTP client of the public server: no database, no secrets beyond the bot token. The server labels its calls and links as client discord.

Environment: DISCORD_BOT_TOKEN, DISCORD_CLIENT_ID (both from the Discord Developer Portal → your application → Bot / General Information), optional MCP_URL (defaults to production) and APP_LINK (defaults to https://www.cardcenteringtool.com/go/discord). Invite URL: https://discord.com/oauth2/authorize?client_id=<CLIENT_ID>&scope=bot%20applications.commands&permissions=2048 (Send Messages). Commands are registered globally on boot; Discord can take up to an hour to show them in every server after the first registration.

Data handling

Requests carry only the tool arguments (card names, ids, filters) and the caller's IP for rate limiting. Privacy policy: https://www.cardcenteringtool.com/privacy. Support: https://www.cardcenteringtool.com/contact.

Config for your environment

Use the endpoint URL below in your config. No API key — you connect directly.

Tool

OS

Config file: ~/.cursor/mcp.json

{
  "mcpServers": {
    "mcp-server": {
      "url": "https://mcp.cardcenteringtool.com/mcp"
    }
  }
}

Paste into mcpServers in the config file. Restart Cursor after saving.

If this MCP is also published on mcpchannel.ai, you can subscribe from Browse and use the gateway config there instead.