Trading card prices and grading ROI for 1.5M+ Pokémon, Magic, Yu-Gi-Oh! and sports cards. Read-only.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
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.
Game or sport to rank.
Optional set slug (as used on /sets/<game>/<slug>) to rank inside one set.
Grading fee to assume. Defaults to $25.
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.
| Argument | Type | Description |
|---|---|---|
| game* | string | Game or sport to rank. |
| limit | integer | |
| set_slug | string | Optional set slug (as used on /sets/<game>/<slug>) to rank inside one set. |
| grading_fee_usd | number | Grading fee to assume. Defaults to $25. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"game"
],
"properties": {
"game": {
"enum": [
"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"
],
"type": "string",
"description": "Game or sport to rank."
},
"limit": {
"type": "integer",
"default": 12,
"maximum": 50,
"minimum": 1
},
"set_slug": {
"type": "string",
"pattern": "^[a-z0-9-]*$",
"maxLength": 80,
"description": "Optional set slug (as used on /sets/<game>/<slug>) to rank inside one set."
},
"grading_fee_usd": {
"type": "number",
"maximum": 5000,
"minimum": 0,
"description": "Grading fee to assume. Defaults to $25."
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| card_id* | string | Catalog card id from search_cards, e.g. "swsh7-215" or "pricecharting-1821843". |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"card_id"
],
"properties": {
"card_id": {
"type": "string",
"maxLength": 80,
"minLength": 1,
"description": "Catalog card id from search_cards, e.g. \"swsh7-215\" or \"pricecharting-1821843\"."
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| days | integer | |
| grade | string | PSA grade for a graded series, e.g. "10" or "9". Omit for the raw (ungraded) series. |
| card_id* | string | Catalog card id from search_cards. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"card_id"
],
"properties": {
"days": {
"type": "integer",
"default": 90,
"maximum": 180,
"minimum": 7
},
"grade": {
"type": "string",
"maxLength": 10,
"description": "PSA grade for a graded series, e.g. \"10\" or \"9\". Omit for the raw (ungraded) series."
},
"card_id": {
"type": "string",
"maxLength": 80,
"minLength": 1,
"description": "Catalog card id from search_cards."
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| game* | string | |
| sort | string | "value" = most valuable first; "number" = checklist order. |
| limit | integer | |
| set_id* | string | Expansion id from list_sets. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"game",
"set_id"
],
"properties": {
"game": {
"enum": [
"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"
],
"type": "string"
},
"sort": {
"enum": [
"value",
"number"
],
"type": "string",
"default": "value",
"description": "\"value\" = most valuable first; \"number\" = checklist order."
},
"limit": {
"type": "integer",
"default": 25,
"maximum": 100,
"minimum": 1
},
"set_id": {
"type": "string",
"pattern": "^[a-zA-Z0-9_.-]+$",
"maxLength": 60,
"minLength": 1,
"description": "Expansion id from list_sets."
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| card_id* | string | 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. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"card_id"
],
"properties": {
"card_id": {
"type": "string",
"maxLength": 80,
"minLength": 1,
"description": "Catalog card id from search_cards."
},
"grading_fee_usd": {
"type": "number",
"maximum": 5000,
"minimum": 0,
"description": "Grading fee to assume. Defaults to a $25 economy tier; the table also shows $50 and $150."
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| game | string | Restrict to one game or sport; omit for all. |
| limit | integer | |
| 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. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"game": {
"enum": [
"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"
],
"type": "string",
"description": "Restrict to one game or sport; omit for all."
},
"limit": {
"type": "integer",
"default": 15,
"maximum": 50,
"minimum": 1
},
"include_unknown_volume": {
"type": "boolean",
"default": false,
"description": "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."
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| game* | string | |
| limit | integer | |
| query | string | Optional substring to filter set names, e.g. "evolving" or "2019 prizm". |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"game"
],
"properties": {
"game": {
"enum": [
"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"
],
"type": "string"
},
"limit": {
"type": "integer",
"default": 30,
"maximum": 100,
"minimum": 1
},
"query": {
"type": "string",
"maxLength": 60,
"description": "Optional substring to filter set names, e.g. \"evolving\" or \"2019 prizm\"."
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| game | string | Restrict to one game or sport. Omit when unsure. |
| limit | integer | |
| query* | string | 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. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"query"
],
"properties": {
"game": {
"enum": [
"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"
],
"type": "string",
"description": "Restrict to one game or sport. Omit when unsure."
},
"limit": {
"type": "integer",
"default": 10,
"maximum": 50,
"minimum": 1
},
"query": {
"type": "string",
"maxLength": 80,
"minLength": 2,
"description": "Card name, optionally with set, number or year. Examples: \"Umbreon VMAX Evolving Skies\", \"1986 Fleer Jordan\", \"Charizard base set 4/102\"."
},
"set_id": {
"type": "string",
"pattern": "^[a-zA-Z0-9_.-]*$",
"maxLength": 60,
"description": "Expansion id from list_sets, to search inside one set."
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| game | string | Restrict to one game or sport; omit for all. |
| limit | integer | |
| direction | string | "up" = biggest gainers, "down" = biggest drops. |
| min_market_usd | number | Ignore cards whose raw price is below this. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"game": {
"enum": [
"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"
],
"type": "string",
"description": "Restrict to one game or sport; omit for all."
},
"limit": {
"type": "integer",
"default": 15,
"maximum": 50,
"minimum": 1
},
"direction": {
"enum": [
"up",
"down"
],
"type": "string",
"default": "up",
"description": "\"up\" = biggest gainers, \"down\" = biggest drops."
},
"min_market_usd": {
"type": "number",
"default": 5,
"maximum": 1000,
"minimum": 0.5,
"description": "Ignore cards whose raw price is below this."
}
},
"additionalProperties": false
}