Skip to main content
Glama

POKEKA — Pokémon Card Prices

Card price

card_price
Read-only

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.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
gradeNoOptional grade to price, e.g. "10", "9.5", "9". Use with company. No fallback to another grade.
card_idYesCard id from search_card / slang_lookup. An exact community nickname (e.g. "moonbreon", "鬼皮") also resolves when it maps to exactly one card.
companyNoOptional grading company to price, e.g. "PSA". Use with grade.
conditionNo"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

TableJSON Schema
NameRequiredDescriptionDefault
cardNo
noteNo
fx_as_ofNo
headlineNoomitted when there is no verified headline price — read price_status
referenceNo
grade_ladderNo
price_statusNo
last_sold_dateNo
headline_confidenceNo

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Changed3 schema fields changed
    • addedInput schema / properties / company
      Added value: +{
      +  "description": "Optional grading company to price, e.g. \"PSA\". Use with grade.",
      +  "enum": [
      +    "PSA",
      +    "BGS",
      +    "CGC",
      +    "CCIC",
      +    "ARS",
      +    "SGC",
      +    "PCG"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / condition
      Added 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"
      +}
    • addedInput schema / properties / grade
      Added value: +{
      +  "description": "Optional grade to price, e.g. \"10\", \"9.5\", \"9\". Use with company. No fallback to another grade.",
      +  "type": "string"
      +}
  2. Changed3 schema fields changed
    • addedOutput schema / properties / grade_ladder / items / properties / market
      Added 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"
      +}
    • addedOutput schema / properties / headline / properties / market
      Added 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"
      +}
    • addedOutput schema / properties / reference / properties / market
      Added 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"
      +}
  3. Changed1 schema field changed
    • changedOutput schema / properties / price_status / enum
      Previous 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"
      +]
  4. Changed10 schema fields changed
    • addedOutput schema / properties / card / properties / character
      Added value: +{
      +  "description": "featured Pokémon (EN species name)",
      +  "type": "string"
      +}
    • addedOutput schema / properties / card / properties / dex_no
      Added value: +{
      +  "type": "number"
      +}
    • addedOutput schema / properties / card / properties / finish_tiers
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / card / properties / gen_code
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / card / properties / rarity
      Added value: +{
      +  "description": "bilingual rarity bucket label",
      +  "type": "string"
      +}
    • addedOutput schema / properties / card / properties / rarity_display
      Added value: +{
      +  "additionalProperties": true,
      +  "properties": {
      +    "cjk": {
      +      "description": "JP-style code (SR/RR/…)",
      +      "type": "string"
      +    },
      +    "en": {
      +      "description": "official EN star-system name",
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
    • addedOutput schema / properties / card / properties / rarity_tier
      Added value: +{
      +  "description": "machine rarity tier key (double_rare/ultra_rare/…)",
      +  "type": "string"
      +}
    • addedOutput schema / properties / card / properties / set_name
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / card / properties / variant
      Added value: +{
      +  "description": "variant slot (master_ball/poke_ball/…); absent for normal",
      +  "type": "string"
      +}
    • addedOutput schema / properties / card / properties / variant_kind
      Added value: +{
      +  "type": "string"
      +}
  5. Changed1 schema field changed
    • changedOutput schema / properties / headline / description
      Previous value: -"null when no verified headline price"New value: +"omitted when there is no verified headline price — read price_status"
  6. Changed3 schema fields changed
    • addedOutput schema / properties / grade_ladder / items / properties / as_of
      Added value: +{
      +  "description": "snapshot date of a reference (non-sale) price — quote it as of this date, not as today",
      +  "type": "string"
      +}
    • addedOutput schema / properties / headline / properties / as_of
      Added value: +{
      +  "description": "snapshot date of a reference (non-sale) price — quote it as of this date, not as today",
      +  "type": "string"
      +}
    • addedOutput schema / properties / reference / properties / as_of
      Added value: +{
      +  "description": "snapshot date of a reference (non-sale) price — quote it as of this date, not as today",
      +  "type": "string"
      +}
  7. First observed

TDQS

A4.7/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources