POKEKA — Pokémon Card Prices
Server Details
Real sold prices, history & PSA population for graded Pokémon cards (EN/JP/CN). Knows nicknames.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
TDQS
Each tool has a clearly distinct purpose: card_pop for population, card_price for current price, card_price_history for history, get_card_context for contextual info, get_market_brief for market overview, market_movers for price movers, market_volume_leaders for trading volume, recent_sales for recent transactions, search_card for card lookup, and slang_lookup for nickname resolution. No overlap exists.
Tool names follow a consistent snake_case convention with descriptive prefixes like 'card_', 'get_', 'market_', and 'search_'. While there is a mix of verb-first and noun-first patterns, the naming is still predictable and readable, with no inconsistencies in style.
With 10 tools, the server is well-scoped for its purpose of providing Pokémon card pricing data. Each tool serves a specific function without redundancy, covering pricing, history, context, market trends, and search.
The tool set covers the core domain thoroughly: current prices, history, population data, market trends, and search/discovery. Minor gaps exist such as the lack of a bulk price query or direct set information, but these do not significantly hinder the main use case.
Available Tools
12 toolscard_popPopulation reportARead-onlyInspect
Graded population for one card: PSA population by grade (total / 10 / 9 / 8), CCIC population (total / 10 / 9.5 / 9), PSA gem rate and scarcity tier when available.
| Name | Required | Description | Default |
|---|---|---|---|
| card_id | Yes | Card id from search_card / slang_lookup. |
Output Schema
| Name | Required | Description |
|---|---|---|
| psa | No | |
| ccic | No | |
| note | No | |
| card_id | No | |
| gem_rate | No | |
| gem_rate_band | No | |
| scarcity_tier | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, non-destructive behavior. The description adds value by detailing the exact output (PSA/CCIC populations, gem rate, scarcity tier), which goes beyond the annotations and helps the agent understand what to expect.
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 a single sentence that front-loads the core purpose ('Graded population for one card') and efficiently lists the specific data points. No redundant information.
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 simple, single-parameter tool with an output schema (mentioned in context), the description sufficiently covers the key output fields. It does not need to explain return values further, and the lack of error handling notes is acceptable.
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%, with the parameter description already specifying where to get the card_id. The tool description adds no further parameter context, so it meets the baseline but does not exceed it.
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 provides graded population data for one card, including specific grade breakdowns for PSA and CCIC, gem rate, and scarcity tier. This distinguishes it from sibling tools like card_price and get_market_brief, which focus on different aspects.
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?
While not explicitly stating when to use or avoid this tool, the description implies it is for population data on a specific card. The sibling list and the tool name help differentiate, but explicit comparative guidance would boost clarity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
card_priceCard priceARead-onlyInspect
Use when the user asks what a card is worth, its PSA 10 / PSA 9 / CCIC 10 price, current market value, or what it last sold for. Returns a headline price (USD/CNY/JPY) from verified real sales (robust median — never listings, never interpolated) with grading company, grade, sample size, window and confidence, plus a per-grade ladder (PSA 10/9/8, CCIC, BGS, CGC …). Pass company + grade to price a specific grade (e.g. company "PSA", grade "9"); if that grade has no data the response says price_status "grade_not_available" and does NOT fall back to PSA 10. price_status "reference_only" = low confidence or thin sample — quote it with that caveat (safe_to_quote=false). "card_not_found" = wrong id, search again. Markets are kept separate: Japanese cards with Japan-domestic activity are priced from JPY marketplace sales (not converted US prices), Simplified-Chinese cards from Chinese market sales including CCIC slabs.
| Name | Required | Description | Default |
|---|---|---|---|
| grade | No | Optional grade to price, e.g. "10", "9.5", "9". Use with company. No fallback to another grade. | |
| card_id | Yes | Card id from search_card / slang_lookup. An exact community nickname (e.g. "moonbreon", "鬼皮") also resolves when it maps to exactly one card. | |
| company | No | Optional grading company to price, e.g. "PSA". Use with grade. | |
| condition | No | "raw" = the user asked for an ungraded card. Raw prices are not offered yet; the response says so instead of returning a graded price. |
Output Schema
| Name | Required | Description |
|---|---|---|
| card | No | |
| note | No | |
| fx_as_of | No | |
| headline | No | omitted when there is no verified headline price — read price_status |
| reference | No | |
| grade_ladder | No | |
| price_status | No | |
| last_sold_date | No | |
| headline_confidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint annotation, the description reveals key behaviors: prices are derived from verified median sales, never listings or interpolations; there is no grade fallback; price_status values like 'reference_only' and 'card_not_found' are defined; market-specific pricing for Japanese and Simplified-Chinese cards is explained. This substantially exceeds what annotations alone provide.
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 long but every sentence carries operational weight: trigger conditions, return contents, grade-combination semantics, status codes, and market separation all in one dense block. It is front-loaded with the main use case and then builds logically into edge cases.
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?
Given the tool's complexity — multiple grades, companies, markets, price_status values, and a policy of no fallback — the description is remarkably complete. It covers not-found behavior, low-confidence quoting, raw-card handling, and cross-market differences, leaving no obvious gap for an agent to call it correctly.
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?
The schema already documents all four parameters with 100% coverage, so the baseline applies. The description adds useful combinatorial guidance — 'Pass company + grade to price a specific grade' — and clarifies that condition='raw' will not return a graded price, reinforcing the schema's semantics without contradicting it.
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 use-case trigger ('asks what a card is worth, its PSA 10 / PSA 9 / CCIC 10 price, current market value') and names the exact resource. It clearly distinguishes this from siblings like card_price_history by emphasizing a current-value snapshot with a per-grade ladder, not historical price movement.
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 explicitly states when to use the tool ('Use when the user asks...') and adds guidance for grade-specific requests and raw-card requests. It does not explicitly name alternatives or state when NOT to use it, but it gives enough contextual cues to route an agent correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
card_price_historyCard price historyARead-onlyInspect
Weekly median price series for one card (representative grade, up to 26 weeks) plus 30d/90d change percentages (only shown when statistically confident).
| Name | Required | Description | Default |
|---|---|---|---|
| weeks | No | How many recent weeks (default 26, max 26). | |
| card_id | Yes | Card id from search_card / slang_lookup. |
Output Schema
| Name | Required | Description |
|---|---|---|
| note | No | |
| series | No | |
| card_id | No | |
| point_count | No | |
| change_pct_30d | No | |
| change_pct_90d | No | |
| weeks_requested | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds context beyond annotations: weekly median, representative grade, conditional change percentages. Annotations already indicate read-only and non-destructive, so description focuses on data specifics.
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?
Single sentence, front-loaded with key information, no redundancy.
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?
Adequately describes output and conditionality. Could clarify how representative grade is determined, but overall sufficient for a historical data retrieval tool with an output schema.
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%, so baseline 3. Description does not elaborate on parameters beyond what schema provides, but adds context about data output.
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?
Description clearly states it provides weekly median price series for one card with up to 26 weeks and change percentages. It distinguishes from siblings like card_price and recent_sales.
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?
Implies usage for one card's historical prices, and notes change percentages are conditional on statistical confidence. Lacks explicit when-not-to-use or comparison to siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_card_contextCard contextARead-onlyInspect
Everything around one card beyond the price: community nicknames (圈内叫法), counterfeit-risk flags with self-check steps, holder-turnover tier (locked vs high-churn), and a curated context note — plus the headline price. Accepts card_id or an exact nickname via query (e.g. "凡高皮", "金拱门"). Absence of flags is not a clearance; coverage is curated and growing.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Alternative to card_id: an exact community nickname or alias. | |
| card_id | No | Card id from search_card / slang_lookup. |
Output Schema
| Name | Required | Description |
|---|---|---|
| card | No | |
| note | No | |
| nicknames | No | |
| risk_flags | No | |
| context_note | No | |
| hoarding_tier | No | |
| has_risk_flags | No | |
| context_coverage_note | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/openWorld/destructive annotations, the description adds a crucial behavioral caveat: 'Absence of flags is not a clearance; coverage is curated and growing.' It also discloses exact-match nickname behavior and lists the informational components returned, giving the agent important expectations beyond the 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: it front-loads the core content list, then explains the input options, and ends with an important safety caveat. Every sentence earns its place, with no redundant repetition of schema or annotations.
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 what the tool returns, how to address a card (card_id or exact nickname), and the key caveat about coverage. An output schema is present, so return-value detail is not required. For a read-only contextual lookup tool, nothing essential is missing for an agent to select and invoke it correctly.
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?
The schema already covers both parameters with descriptions, so the baseline is 3. The description adds value by providing concrete example nicknames ('凡高皮', '金拱门') and explicitly emphasizing that the query must be an exact community nickname or alias, which is not fully stated in the schema descriptions.
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 states a specific verb ('get'), a clear resource ('one card'), and enumerates specific content: nicknames, counterfeit-risk flags with self-check steps, holder-turnover tier, and a context note. It distinguishes itself from price-only siblings by explicitly saying 'beyond the price' and by naming card-level rather than market-level scope.
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 clearly implies when to use this tool: when you need non-price context around a specific card. However, it does not explicitly mention alternatives or when not to use it, such as comparing this with slang_lookup for nickname resolution or card_price for price-only queries. The usage signal is present but left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_market_briefMarket briefARead-onlyInspect
Where the graded-Pokémon market stands in its cycle, per language track (all / en / ja): a one-line phase read backed by a fixed-basket same-card index (never vibes), peak/drawdown numbers, weekly verified-sale counts, and an upcoming release/event calendar. Not investment advice.
| Name | Required | Description | Default |
|---|---|---|---|
| market | No | Track, default all. |
Output Schema
| Name | Required | Description |
|---|---|---|
| note | No | |
| as_of | No | |
| phase | No | |
| market | No | |
| basket_size | No | |
| index_level | No | |
| tx_7d_count | No | |
| upcoming_events | No | |
| change_from_base | No | |
| drawdown_from_peak | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds significant behavioral context beyond annotations: it clarifies the index is 'fixed-basket same-card index (never vibes)', states it's 'not investment advice', and lists specific output components (phase read, peak/drawdown, sale counts, calendar). Annotations only declare readOnlyHint and non-destructive, so description bears full burden and does so well.
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 a single, well-structured sentence that front-loads the core purpose and packs all key details without extraneous words. Each clause adds value.
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?
Given the tool has only one optional parameter and an output schema exists, the description covers all necessary behavioral and output context. It lists the key outputs (phase read, index, peak/drawdown, sale counts, calendar) and notes 'not investment advice', which is complete for an agent to understand and invoke correctly.
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% for the single parameter (market enum with description). The description mentions 'per language track (all / en / ja)' but omits zh-cn from the schema. This adds no new meaning beyond the schema; baseline 3 applies.
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 provides a market cycle phase read, index values, peak/drawdown numbers, sale counts, and an event calendar. It specifies the scope (graded-Pokémon market per language track) and distinguishes from sibling tools like market_movers and market_volume_leaders.
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 implies use for obtaining a high-level market overview with specific metrics, but doesn't provide explicit guidance on when to use this tool versus alternatives like market_movers or market_volume_leaders. No when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_set_overviewSet overview & checklistARead-onlyInspect
Whole-set statistics for one Pokémon TCG set: total cards, per-language-track counts, breakdown by rarity (with EN star-system + JP-style display names) and by variant (Master Ball / Poké Ball mirror slots etc.), top featured Pokémon, plus a paginated card checklist. 中文用户: 一次拿到整个系列的卡表统计(总卡数/每稀有度几张/每变体几张/出场宝可梦), 不用逐张搜。Use for questions like "how many cards / SR cards are in 151c". Accepts internal set_code, official abbreviation (CEL) or set name. Catalog data only — per-card prices via card_price.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Optional language track filter — same code can be different products per track. | |
| page | No | Checklist page (0-based). Anonymous/free tier: 20 cards/page, first 2 pages; Pro: 100/page, unlimited. | |
| set_code | Yes | Set code, official abbreviation, or set name (e.g. "151c", "sv2a", "CEL", "Celebrations"). |
Output Schema
| Name | Required | Description |
|---|---|---|
| lang | No | |
| note | No | |
| by_lang | No | |
| guidance | No | |
| set_code | No | |
| by_rarity | No | |
| checklist | No | |
| by_variant | No | |
| top_species | No | |
| total_cards | No | |
| species_note | No | |
| checklist_page | No | |
| checklist_capped | No | |
| checklist_page_size | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish the read-only, non-destructive nature. The description adds useful behavioral context beyond that: it is catalog-only, excludes per-card pricing, and details which statistics are included. This gives agents a good sense of what the tool will and will not return.
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 front-loaded with the core purpose and delivered in a compact format. The bilingual sentence is somewhat redundant for an AI agent, but it is short and does not meaningfully hurt clarity or scannability.
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?
Given the output schema, the annotations, and the schema-covered parameters, the description provides everything needed for correct tool selection and invocation. It covers scope, accepted identifiers, use cases, and the boundary against price tools.
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 schema already documents all three parameters well. The additional text mostly echoes the schema by mentioning accepted set_code formats, and does not substantially enrich parameter meaning beyond that baseline.
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 states a specific verb and resource: it returns whole-set statistics and a card checklist for one Pokémon TCG set. It differentiates itself from sibling tools by explicitly saying it is catalog data only and directing per-card price questions to card_price.
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 gives concrete use examples ('how many cards / SR cards are in 151c') and explicitly routes price-related questions to card_price. It also advises against card-by-card searching for set-level statistics, giving an agent clear when-to-use and when-not-to-use signals.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
market_moversMarket moversARead-onlyInspect
Use when the user asks which Pokémon cards are rising or falling, what is hot, or the biggest moves this week/month. lang = "en" / "ja" / "zh-cn" (market tracks never mix). direction = "up" (cards rising) or "down" (cards falling), default "up". window = "7d" / "30d" / "90d"; omit to use the default window published for that track. Every row passes a liquidity gate — at least 5 verified sales in both the current and the base window, change capped at ±40%, both medians consistent with the card's reference price — and carries price_now / price_base / n_cur / n_prev, so a listed move is a real same-card, same-grade move. Up to 20 cards.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | Yes | Market track: "en", "ja" or "zh-cn". | |
| window | No | Change window: "7d", "30d" or "90d". Omit to use the default window published for that track. | |
| direction | No | "up" = cards rising, "down" = cards falling. Default "up". |
Output Schema
| Name | Required | Description |
|---|---|---|
| note | No | |
| market | No | |
| movers | No | |
| window | No | |
| direction | No | |
| anchor_date | No | The window anchors to this latest-sale date; present it. |
| mover_count | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as read-only and non-destructive, and the description adds substantial behavioral detail beyond that: liquidity gates, the ±40% cap, median consistency checks, real same-card/same-grade moves, and a 20-card limit. This meaningfully informs the agent about result trustworthiness and constraints.
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 dense but every sentence earns its place: use case, parameter semantics, data quality rules, and row meaning all appear without repetition. The critical usage guidance is front-loaded.
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?
Given the annotations, rich input schema, and output schema, the description fully covers when to invoke the tool, what each parameter means, what guarantees each row has, and the result limit. Nothing required for correct invocation is missing.
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% and all parameters have enums, so the schema already does the heavy lifting. The description still adds value by clarifying defaults, the meaning of direction/window, and the 'market tracks never mix' constraint.
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 use case: identifying Pokémon cards that are rising or falling, hot, or making the biggest moves. This clearly names the resource (card movers) and distinguishes the tool's function from generic price or market brief tools.
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 explicitly says when to use the tool ('Use when the user asks which Pokémon cards are rising or falling...') and covers the main intent variants. It doesn't explicitly name alternatives or when not to use it, but the usage context is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
market_volume_leadersVolume leadersARead-onlyInspect
Most-traded graded Pokémon cards by verified sales count over a 24h / 7d / 30d window, filterable by language track (all / en / ja / zh-cn) and grading company (all / PSA / CCIC / PSA10). Windows anchor to the latest sale date on record (anchor_date in the response) — always present results with that date. median_usd is a mixed-grade reference; use card_price for a precise per-grade quote. Up to 50 leaders.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Language track filter, default all. | |
| limit | No | How many leaders (default 10, max 50). | |
| window | No | Volume window, default 7d. Anchored to the latest sale on record, not wall-clock now. | |
| grade_company | No | Grading filter, default all. PSA10 = PSA grade-10 slabs only. |
Output Schema
| Name | Required | Description |
|---|---|---|
| lang | No | |
| note | No | |
| window | No | |
| leaders | No | |
| anchor_date | No | Latest sale date on record — always cite this with results |
| leader_count | No | |
| grade_company | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=true, and the description adds that windows anchor to latest sale date and that median_usd is a mixed-grade reference, preventing misinterpretation. 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?
Three sentences with clear structure, no fluff. First sentence covers purpose and filters, second window behavior, third clarifies data usage.
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?
Given output schema exists, the description covers all needed: filters, window anchoring, max limit, and provides warning on median_usd use. No missing critical information.
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 covers all parameters with enums and descriptions. The description adds context: window anchoring, the meaning of PSA10, and the mixed-grade caveat for median_usd beyond schema.
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 states 'Most-traded graded Pokémon cards by verified sales count over a 24h / 7d / 30d window', which clearly defines the verb (list leaders) and resource (traded cards). It distinguishes from siblings like card_price and market_movers by focusing on volume and verified sales count.
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 specifies filters (language, grade_company) and explains window anchoring behavior. It also advises using card_price for precise per-grade quotes, providing an alternative. However, it doesn't explicitly exclude other tools like market_movers or recent_sales.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
recent_salesRecent salesARead-onlyInspect
Most recent verified sales for one card (up to 10): date, grading company + grade, price in USD, marketplace name. Sales span US, Japan-domestic and Chinese marketplaces — each sale is a real completed transaction, not a listing.
| Name | Required | Description | Default |
|---|---|---|---|
| card_id | Yes | Card id from search_card / slang_lookup. |
Output Schema
| Name | Required | Description |
|---|---|---|
| note | No | |
| sales | No | |
| card_id | No | |
| sale_count | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond readOnlyHint and destructiveHint annotations, the description adds valuable behavioral context: sales are 'real completed transactions, not listings', and they span US, Japan-domestic, and Chinese marketplaces. This authenticity and scope detail helps the agent understand the tool's limitations and reliability.
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 with no filler: first sentence conveys core purpose and output fields, second adds geographic scope and data authenticity. Information is front-loaded and every word contributes.
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 output items (up to 10, date, grading, price, marketplace), geographic scope, and data authenticity. It does not explicitly state ordering (presumably most recent first), which is a minor gap. With an output schema present, the return structure is already defined.
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% for the single required parameter card_id. The tool description repeats the same guidance ('from search_card / slang_lookup') as the schema, adding no new meaning. At baseline, with full schema coverage, a score of 3 is appropriate.
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 specifies the verb (get/recent sales) and resource (sales for one card), includes details about output fields (date, grading, price, marketplace), and implies it retrieves recent vs historical data. It distinguishes from siblings by focusing on recent sales rather than price history or population, which are covered by card_price_history and card_pop.
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 states it provides 'most recent verified sales for one card (up to 10)', giving clear context for when to use. However, it does not explicitly mention when not to use or list alternative tools like card_price or card_price_history for other use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_cardSearch cardsARead-onlyInspect
Search graded Pokémon cards by name (Chinese / English / Japanese), community nickname (e.g. "鬼皮"), or set code + card number (e.g. "sv8a 喷火龙", "CEL 4"). 中文用户: 按官方卡名/圈内简称/系列码+卡号查任意宝可梦评级卡, 返回 card_id 供查价/走势/存世量工具使用。Returns up to 10 matching cards with card_id (incl. rarity/variant/species fields) — use card_id with the other tools. A bare set code or set name (e.g. "151c", "Celebrations") returns a set-level summary with guidance instead of a truncated card list — follow it to get_set_overview / set_species_summary for whole-set stats. Optional lang filters to one language track (en / ja / zh-cn); tracks are never mixed.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Optional language track filter. | |
| query | Yes | Card name, nickname/slang, or set code + number. zh/en/ja all accepted. |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | |
| lang | No | |
| query | No | |
| sample | No | |
| by_lang | No | |
| results | No | |
| guidance | No | |
| mismatch | No | |
| set_code | No | |
| by_rarity | No | |
| condition | No | "raw" when the user asked for an ungraded card |
| query_type | No | "set" = the query was a bare set code/name; read guidance and use the set-level tools |
| exact_match | No | true only when set, number AND every other entity in the query (character, nickname, language) agree with the results |
| total_cards | No | |
| result_count | No | |
| safe_to_price | No | true = results[0] can be priced without asking the user to confirm; false = candidates only |
| grading_filter | No | |
| qualifier_note | No | |
| unresolved_note | No | |
| also_matched_sets | No | |
| unresolved_tokens | No | |
| qualifiers_dropped | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as read-only and non-destructive; the description adds meaningful behavior beyond that: a 10-result cap, the set-level fallback with guidance, the requirement to use card_id with other tools, and the guarantee that language tracks are never mixed. No contradiction with annotations.
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 front-loaded with query types and examples and remains organized across output limits, set behavior, and language filtering. The Chinese sentence partly restates the English content, but it is short and serves the bilingual user base.
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?
Given the output schema and annotations, the description covers everything needed: accepted query formats, result count, key returned fields, how to chain card_id into other tools, the set-only edge case, and language track behavior. No critical calling context is missing.
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% for both parameters, and the description still adds substantial value: concrete syntax examples ('sv8a 喷火龙', 'CEL 4'), bare set-code handling, and the semantics of the lang filter. This is well beyond what the schema alone 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 uses a specific verb-resource pair ('Search graded Pokémon cards') and enumerates the three accepted query forms: name, nickname, and set code + number. It also distinguishes this tool from siblings by explaining that bare set queries produce a set-level summary rather than a card list.
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 clearly routes bare set queries to get_set_overview / set_species_summary and instructs users to pass returned card_id to other tools. It does not explicitly contrast search_card with sibling slang_lookup, but the guidance is otherwise clear and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_species_summarySet species summaryARead-onlyInspect
Per-Pokémon breakdown for one set: how many card faces each species has and how they split across variants (base / Master Ball / Poké Ball / …). 中文用户: 这个系列里每只宝可梦有几张卡、各是什么版本(普卡/大师球闪/精灵球闪)一表拿全。Answers "which Pokémon has the most versions in this set". Counts are catalog facts, NOT pull-rate probabilities.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Optional language track filter. | |
| set_code | Yes | Set code, official abbreviation, or set name. |
Output Schema
| Name | Required | Description |
|---|---|---|
| lang | No | |
| note | No | |
| species | No | |
| guidance | No | |
| set_code | No | |
| total_cards | No | |
| coverage_note | No | |
| species_count | No | |
| species_covered_cards | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true and destructiveHint=false. The description adds valuable behavioral context by clarifying that counts are catalog facts, NOT pull-rate probabilities, which helps prevent misinterpretation of the output. It also specifies that counts refer to card faces and variant splits, adding meaning beyond the annotations.
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 main English description is concise and front-loaded with the core purpose, followed by a practical answer-oriented sentence and a useful caveat. However, the Chinese sentence nearly duplicates the English content, adding redundancy and token cost without introducing new information.
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?
Given the simple two-parameter schema, an output schema, and annotations covering safety, the description is complete enough for correct invocation. It covers what the tool returns conceptually, the intended use case, and an important interpretative caveat, leaving no critical gap for the agent.
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 set_code and lang are already documented in the input schema. The description does not add parameter-specific details, but it does not need to; the baseline of 3 applies because the schema carries the semantic weight.
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 identifies the resource: a per-Pokémon breakdown for one set, covering card-face counts and variant splits. It also states the question the tool answers, 'which Pokémon has the most versions in this set'. It does not explicitly name or differentiate sibling tools, so it stops short of a 5.
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 gives a clear use case: when you need variant counts per Pokémon in a set, or want to answer 'which Pokémon has the most versions in this set'. It does not explicitly describe when not to use it or point to alternatives, but the context is strong enough for an agent to select it appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
slang_lookupNickname lookupARead-onlyInspect
Resolve a Chinese/Japanese/English community nickname (e.g. "鬼皮", "老喷", "Zard") to the actual card(s): official names, set, number, card_id. 中文用户: 把圈内简称(鬼皮/老喷/大月…)解析成具体是哪张卡。Up to 10 cards.
| Name | Required | Description | Default |
|---|---|---|---|
| term | Yes | The nickname / slang term. |
Output Schema
| Name | Required | Description |
|---|---|---|
| note | No | |
| term | No | |
| cards | No | |
| card_count | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations only cover read-only and non-destructive behavior. The description adds behavioral detail beyond annotations by stating the result limit ('Up to 10 cards') and the multilingual scope. There is no contradiction with the annotations.
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 short, front-loaded, and to the point. It conveys purpose, supported languages, output fields, and cardinality in a compact form without repeating schema details.
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 single-parameter, read-only lookup with an output schema, the description covers input style, output contents, language coverage, and the 10-card limit. There is no meaningful gap for an agent trying to decide when to use this tool.
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% for the single term parameter, so the baseline is 3. The description adds concrete examples of valid inputs (鬼皮, 老喷, Zard) and clarifies the term may be a Chinese/Japanese/English community nickname, which is meaningful additional semantic guidance.
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 states a specific verb and resource: resolving a Chinese/Japanese/English community nickname to actual cards, and lists the resulting fields (official names, set, number, card_id). This clearly distinguishes it from sibling tools like search_card.
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 clear context: use this tool when you have a community nickname or slang term that needs mapping to a real card. It does not explicitly state when not to use it or name alternatives like search_card for official-name queries, so it stops short of a 5.
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. Dates show when Glama detected each change.
3 tool updates
- Changed
card_price3 fields changed- added
Input schema / properties / companyAdded value: +{ + "description": "Optional grading company to price, e.g. \"PSA\". Use with grade.", + "enum": [ + "PSA", + "BGS", + "CGC", + "CCIC", + "ARS", + "SGC", + "PCG" + ], + "type": "string" +} - added
Input schema / properties / conditionAdded value: +{ + "description": "\"raw\" = the user asked for an ungraded card. Raw prices are not offered yet; the response says so instead of returning a graded price.", + "enum": [ + "graded", + "raw" + ], + "type": "string" +} - added
Input schema / properties / gradeAdded value: +{ + "description": "Optional grade to price, e.g. \"10\", \"9.5\", \"9\". Use with company. No fallback to another grade.", + "type": "string" +}
- Changed
market_movers3 fields changed- changed
Input schema / properties / direction / descriptionPrevious value: -"Gainers (up) or losers (down), default up."New value: +"\"up\" = cards rising, \"down\" = cards falling. Default \"up\"." - changed
Input schema / properties / lang / descriptionPrevious value: -"Market track."New value: +"Market track: \"en\", \"ja\" or \"zh-cn\"." - changed
Input schema / properties / window / descriptionPrevious value: -"Change window. Omit to use the default window published for that track."New value: +"Change window: \"7d\", \"30d\" or \"90d\". Omit to use the default window published for that track."
- Changed
search_card7 fields changed- added
Output schema / properties / conditionAdded value: +{ + "description": "\"raw\" when the user asked for an ungraded card", + "type": "string" +} - changed
Output schema / properties / exact_match / descriptionPrevious value: -"false = the set/number qualifier in the query was NOT satisfied by any result"New value: +"true only when set, number AND every other entity in the query (character, nickname, language) agree with the results" - added
Output schema / properties / grading_filterAdded value: +{ + "additionalProperties": true, + "properties": { + "company": { + "type": "string" + }, + "grade": { + "type": "string" + } + }, + "type": "object" +} - added
Output schema / properties / mismatchAdded value: +{ + "additionalProperties": true, + "properties": { + "matched_character": { + "type": "string" + }, + "matched_name": { + "type": "string" + }, + "requested_terms": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" +} - added
Output schema / properties / safe_to_priceAdded value: +{ + "description": "true = results[0] can be priced without asking the user to confirm; false = candidates only", + "type": "boolean" +} - added
Output schema / properties / unresolved_noteAdded value: +{ + "type": "string" +} - added
Output schema / properties / unresolved_tokensAdded value: +{ + "items": { + "type": "string" + }, + "type": "array" +}
1 tool update
- Changed
card_price3 fields changed- added
Output schema / properties / grade_ladder / items / properties / marketAdded value: +{ + "description": "Which market this sale actually happened in (USD/CNY/JPY). The other two currency fields are convenience conversions at current FX rates, NOT prices observed in those markets. A USD-market sale quoted in CNY does not mean the card trades at that price in China.", + "type": "string" +} - added
Output schema / properties / headline / properties / marketAdded value: +{ + "description": "Which market this sale actually happened in (USD/CNY/JPY). The other two currency fields are convenience conversions at current FX rates, NOT prices observed in those markets. A USD-market sale quoted in CNY does not mean the card trades at that price in China.", + "type": "string" +} - added
Output schema / properties / reference / properties / marketAdded value: +{ + "description": "Which market this sale actually happened in (USD/CNY/JPY). The other two currency fields are convenience conversions at current FX rates, NOT prices observed in those markets. A USD-market sale quoted in CNY does not mean the card trades at that price in China.", + "type": "string" +}
1 tool update
- Changed
card_price1 field changed- changed
Output schema / properties / price_status / enumPrevious value: -[ - "ok", - "reference_only", - "insufficient_data", - "price_withheld_quality_gate", - "card_not_found" -]New value: +[ + "ok", + "reference_only", + "insufficient_data", + "price_withheld_quality_gate", + "card_not_found", + "unreleased" +]
1 tool update
- Changed
market_movers1 field changed- added
Output schema / properties / movers / items / properties / price_basisAdded value: +{ + "description": "\"reference\" = price_usd is a PriceCharting aggregate, NOT our verified sales — say so when quoting it.", + "enum": [ + "verified_sales", + "reference" + ], + "type": "string" +}
6 tool updates
- Changed
card_price10 fields changed- added
Output schema / properties / card / properties / characterAdded value: +{ + "description": "featured Pokémon (EN species name)", + "type": "string" +} - added
Output schema / properties / card / properties / dex_noAdded value: +{ + "type": "number" +} - added
Output schema / properties / card / properties / finish_tiersAdded value: +{ + "type": "string" +} - added
Output schema / properties / card / properties / gen_codeAdded value: +{ + "type": "string" +} - added
Output schema / properties / card / properties / rarityAdded value: +{ + "description": "bilingual rarity bucket label", + "type": "string" +} - added
Output schema / properties / card / properties / rarity_displayAdded value: +{ + "additionalProperties": true, + "properties": { + "cjk": { + "description": "JP-style code (SR/RR/…)", + "type": "string" + }, + "en": { + "description": "official EN star-system name", + "type": "string" + } + }, + "type": "object" +} - added
Output schema / properties / card / properties / rarity_tierAdded value: +{ + "description": "machine rarity tier key (double_rare/ultra_rare/…)", + "type": "string" +} - added
Output schema / properties / card / properties / set_nameAdded value: +{ + "type": "string" +} - added
Output schema / properties / card / properties / variantAdded value: +{ + "description": "variant slot (master_ball/poke_ball/…); absent for normal", + "type": "string" +} - added
Output schema / properties / card / properties / variant_kindAdded value: +{ + "type": "string" +}
- Changed
get_card_context10 fields changed- added
Output schema / properties / card / properties / characterAdded value: +{ + "description": "featured Pokémon (EN species name)", + "type": "string" +} - added
Output schema / properties / card / properties / dex_noAdded value: +{ + "type": "number" +} - added
Output schema / properties / card / properties / finish_tiersAdded value: +{ + "type": "string" +} - added
Output schema / properties / card / properties / gen_codeAdded value: +{ + "type": "string" +} - added
Output schema / properties / card / properties / rarityAdded value: +{ + "description": "bilingual rarity bucket label", + "type": "string" +} - added
Output schema / properties / card / properties / rarity_displayAdded value: +{ + "additionalProperties": true, + "properties": { + "cjk": { + "description": "JP-style code (SR/RR/…)", + "type": "string" + }, + "en": { + "description": "official EN star-system name", + "type": "string" + } + }, + "type": "object" +} - added
Output schema / properties / card / properties / rarity_tierAdded value: +{ + "description": "machine rarity tier key (double_rare/ultra_rare/…)", + "type": "string" +} - added
Output schema / properties / card / properties / set_nameAdded value: +{ + "type": "string" +} - added
Output schema / properties / card / properties / variantAdded value: +{ + "description": "variant slot (master_ball/poke_ball/…); absent for normal", + "type": "string" +} - added
Output schema / properties / card / properties / variant_kindAdded value: +{ + "type": "string" +}
- Added
get_set_overview - Changed
search_card18 fields changed- added
Output schema / properties / also_matched_setsAdded value: +{ + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / by_langAdded value: +{ + "type": "object" +} - added
Output schema / properties / by_rarityAdded value: +{ + "items": { + "additionalProperties": true, + "properties": { + "display_cjk": { + "type": "string" + }, + "display_en": { + "type": "string" + }, + "n": { + "type": "number" + }, + "tier": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" +} - added
Output schema / properties / guidanceAdded value: +{ + "type": "string" +} - added
Output schema / properties / query_typeAdded value: +{ + "description": "\"set\" = the query was a bare set code/name; read guidance and use the set-level tools", + "type": "string" +} - added
Output schema / properties / results / items / properties / characterAdded value: +{ + "description": "featured Pokémon (EN species name)", + "type": "string" +} - added
Output schema / properties / results / items / properties / dex_noAdded value: +{ + "type": "number" +} - added
Output schema / properties / results / items / properties / finish_tiersAdded value: +{ + "type": "string" +} - added
Output schema / properties / results / items / properties / gen_codeAdded value: +{ + "type": "string" +} - added
Output schema / properties / results / items / properties / rarityAdded value: +{ + "description": "bilingual rarity bucket label", + "type": "string" +} - added
Output schema / properties / results / items / properties / rarity_displayAdded value: +{ + "additionalProperties": true, + "properties": { + "cjk": { + "description": "JP-style code (SR/RR/…)", + "type": "string" + }, + "en": { + "description": "official EN star-system name", + "type": "string" + } + }, + "type": "object" +} - added
Output schema / properties / results / items / properties / rarity_tierAdded value: +{ + "description": "machine rarity tier key (double_rare/ultra_rare/…)", + "type": "string" +} - added
Output schema / properties / results / items / properties / set_nameAdded value: +{ + "type": "string" +} - added
Output schema / properties / results / items / properties / variantAdded value: +{ + "description": "variant slot (master_ball/poke_ball/…); absent for normal", + "type": "string" +} - added
Output schema / properties / results / items / properties / variant_kindAdded value: +{ + "type": "string" +} - added
Output schema / properties / sampleAdded value: +{ + "items": { + "additionalProperties": true, + "properties": { + "card_id": { + "type": "string" + }, + "card_number": { + "type": "string" + }, + "card_url": { + "type": "string" + }, + "character": { + "description": "featured Pokémon (EN species name)", + "type": "string" + }, + "dex_no": { + "type": "number" + }, + "finish_tiers": { + "type": "string" + }, + "gen_code": { + "type": "string" + }, + "image_url": { + "type": "string" + }, + "lang": { + "type": "string" + }, + "name": { + "type": "string" + }, + "rarity": { + "description": "bilingual rarity bucket label", + "type": "string" + }, + "rarity_display": { + "additionalProperties": true, + "properties": { + "cjk": { + "description": "JP-style code (SR/RR/…)", + "type": "string" + }, + "en": { + "description": "official EN star-system name", + "type": "string" + } + }, + "type": "object" + }, + "rarity_tier": { + "description": "machine rarity tier key (double_rare/ultra_rare/…)", + "type": "string" + }, + "set_code": { + "type": "string" + }, + "set_name": { + "type": "string" + }, + "variant": { + "description": "variant slot (master_ball/poke_ball/…); absent for normal", + "type": "string" + }, + "variant_kind": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" +} - added
Output schema / properties / set_codeAdded value: +{ + "type": "string" +} - added
Output schema / properties / total_cardsAdded value: +{ + "type": "number" +}
- Added
set_species_summary - Changed
slang_lookup10 fields changed- added
Output schema / properties / cards / items / properties / characterAdded value: +{ + "description": "featured Pokémon (EN species name)", + "type": "string" +} - added
Output schema / properties / cards / items / properties / dex_noAdded value: +{ + "type": "number" +} - added
Output schema / properties / cards / items / properties / finish_tiersAdded value: +{ + "type": "string" +} - added
Output schema / properties / cards / items / properties / gen_codeAdded value: +{ + "type": "string" +} - added
Output schema / properties / cards / items / properties / rarityAdded value: +{ + "description": "bilingual rarity bucket label", + "type": "string" +} - added
Output schema / properties / cards / items / properties / rarity_displayAdded value: +{ + "additionalProperties": true, + "properties": { + "cjk": { + "description": "JP-style code (SR/RR/…)", + "type": "string" + }, + "en": { + "description": "official EN star-system name", + "type": "string" + } + }, + "type": "object" +} - added
Output schema / properties / cards / items / properties / rarity_tierAdded value: +{ + "description": "machine rarity tier key (double_rare/ultra_rare/…)", + "type": "string" +} - added
Output schema / properties / cards / items / properties / set_nameAdded value: +{ + "type": "string" +} - added
Output schema / properties / cards / items / properties / variantAdded value: +{ + "description": "variant slot (master_ball/poke_ball/…); absent for normal", + "type": "string" +} - added
Output schema / properties / cards / items / properties / variant_kindAdded value: +{ + "type": "string" +}
1 tool update
- Changed
market_movers2 fields changed- changed
Input schema / properties / lang / enumPrevious value: -[ - "en", - "ja" -]New value: +[ + "en", + "ja", + "zh-cn" +] - changed
Input schema / properties / window / descriptionPrevious value: -"Change window, default 30d."New value: +"Change window. Omit to use the default window published for that track."
2 tool updates
- Changed
card_price1 field changed- changed
Output schema / properties / headline / descriptionPrevious value: -"null when no verified headline price"New value: +"omitted when there is no verified headline price — read price_status"
- Changed
search_card3 fields changed- added
Output schema / properties / exact_matchAdded value: +{ + "description": "false = the set/number qualifier in the query was NOT satisfied by any result", + "type": "boolean" +} - added
Output schema / properties / qualifier_noteAdded value: +{ + "type": "string" +} - added
Output schema / properties / qualifiers_droppedAdded value: +{ + "items": { + "type": "string" + }, + "type": "array" +}
1 tool update
- Changed
card_price3 fields changed- added
Output schema / properties / grade_ladder / items / properties / as_ofAdded value: +{ + "description": "snapshot date of a reference (non-sale) price — quote it as of this date, not as today", + "type": "string" +} - added
Output schema / properties / headline / properties / as_ofAdded value: +{ + "description": "snapshot date of a reference (non-sale) price — quote it as of this date, not as today", + "type": "string" +} - added
Output schema / properties / reference / properties / as_ofAdded value: +{ + "description": "snapshot date of a reference (non-sale) price — quote it as of this date, not as today", + "type": "string" +}
10 tool updates
- First observed
card_pop - First observed
card_price - First observed
card_price_history - First observed
get_card_context - First observed
get_market_brief - First observed
market_movers - First observed
market_volume_leaders - First observed
recent_sales - First observed
search_card - First observed
slang_lookup
Frequently Asked Questions
Claiming proves that you control a remote MCP connector. It does not move, proxy, or interrupt the server.
Open the connector listing, choose Claim ownership, and sign in to Glama.
Complete one verification method:
GitHub identity – fastest for official registry listings. For a namespace such as
io.github.alice/server, link the matching GitHub user, then choose Claim with GitHub. An organization namespace such asio.github.acme/serveralso needs that organization to have installed the Glama AI GitHub App and approved its permissions, because GitHub discloses organization membership only to apps it has installed. Use HTTP or DNS when it has not.HTTP challenge – works when you can deploy a public file. Generate a token, publish the exact JSON Glama shows at
/.well-known/glama.jsonon the same origin as the connector, then choose Check HTTP challenge.DNS challenge – works when you control DNS but cannot change the server. Generate a token, create the exact TXT record Glama shows, wait for it to propagate, then choose Check DNS challenge.
After verification, Glama sends a confirmation email and gives you access to listing details, thumbnails, health checks, and analytics. Keep the HTTP file or DNS record in place: Glama periodically checks it and ownership remains verified while the token is discoverable.
The HTTP ownership file has this structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"claim": "glama_claim_..."
}Claim tokens are opaque, stable, and bound to the signed-in Glama account. They contain no email address or other personal information. If Glama can no longer discover a verified HTTP or DNS token, it starts a seven-day grace period before removing claim-based access. Restore the same token during that period to keep ownership verified. Never publish an email address, Glama session token, GitHub token, or connector credential as ownership proof.
If verification fails, confirm that you copied the current token exactly. The HTTP file must be public, return valid JSON with a successful HTTP response, and stay on the connector's origin. DNS changes may need more time to propagate. A claim cannot transfer to a different origin or hostname: if the connector target changes, Glama starts the grace period and the new target must be claimed separately after the previous claim is released.
For a connector linked to the official MCP Registry, registry updates continue to replace its name, description, and URL by default. After claiming, open Manage connector and enable Use Glama listing details as the source of truth if edits made on Glama should be preserved. Categories and thumbnails are always managed on Glama; registry linkage and technical connection settings continue to sync.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
To improve your MCP server's ranking:
Claim ownership of the server listing
Complete the server profile with an accurate description and thumbnail
Provide a test profile so Glama can connect to and evaluate the server
Keep tool definitions clear and complete to earn a high Tool Definition Quality Score (TDQS)
Route real usage through the Glama Gateway; more recorded successful server uses also improve the ranking
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Connectors
Neutral prices + PSA population for PSA-graded vintage Pokémon (WotC 1999–2003). Read-only.
Connect to your CollectHolo Pokémon card collection. Check your portfolio value, look up card, sealed and graded (PSA/BGS/CGC) prices from Cardmarket, TCGplayer, eBay, Goldin and Fanatics, search the catalog in six languages, import a whole collection from a spreadsheet, and add or update holdings in plain language. Every change asks for confirmation.
Live TCG card and decklist prices for AI assistants. 22+ games, no account, ready-to-buy links.
Daily EU card prices, deal detection and EU-vs-US arbitrage for 19 trading card games.
Related MCP Servers
- AlicenseBqualityCmaintenanceVision-guided Pokémon TCG card identification server that matches exact printings using visual evidence and marketplace data.401MIT
- AlicenseAqualityDmaintenanceA Pokemon TCG MCP server that looks up graded cards, manages a local SQLite collection, queries pricing providers, tracks a watchlist with target prices, and snapshots PSA pop counts for trend analysis.331MIT
- AlicenseAqualityDmaintenanceReal-time sports card pricing, market analysis, arbitrage detection, grading ROI, investment advice, and player stats (NBA/NFL/MLB). 9 tools for AI agents helping collectors and investors.92MIT
- AlicenseAqualityBmaintenanceOn-chain TCG price oracle for the LitecoinVM ecosystem. 6 tools: search 433K+ trading cards, 60-day price history, Merkle proof verification on LiteForge (Chain 4441), Monte Carlo simulation, and AI card grading via Qwen 2.5 VL.7Business Source 1.1