Midpoint Card Prices
REMOTE · MCP.CARDCENTERINGTOOL.COM · SCANNED SEP 25
Trading card prices and grading ROI for 1.5M+ Pokémon, Magic, Yu-Gi-Oh! and sports cards. Read-only.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security74
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one. See how to fix → View diagnostics → Partial
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- HSTS check failed: the Strict-Transport-Security header is absent. See how to fix → View diagnostics → Fail
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability70
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 1439 tokens (~159/item across 9 items; 9 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management47
- Stability observed for 14 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage91
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 68% of tool parameters carry a description.Partial
- Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 9 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 10 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
How do I install the Midpoint Card Prices MCP server?
Midpoint Card Prices is a hosted endpoint at https://mcp.cardcenteringtool.com/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · mcp.cardcenteringtool.com
claude mcp add --transport http com-cardcenteringtool-card-prices 'https://mcp.cardcenteringtool.com/mcp'
{
"mcpServers": {
"com-cardcenteringtool-card-prices": {
"url": "https://mcp.cardcenteringtool.com/mcp"
}
}
} {
"servers": {
"com-cardcenteringtool-card-prices": {
"type": "http",
"url": "https://mcp.cardcenteringtool.com/mcp"
}
}
} [mcp_servers.com-cardcenteringtool-card-prices] url = "https://mcp.cardcenteringtool.com/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"com-cardcenteringtool-card-prices": {
"type": "remote",
"url": "https://mcp.cardcenteringtool.com/mcp",
"enabled": true
}
}
} openclaw mcp add com-cardcenteringtool-card-prices --url 'https://mcp.cardcenteringtool.com/mcp' --transport streamable-http
mcp_servers:
com-cardcenteringtool-card-prices:
url: "https://mcp.cardcenteringtool.com/mcp" {
"McpServers": {
"com-cardcenteringtool-card-prices": {
"Transport": "http",
"Url": "https://mcp.cardcenteringtool.com/mcp"
}
}
} assistant mcp add com-cardcenteringtool-card-prices -t streamable-http -u 'https://mcp.cardcenteringtool.com/mcp'
{
"mcpServers": {
"com-cardcenteringtool-card-prices": {
"type": "http",
"url": "https://mcp.cardcenteringtool.com/mcp"
}
}
} The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 25 Sept 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 24 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 40 to 43. That category is still filling its 30-day observation window: 12 days of observed history at the previous scan, 13 at this one. The score rises as the window fills, whether or not the server changes.
- 22 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 33 to 37. That category is still filling its 30-day observation window: 10 days of observed history at the previous scan, 11 at this one. The score rises as the window fills, whether or not the server changes.
- 20 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 27 to 30. That category is still filling its 30-day observation window: 8 days of observed history at the previous scan, 9 at this one. The score rises as the window fills, whether or not the server changes.
- 19 Sept 26 0
- “liquid_movers” added an optional parameter “include_unknown_volume” cosmetic
1 cosmetic change on this day. Switch on “Show cosmetic changes” to see it.
- 17 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 17 to 20. That category is still filling its 30-day observation window: 5 days of observed history at the previous scan, 6 at this one. The score rises as the window fills, whether or not the server changes.
- 15 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 10 to 13. That category is still filling its 30-day observation window: 3 days of observed history at the previous scan, 4 at this one. The score rises as the window fills, whether or not the server changes.
- 13 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 25 Sept 2026 · Probed https://mcp.cardcenteringtool.com/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=cardcenteringtool.com | CN=YE2,O=Let's Encrypt,C=US | 10 Sept 2026 | 9 Dec 2026 | ECDSA 256 | ECDSA-SHA384 | 558062d8a3a4f93dc91292bab1177387530 |
| SANs: *.cardcenteringtool.com, cardcenteringtool.com | ||||||
| CN=YE2,O=Let's Encrypt,C=US (CA) | CN=Root YE,O=ISRG,C=US | 3 Sept 2025 | 2 Sept 2028 | ECDSA 384 | ECDSA-SHA384 | 4df3b15dd6c0784c507cd37b58e6f115 |
| CN=Root YE,O=ISRG,C=US (CA) | CN=ISRG Root X2,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | ECDSA 384 | ECDSA-SHA384 | 872165fc34b6e5fba8add5b3705fb53a |
| CN=ISRG Root X2,O=Internet Security Research Group,C=US (CA) | CN=ISRG Root X1,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | ECDSA 384 | SHA256-RSA | 6c8f1dc727c7117f7baf853ac980f9cd |
Background: What to check on a remote MCP endpoint →
DNSSEC insecure
Validation of mcp.cardcenteringtool.com. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| com. | present | 19718 | 13 | Verified |
| cardcenteringtool.com. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://mcp.cardcenteringtool.com/mcp | Verified | 200 | |
| http (plaintext) | http://mcp.cardcenteringtool.com/mcp | HTTPS enforced | 302 | https://mcp.cardcenteringtool.com/mcp |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
best_cards_to_grade Best cards to grade ~164
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.
| Name | Type | Req | Description |
|---|---|---|---|
| game | string | yes | Game or sport to rank. |
| grading_fee_usd | number | – | Grading fee to assume. Defaults to $25. |
| limit | integer | – | – |
| set_slug | string | – | Optional set slug (as used on /sets/<game>/<slug>) to rank inside one set. |
| Name | Type | Req | Description |
|---|---|---|---|
| assumed_fee_usd | number | yes | – |
| cards | array | yes | – |
| count | integer | yes | – |
| criteria | string | yes | – |
| game | string | yes | – |
| links | object | yes | – |
No examples provided.
get_card_prices Get card price ladder ~126
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.
| Name | Type | Req | Description |
|---|---|---|---|
| card_id | string | yes | Catalog card id from search_cards, e.g. "swsh7-215" or "pricecharting-1821843". |
| Name | Type | Req | Description |
|---|---|---|---|
| captured_on | string|null | yes | Date of the latest price capture (UTC) |
| card | object | yes | – |
| currency | string | yes | – |
| graded | array | yes | – |
| links | object | yes | – |
| other_variants | array | yes | Other printings of the same card id (reverse holo, 1st edition…) with their own prices. Never mix these with the main ladder. |
| raw | array | yes | – |
| raw_note | string|null | yes | Set when the raw condition ladder is out of order (thin data): treat raw prices as low confidence. |
| summary | object | yes | – |
| variant | string|null | yes | The printing the raw and graded rungs refer to (e.g. "holofoil", "1st edition"). Other printings are listed under other_variants. |
No examples provided.
get_price_history Get price history ~125
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.
| Name | Type | Req | Description |
|---|---|---|---|
| card_id | string | yes | Catalog card id from search_cards. |
| days | integer | – | – |
| grade | string | – | PSA grade for a graded series, e.g. "10" or "9". Omit for the raw (ungraded) series. |
| Name | Type | Req | Description |
|---|---|---|---|
| card_id | string | yes | – |
| change_note | string|null | yes | Set when one step between consecutive captures accounts for the change: usually a data correction, not a market move. change_pct is null in that case. |
| change_pct | number|null | yes | First-to-last change; null when change_note is set because a single step carries it. |
| coverage | object | yes | How many of the requested days have a capture, and how to read repeated or sparse values. |
| currency | string | yes | – |
| days | integer | yes | – |
| first_usd | number|null | yes | – |
| last_usd | number|null | yes | – |
| links | object | yes | – |
| name | string | yes | – |
| points | array | yes | Oldest first. Graded series only contain days with sales; gaps are normal. |
| series | string | yes | "raw" or "PSA <grade>" |
| source | string | yes | – |
| variant | string|null | yes | The printing the series follows (e.g. "holofoil"); other printings are separate markets and are never mixed in. |
No examples provided.
get_set_cards Cards in a set with prices ~112
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.
| Name | Type | Req | Description |
|---|---|---|---|
| game | string | yes | – |
| limit | integer | – | – |
| set_id | string | yes | Expansion id from list_sets. |
| sort | string | – | "value" = most valuable first; "number" = checklist order. |
| Name | Type | Req | Description |
|---|---|---|---|
| cards | array | yes | – |
| count | integer | yes | – |
| game | string | yes | – |
| set_id | string | yes | – |
| set_name | string|null | yes | – |
| total_cards | integer | yes | – |
No examples provided.
grading_roi Is this card worth grading? ~157
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.
| Name | Type | Req | Description |
|---|---|---|---|
| card_id | string | yes | Catalog card id from search_cards. |
| grading_fee_usd | number | – | Grading fee to assume. Defaults to a $25 economy tier; the table also shows $50 and $150. |
| Name | Type | Req | Description |
|---|---|---|---|
| assumed_fee_usd | number | yes | – |
| break_even_gem_probability | number|null | yes | Chance of a PSA 10 needed to break even at the assumed fee; null when grading never breaks even |
| captured_on | string|null | yes | – |
| card | object | yes | – |
| currency | string | yes | – |
| expected_value | array | yes | – |
| gem_premium_multiple | number|null | yes | PSA 10 price ÷ raw price |
| links | object | yes | – |
| net_after_fee | array | yes | – |
| psa10_usd | number|null | yes | – |
| psa9_usd | number|null | yes | – |
| raw_market_usd | number|null | yes | – |
| top_grade_by_company | array | yes | – |
| verdict | – | yes | – |
No examples provided.
liquid_movers Liquid movers (rising cards that actually sell) ~143
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.
| Name | Type | Req | Description |
|---|---|---|---|
| game | string | – | Restrict to one game or sport; omit for all. |
| include_unknown_volume | boolean | – | Also include cards whose yearly sales count is not tracked (mostly Pokémon from the Scrydex source). Off by default so every result has a verifiable sales figure. |
| limit | integer | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| as_of | string | yes | When this ranking was computed (ISO 8601) |
| cards | array | yes | – |
| count | integer | yes | – |
| criteria | string | yes | – |
| excluded_unstable | integer | yes | Candidates dropped because their own 40-day raw series did not hold together. |
| volume_verified | boolean | yes | False when the list had to include cards whose yearly sales count is not tracked (Pokémon and other Scrydex-sourced games have no volume data). |
No examples provided.
list_sets List sets / expansions ~107
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.
| Name | Type | Req | Description |
|---|---|---|---|
| game | string | yes | – |
| limit | integer | – | – |
| query | string | – | Optional substring to filter set names, e.g. "evolving" or "2019 prizm". |
| Name | Type | Req | Description |
|---|---|---|---|
| count | integer | yes | – |
| game | string | yes | – |
| links | object | yes | – |
| sets | array | yes | – |
No examples provided.
search_cards Search card prices ~229
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.
| Name | Type | Req | Description |
|---|---|---|---|
| game | string | – | Restrict to one game or sport. Omit when unsure. |
| limit | integer | – | – |
| query | string | yes | Card name, optionally with set, number or year. Examples: "Umbreon VMAX Evolving Skies", "1986 Fleer Jordan", "Charizard base set 4/102". |
| set_id | string | – | Expansion id from list_sets, to search inside one set. |
| Name | Type | Req | Description |
|---|---|---|---|
| cards | array | yes | – |
| count | integer | yes | – |
| matched_on | string | yes | The search term that produced the results |
| note | string | – | – |
| query | string | yes | – |
No examples provided.
trending_cards Trending cards (30-day price movers) ~161
Use this when the user asks which cards are rising, hot, spiking, crashing or trending, in one game or across all games. Returns the biggest 30-day gainers (or drops) with the percentage change, measured on the PSA 10 price where the card has one and on the raw price otherwise; moves over 300% are excluded as bad data. Do not use for a single named card or for long-term history.
| Name | Type | Req | Description |
|---|---|---|---|
| direction | string | – | "up" = biggest gainers, "down" = biggest drops. |
| game | string | – | Restrict to one game or sport; omit for all. |
| limit | integer | – | – |
| min_market_usd | number | – | Ignore cards whose raw price is below this. |
| Name | Type | Req | Description |
|---|---|---|---|
| cards | array | yes | – |
| count | integer | yes | – |
| criteria | string | yes | – |
| direction | string | yes | – |
| excluded_unstable | integer | yes | Candidates dropped because their own 40-day series did not hold together (too few captures, a baseline that swings >2×, a >6× range, or a one-capture jump). |
| game | string|null | yes | – |
| window_days | number | yes | – |
No examples provided.
What is the Midpoint Card Prices MCP server?
Midpoint Card Prices is an MCP server listed in the public MCP registry as com.cardcenteringtool/card-prices. Trading card prices and grading ROI for 1.5M+ Pokémon, Magic, Yu-Gi-Oh! and sports cards. Read-only. This page covers its hosted endpoint (https://mcp.cardcenteringtool.com/mcp).
Is the Midpoint Card Prices MCP server safe to use?
Midpoint Card Prices scores 76 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the Midpoint Card Prices MCP server expose?
Midpoint Card Prices exposes 9 tools: search_cards, get_card_prices, grading_roi, get_price_history, best_cards_to_grade, and 4 more. Their descriptions and schemas cost roughly 1,324 tokens of context every time the server is loaded.
Does the Midpoint Card Prices MCP server require authentication?
No. We connected to Midpoint Card Prices without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.
Is the Midpoint Card Prices MCP server still maintained?
Midpoint Card Prices is still listed as active in the MCP registry. We last reached this channel on 25 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.