Midpoint Card Prices

com.cardcenteringtoolPublished by cardcenteringtool.comOfficial publisherv1.0.0Updated Oct 24, 2026

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

VerifiedStreamable HTTPWeb executableFinanceData & Analytics

Overview

AI-generated overview

Read-only remote MCP server for trading-card market prices and grading ROI across Pokémon, Magic, Yu-Gi-Oh!, sports and other cards.

What you can do
  • Search cards by name, set, number or year and get raw and PSA 10 prices with a card id
  • Look up a card's full price ladder: raw by condition and graded prices for PSA, CGC, BGS, SGC and TAG
  • Assess grading economics: gem premium, net profit after fees, expected value and break-even gem rate
  • Review 7–180 day price history for raw or a graded series
  • Find 30-day gainers and drops, plus rising cards with enough recorded sales to be liquid
  • List sets and return priced checklists or the most valuable cards in a set
When to use it
Useful when a collector asks what a specific card is worth, whether it is worth grading, how its price has moved, or which cards in a game or set are rising or best to grade. It answers in plain collector language and links back to the matching card page.
Requirements
A remote Streamable HTTP endpoint; nothing to install and no account or API key. Clients that only support stdio can bridge it with the mcp-remote package via npx. Requests are rate limited per client IP.
Before you install
All tools are read-only and requests carry only tool arguments plus the caller's IP for rate limiting. Prices are USD market estimates from sold listings refreshed daily, not forecasts, and thin data can make some ladders or histories sparse. The README also documents a separate Discord bot that needs its own bot token, which is not required for the MCP server.

Installation

In SourceWeft

  1. Open Midpoint Card Prices in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/com.cardcenteringtool%2Fcard-prices/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "midpoint-card-prices": {
      "type": "http",
      "url": "https://mcp.cardcenteringtool.com/mcp"
    }
  }
}

README

Midpoint MCP server

[Midpoint MCP server on AI Agents Listing]

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:

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

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

json
{  "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.

Source: README.md at commit 184c2f5

Tools

9

search_cards

Search card prices

Use this first when the user names a trading card and wants its value, price, or whether to grade it. Searches 1.5M+ Pokémon, Magic, Yu-Gi-Oh!, One Piece, Lorcana, sports (baseball, basketball, football, hockey, soccer, wrestling, UFC and more) and entertainment cards by name, set, number and year, returning ungraded and PSA 10 market prices in USD from real sold listings. Returns card ids for get_card_prices, grading_roi and get_price_history. Do not use for sealed product, for cards you already have an id for, or for price prediction.

Parametersgamelimitqueryrequiredset_id

get_card_prices

Get card price ladder

Use this when the user wants the full current value of a specific card: ungraded prices by condition (NM/LP/MP/HP) and graded prices for every company and grade on record (PSA, CGC, BGS, SGC, TAG). Requires a card id from search_cards. Prices are USD market values from real sold listings, refreshed daily. Do not use to search by name.

Parameterscard_idrequired

grading_roi

Is this card worth grading?

Use this when the user asks whether a card is worth grading, submitting to PSA/CGC/BGS/SGC/TAG, or what a PSA 10 adds. Returns raw vs PSA 9 vs PSA 10 market prices, the gem premium, net profit after grading fees per outcome, expected value by gem probability, the break-even gem rate, which company pays most, and a plain-language verdict. Requires a card id from search_cards. It does not assess the condition of the user's copy.

Parameterscard_idrequiredgrading_fee_usd

get_price_history

Get price history

Use this when the user asks how a card's price has changed over weeks or months, or wants a trend for the raw or a PSA-graded series. Returns dated USD market values for the last 7 to 180 days. Requires a card id from search_cards. Do not use for forecasts.

Parametersdaysgradecard_idrequired

best_cards_to_grade

Best cards to grade

Use this when the user asks which cards in a game, sport or set have the biggest payoff from grading. Ranks priced cards by expected net profit at a 50% gem rate (half PSA 10, half PSA 9, minus raw and the fee), requiring both PSA 9 and PSA 10 prices so thin-market outliers are excluded. Returns card ids for grading_roi. Do not use for a single named card.

Parametersgamerequiredlimitset_sluggrading_fee_usd

liquid_movers

Liquid movers (rising cards that actually sell)

Use this when the user wants cards that are both rising in price and easy to sell: recent gainers filtered to cards with at least 25 recorded sales a year and a raw price of at least $5, across all games and sports. Better than trending_cards for flipping or selling decisions. Do not use for a single named card.

Parametersgamelimitinclude_unknown_volume

list_sets

List sets / expansions

Use this to find the set id for a game or sport (e.g. "Evolving Skies", "2019 Panini Prizm") before calling get_set_cards, or when the user asks which sets exist. Newest first. Do not use to price a single card.

Parametersgamerequiredlimitquery

get_set_cards

Cards in a set with prices

Use this when the user wants the most valuable cards in a specific set or a priced checklist of a set. Requires a set id from list_sets. Returns raw and PSA 10 USD prices per card. Do not use for a single named card; use search_cards instead.

Parametersgamerequiredsortlimitset_idrequired

Version history

1
  1. v1.0.0LatestSep 16, 2026

Score

90% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

    Declare a license in the repository or the registry entry.