tcgmcp
Server Details
Live TCG card and decklist prices for AI assistants. 22+ games, no account, ready-to-buy links.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2024-11-05
- URL
TDQS
Scored across 4 tools
Each tool targets a distinct purpose: list_printings handles printing comparisons, market_index handles set/game trends, price_card handles single card prices, and price_deck handles decklist pricing. There is no overlap in functionality, and descriptions clearly differentiate them.
Tool names use lowercase with underscores and are descriptive, but mix verb+noun (list_printings, price_card, price_deck) with a noun phrase (market_index). This is a minor deviation and does not cause confusion.
Four tools is well-scoped for a TCG pricing server, covering the essential use cases without bloat. Each tool earns its place and supports the domain.
The surface covers the core pricing workflows: single card lookup, decklist pricing, market trend analysis, and printing comparison. There are no obvious dead ends or missing operations for the stated purpose.
Available Tools
4 toolslist_printingsARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| set | No | Optional: narrow to a single set name/code. Cannot be combined with intent=cheapest or with finish/treatment. | |
| game | No | Optional game hint (e.g. 'Magic', 'Pokemon') when the name is ambiguous across games. | |
| name | Yes | Card name to look up. | |
| finish | No | Optional: narrow to printings available in a finish, e.g. 'foil' or 'etched'. Cannot be combined with intent=cheapest or with set/treatment. | |
| intent | No | Optional: "all" (default) lists every printing; "cheapest" returns only the lowest-priced one. Cannot be combined with set/finish/treatment. | |
| treatment | No | 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. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true. The description adds valuable context: the grouping field explanation with caveats about over/under-grouping, and that certain parameters cannot be combined. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no wasted words. Key information is front-loaded: what the tool does, use cases, and important caveats. Efficient and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the tool's purpose, use cases, return structure (grouping field, prices, treatments), and parameter constraints. With no output schema, the description adequately explains what is returned. Minor omissions like pagination are acceptable given the simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds semantic value by explaining the grouping field, mutual exclusivity constraints, and the intent parameter's effect. This goes beyond raw schema definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists every known printing of a TCG card with per-finish prices and treatment tags, and explicitly distinguishes from sibling tool price_card by specifying when to use it instead.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance: use for comparing printings, finding cheapest version, or specific treatment. It also mentions the grouping field and its potential inaccuracies, helping the agent decide when this tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
market_indexARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| vs | No | 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. | |
| basis | No | Optional price basis: 'market' (default) or 'low' (lowest listed price). Ignored — always 'market' — when comparing more than one scope via `vs`. | |
| scope | Yes | A game (e.g. 'pokemon', 'magic') or a specific set as 'game/set' (e.g. 'magic/fdn', 'pokemon/ssp'). | |
| track | No | Optional product track: 'all' (default), 'singles', or 'sealed'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds meaningful behavioral context: the index is chain-linked with base 100, includes time windows (7/30/90 days), and aggregates across a game or set rather than a single card. It does not describe the exact return envelope, but the listed output metrics partially compensate given no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact but information-dense, with the core meaning front-loaded, followed by usage guidance and an explicit anti-pattern with alternatives. Every sentence earns its place, and the exclusion is stated directly without filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only trend tool with full schema coverage, the description is substantively complete: it explains what data is shown, how to use it, how to compare scopes, and when not to use it. It doesn't explain edge cases like basis behavior during multi-scope comparisons, but the schema already covers that and the tool has no output schema requiring return-value documentation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters are already well documented in the schema. The description reinforces that `scope` is a game or set and that `vs` compares scopes with a cap of 3, but it does not materially add parameter-level details beyond what the input schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource ('Shows the cross-market price trend for a whole game or a single set') and enumerates the exact metrics returned: chain-linked base-100 index, 7/30/90-day movement, total market value, median price, and product count. It also explicitly distinguishes itself from single-card tools by naming price_card and list_printings as alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states direct usage triggers ('Use this for "how is Pokemon / this set trending" questions') and gives a clear exclusion: 'This is trend data across a set, NOT a single card's price — use price_card or list_printings for one card.' It also explains how to do comparisons via a comma-separated `vs` list, giving an agent actionable selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
price_cardARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| set | No | Optional set name/code to disambiguate printings. | |
| game | No | Optional game hint (e.g. 'Magic', 'Pokemon') when the name is ambiguous across games. | |
| name | Yes | Card name to look up. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the description adds value by specifying affiliate-wrapped link behavior and alternate handling for ambiguous names, with no contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two efficient sentences: the first states the core purpose, the second adds return details and edge-case handling (alternates). No waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 3 params, 100% schema coverage, and informative annotations, the description covers main use, scope, and return behavior. It lacks explicit info on no-match cases or exact output structure, but is largely complete for its simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, providing all parameter details. The description adds no new parameter semantics beyond what the schema already states, meeting the baseline expectation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool looks up the current market price of a single TCG card across 22+ games, specifies it returns the best match's price and an affiliate link with alternates, and distinguishes itself from siblings (list_printings, price_deck) by focusing on single card price lookup.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly guides usage for single card price queries and mentions alternates for ambiguous names, but does not explicitly contrast with siblings (e.g., when to use price_deck for decks) or state when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
price_deckARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| deck | Yes | The raw decklist text, one card per line (e.g. "4x Lightning Bolt\n2 Counterspell (7ED)"). | |
| game | No | Optional game hint (e.g. 'Magic', 'Pokemon', 'Yu-Gi-Oh', 'One Piece', 'Lorcana') when the decklist is ambiguous. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, and non-destructive properties, so the description's burden is lowered. It adds valuable behavioral context by detailing the output components (priced table, market-price estimate, unresolved lines with suggestions, affiliate-wrapped link) and the affiliate aspect. It does not mention edge cases like empty input or rate limits, but given the annotation coverage and the useful output details, this is a solid 4 with no contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is moderately long but packed with essential information: purpose, input format, examples, and output summary. It is well-structured, starting with the core action and then providing format details. While not as terse as a two-sentence definition, it avoids fluff and efficiently conveys all necessary usage cues. The structure effectively guides the agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with two described parameters, the description covers what an agent needs to invoke it correctly: input format, optional parameter, expected output components, and the affiliate link. It doesn't specify error handling or pagination, but these are not critical for basic usage. The description fully prepares the agent to call the tool with confidence, especially given the annotations covering safety.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (both 'deck' and 'game' have descriptions), and the tool description enriches these with concrete examples ('4x Lightning Bolt', '2 Counterspell (7ED)') and clarifies the expected line format. The optional 'game' hint is explained as a disambiguation aid. This exceeds baseline schema info, making parameter semantics very clear and actionable.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (prices a pasted decklist), the resource (decklist from any TCG), and the output (TCGplayer cart link). It provides specific examples of input format and enumerates the returned data, effectively distinguishing it from siblings like price_card, which handles individual cards, and list_printings, which focuses on printings. The purpose is unambiguous and specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes explicit instructions on how to format the decklist ('one card per line, quantity + name') and mentions an optional game hint for ambiguous cases. It indicates the tool's broad applicability across many TCGs. However, it does not explicitly state when to prefer this tool over price_card or market_index; the usage context is implied rather than directly contrasted with alternatives. This earns a 4 for clear guidance without explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
- Changed
market_index1 field changed- added
Input schema / properties / basisAdded value: +{ + "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" +}
1 tool update
- Added
market_index
1 tool update
- Added
list_printings
2 tool updates
- First observed
price_card - First observed
price_deck
Related MCP Connectors
MTG market data: search 114K+ cards, price signals, AI analysis. Free tier available.
Daily EU card prices, deals, EU-vs-US arbitrage and spike alerts for 19 card games.
Trading card prices: daily TCGplayer market, history since 2024, sold comps, PSA 10 floors. 6 games.
Trading card prices and grading ROI for 1.5M+ Pokémon, Magic, Yu-Gi-Oh! and sports cards. Read-only.
Related MCP Servers
- FlicenseNot gradedqualityBmaintenanceEnables AI assistants to look up trading-card market values across Pokémon, Magic, sports and other TCG catalogs, including raw prices by condition, graded ladders, price history, trending movers and set checklists. It also calculates grading ROI — gem premiums, net profit after fees, expected value and break-even gem rates — so collectors can decide whether a card is worth submitting.-
- AlicenseAqualityBmaintenanceProvides AI assistants with comprehensive Magic: The Gathering data including card info, combos, draft analytics, Commander metagame, constructed formats, sideboard strategy, deck building, and rules.74MIT
- FlicenseAqualityDmaintenanceProvides AI assistants with real-time access to Magic: The Gathering card data, prices, rulings, search, and synergy discovery via the Scryfall API.5-
- FlicenseNot gradedqualityBmaintenanceProvides access to TCGplayer trading card data, including search, product details, pricing, and market information, enabling natural language queries for card analysis.1-
Glama MCP Gateway
Add one secure layer between your agents and this server.