tcgmcp
Live TCG card and decklist prices for AI assistants. 22+ games, no account, ready-to-buy links.
使うべきか
品質と安全性
ツール定義とプロトコルへの準拠に関する自動分析に基づいています。
コンテキストコスト
これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。
インストール
ワンクリックインストール
これを `claude_desktop_config.json` ファイルに追加してください:
{
"mcpServers": {
"tcgmcp": {
"url": "https://mcp.tcgmcp.com/mcp"
}
}
}リモートエンドポイント
https://mcp.tcgmcp.com/mcpstreamable-httpできること
ツール一覧
ツール(4)
🟢price_deck(deck, game)
Prices a pasted decklist (any TCG: Magic, Pokemon, Yu-Gi-Oh, One Piece, Lorcana, and 18+ more) and returns a ready-to-buy TCGplayer cart link. Paste the raw decklist text — one card per line, quantity + name, e.g. '4x Lightning Bolt' or '2 Counterspell (7ED)'. Returns a priced table (qty, name, set, unit price, line total), a market-price estimate (full estimate, known-price subtotal, or unknown depending on price coverage), any lines that couldn't be resolved with did-you-mean suggestions, and one affiliate-wrapped buy link.
入力スキーマ
{
"type": "object",
"properties": {
"deck": {
"description": "The raw decklist text, one card per line (e.g. \"4x Lightning Bolt\\n2 Counterspell (7ED)\").",
"type": "string"
},
"game": {
"description": "Optional game hint (e.g. 'Magic', 'Pokemon', 'Yu-Gi-Oh', 'One Piece', 'Lorcana') when the decklist is ambiguous.",
"type": "string"
}
},
"required": [
"deck"
]
}🟢price_card(game, name, set)
Looks up the current market price of a single TCG card (any of 22+ games: Magic, Pokemon, Yu-Gi-Oh, One Piece, Lorcana, and more). Returns the best match's price and an affiliate-wrapped TCGplayer product link, plus alternates when the name is ambiguous.
入力スキーマ
{
"type": "object",
"properties": {
"game": {
"description": "Optional game hint (e.g. 'Magic', 'Pokemon') when the name is ambiguous across games.",
"type": "string"
},
"name": {
"description": "Card name to look up.",
"type": "string"
},
"set": {
"description": "Optional set name/code to disambiguate printings.",
"type": "string"
}
},
"required": [
"name"
]
}🟢list_printings(finish, game, intent, name, set, ...)
Lists every known printing of a TCG card (any of 22+ games) — every set it was printed in, with per-finish (nonfoil/foil) prices and treatment tags (border, frame, promo, full art). Use this instead of price_card when the buyer wants to compare printings, find the cheapest version, or find a specific treatment (e.g. borderless, showcase). Returns a `grouping` field: "oracle_id" means the printings are confirmed the exact same card; "normalized_name" is a best-effort name match that can occasionally over- or under-group.
入力スキーマ
{
"type": "object",
"properties": {
"finish": {
"description": "Optional: narrow to printings available in a finish, e.g. 'foil' or 'etched'. Cannot be combined with intent=cheapest or with set/treatment.",
"type": "string"
},
"game": {
"description": "Optional game hint (e.g. 'Magic', 'Pokemon') when the name is ambiguous across games.",
"type": "string"
},
"intent": {
"description": "Optional: \"all\" (default) lists every printing; \"cheapest\" returns only the lowest-priced one. Cannot be combined with set/finish/treatment.",
"enum": [
"all",
"cheapest"
],
"type": "string"
},
"name": {
"description": "Card name to look up.",
"type": "string"
},
"set": {
"description": "Optional: narrow to a single set name/code. Cannot be combined with intent=cheapest or with finish/treatment.",
"type": "string"
},
"treatment": {
"description": "Optional: narrow to printings with a treatment/variant, e.g. 'borderless', 'showcase', 'full_art', 'boosterfun'. Cannot be combined with intent=cheapest or with set/finish.",
"type": "string"
}
},
"required": [
"name"
]
}🟢market_index(basis, scope, track, vs)
Shows the cross-market price trend for a whole game or a single set — a chain-linked index (base 100) with 7/30/90-day movement, the total market value of one-of-every product, the median price, and how many products are priced. Use this for "how is Pokemon / this set trending" questions, or pass a comma-separated `vs` list to compare up to 3 scopes. This is trend data across a set, NOT a single card's price — use price_card or list_printings for one card.
入力スキーマ
{
"type": "object",
"properties": {
"basis": {
"description": "Optional price basis: 'market' (default) or 'low' (lowest listed price). Ignored — always 'market' — when comparing more than one scope via `vs`.",
"enum": [
"market",
"low"
],
"type": "string"
},
"scope": {
"description": "A game (e.g. 'pokemon', 'magic') or a specific set as 'game/set' (e.g. 'magic/fdn', 'pokemon/ssp').",
"type": "string"
},
"track": {
"description": "Optional product track: 'all' (default), 'singles', or 'sealed'.",
"enum": [
"all",
"singles",
"sealed"
],
"type": "string"
},
"vs": {
"description": "Optional: comma-separated extra scopes to compare against, e.g. 'pokemon,lorcana' or 'magic/fdn,magic/blb'. The primary scope plus compares are capped at 3 total.",
"type": "string"
}
},
"required": [
"scope"
]
}コミュニティ
エビデンス