{
  "generated_on": "2026-09-20",
  "endpoint": "https://mcp.tradingcarddata.com/mcp",
  "source_deployment": "598e8215-f5d1-4c66-86b8-149dafe2682d",
  "tools": [
    {
      "name": "account_usage",
      "description": "Read current service access, monthly allowance, usage and privacy settings.",
      "inputSchema": {
        "properties": {},
        "title": "account_usageArguments",
        "type": "object"
      },
      "annotations": {
        "title": "View usage and privacy settings",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "privacy_settings",
      "description": "Change optional research-search text retention for the signed-in account.\n        True opts in to redacted search-text storage for 30 days. False opts out and\n        clears retained search text. Does not collect conversation history or delete\n        saved indexes or alerts.",
      "inputSchema": {
        "properties": {
          "store_search_text": {
            "title": "Store Search Text",
            "type": "boolean"
          }
        },
        "required": [
          "store_search_text"
        ],
        "title": "privacy_settingsArguments",
        "type": "object"
      },
      "annotations": {
        "title": "Change search-text retention",
        "readOnlyHint": false,
        "destructiveHint": true,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "delete_research_history",
      "description": "Delete this account's research analytics, feedback and saved personal indexes.\n        Requires the user's explicit request and confirm=true. Saved alert rules,\n        service quotas, access and billing records remain. Billing is not cancelled.\n        ",
      "inputSchema": {
        "properties": {
          "confirm": {
            "title": "Confirm",
            "type": "boolean"
          }
        },
        "required": [
          "confirm"
        ],
        "title": "delete_research_historyArguments",
        "type": "object"
      },
      "annotations": {
        "title": "Delete research history and saved indexes",
        "readOnlyHint": false,
        "destructiveHint": true,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "submit_feedback",
      "description": "Save optional product feedback explicitly provided by the user.\n        comment is feedback about the service, not conversation history or personal context.\n        Feedback text is retained for 30 days.\n        ",
      "inputSchema": {
        "properties": {
          "helpful": {
            "title": "Helpful",
            "type": "boolean"
          },
          "comment": {
            "default": "",
            "title": "Comment",
            "type": "string"
          }
        },
        "required": [
          "helpful"
        ],
        "title": "submit_feedbackArguments",
        "type": "object"
      },
      "annotations": {
        "title": "Save product feedback",
        "readOnlyHint": false,
        "destructiveHint": false,
        "idempotentHint": false,
        "openWorldHint": false
      }
    },
    {
      "name": "chart",
      "description": "Draw one interactive chart of market data for one to six series, up to four panels.\n    Resolves product and set names itself and reads their histories. Returns one widget,\n    or a static image for clients without widgets; include_table=true adds a data table.\n    Series: {kind, name, asset_id?, kind_hint?, set_name?, grader?, grade?, marketplace?,\n    currency?, sentiment?, against?, of?, window_days?, complete_weeks_only?}. Kinds: price,\n    price_per_pack (one sealed product), graded, population, population_all, set_raw,\n    set_psa10, set_psa9, set_pack, set_available, set_raw_performance, set_graded,\n    set_graded_performance, set_pack_performance, index, volume, orders, search_interest,\n    mentions, store_low, restocks. set_raw is the precomputed daily sum of raw card prices in\n    USD (set_available is an alias). set_graded takes grader and grade (PSA 7/8/9/10, BGS 10,\n    CGC 9.5/10); set_psa9/10 are aliases. set_pack is the daily preferred-product median USD\n    per pack. The *_performance kinds are chain-linked performance lines, not actual values.\n    Derived kinds: share_of_set (of the product's own set unless set_name is given),\n    grading_premium, grading_spread, ratio and spread (need against: a kind name such as\n    \"population\" or a nested series; a grade on the series makes the numerator the graded\n    price), rolling_change (window_days), drawdown, pop_growth. A ratio is a single series,\n    e.g. {kind: ratio, name: Moonbreon, grader: PSA, grade: \"10\", against: population}.\n    Index series named e.g. Booster Box and Elite Trainer Box in one call share a base of 100\n    at their first common date. Markers: {kind: set_release | product_wave | rotation | restock\n    | news | tournament | high | low, set_name?, set_id?, name?, asset_id?, retailer?, topic?,\n    label?: auto|none}. Restock markers use exact product mappings when name/asset_id is\n    given; set_name covers mapped set alerts across formats; without a target they follow the\n    first sealed price series. Restocks count recorded alerts, not units or print runs.\n    Unlike units get separate panels unless normalize rebases them (normalize=usd keeps\n    dollars). Window: days (any number), start_date/end_date, or period: ytd, last_year\n    (previous calendar year) or since_release (from the first series' release date). With no\n    window the chart covers the shared available history of all series. series_coverage\n    reports each series' first observation and gaps; gaps are drawn as breaks, never filled.\n    An ambiguous name returns status 'choose' with candidates (English, most valuable first)\n    and their asset_id and kind_hint. release_comparison={set_names:[...], start_day:0,\n    end_day:30, measure:raw|graded|pack|all} (with no series) charts sets at matched ages\n    after release; negative days are preorders.",
      "inputSchema": {
        "properties": {
          "series": {
            "anyOf": [
              {
                "items": {
                  "additionalProperties": true,
                  "type": "object"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Series"
          },
          "markers": {
            "anyOf": [
              {
                "items": {
                  "additionalProperties": true,
                  "type": "object"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Markers"
          },
          "days": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Days"
          },
          "start_date": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Start Date"
          },
          "end_date": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "End Date"
          },
          "layout": {
            "default": "auto",
            "enum": [
              "auto",
              "overlay",
              "panels"
            ],
            "title": "Layout",
            "type": "string"
          },
          "normalize": {
            "default": "auto",
            "enum": [
              "auto",
              "usd",
              "rebase_100",
              "pct_change"
            ],
            "title": "Normalize",
            "type": "string"
          },
          "title": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Title"
          },
          "render": {
            "default": true,
            "title": "Render",
            "type": "boolean"
          },
          "period": {
            "anyOf": [
              {
                "enum": [
                  "ytd",
                  "last_year",
                  "since_release"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Period"
          },
          "include_table": {
            "default": false,
            "title": "Include Table",
            "type": "boolean"
          },
          "release_comparison": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Release Comparison"
          }
        },
        "title": "chartArguments",
        "type": "object"
      },
      "annotations": {
        "title": "Chart market data",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "_meta": {
        "ui": {
          "resourceUri": "ui://pokemon-research/chart-9b01169819.html"
        },
        "ui/resourceUri": "ui://pokemon-research/chart-9b01169819.html"
      }
    },
    {
      "name": "display_results",
      "description": "Show a ranked list, market brief, product/set overview or set of name matches as one\n    interactive visual with pictures. query selects the lookup and arguments follow that\n    lookup's schema. query=find_asset lists every product a name matches, most valuable first.\n    query=market_summary returns the product/set overview dashboard. Other queries: screen,\n    top_movers, find_cards, best_price_per_pack, rank_sets, market_brief. Example:\n    query=rank_sets, arguments={measure: concentration_top10, keyword: Evolving Skies}.\n    The widget carries the full list; the text result carries a compact table.",
      "inputSchema": {
        "properties": {
          "query": {
            "enum": [
              "screen",
              "top_movers",
              "find_cards",
              "find_asset",
              "best_price_per_pack",
              "rank_sets",
              "market_brief",
              "market_summary"
            ],
            "title": "Query",
            "type": "string"
          },
          "arguments": {
            "additionalProperties": true,
            "title": "Arguments",
            "type": "object"
          }
        },
        "required": [
          "query",
          "arguments"
        ],
        "title": "display_resultsArguments",
        "type": "object"
      },
      "annotations": {
        "title": "Display market research results",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "_meta": {
        "ui": {
          "resourceUri": "ui://pokemon-research/list-792e6de073.html"
        },
        "ui/resourceUri": "ui://pokemon-research/list-792e6de073.html"
      }
    },
    {
      "name": "rank_sets",
      "description": "Rank sets by recorded value, top-ten concentration, Gini or pack-to-set ratio.\n    Values use recorded priced baskets with coverage, not expected pack payouts.\n    Change rankings use absolute change (percentage points for concentration);\n    concentration/Gini changes require the same constituent identities.",
      "inputSchema": {
        "properties": {
          "measure": {
            "default": "set_value_raw",
            "enum": [
              "set_value_raw",
              "set_value_psa10",
              "concentration_top10",
              "gini",
              "sealed_to_set_ratio"
            ],
            "title": "Measure",
            "type": "string"
          },
          "series": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Series"
          },
          "keyword": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Keyword"
          },
          "window": {
            "default": 30,
            "title": "Window",
            "type": "integer"
          },
          "sort": {
            "default": "highest",
            "enum": [
              "highest",
              "lowest",
              "biggest_increase",
              "biggest_decrease"
            ],
            "title": "Sort",
            "type": "string"
          },
          "limit": {
            "default": 15,
            "title": "Limit",
            "type": "integer"
          },
          "min_value": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Min Value"
          },
          "max_value": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Max Value"
          }
        },
        "title": "rank_setsArguments",
        "type": "object"
      },
      "annotations": {
        "title": "Rank Pok\u00e9mon sets",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "compare_set_releases",
      "description": "Compare 2\u20135 named sets at the same age after release.\n    Uses precomputed fixed-basket raw/PSA 10 set values and median price per pack.\n    Ages are days since the recorded physical set debut; negative days select preorders.\n    Only shared observed ages are compared, with exact dates, counts and actual endpoints.\n    Supported ages: -90 to 365. PSA 10 and raw baskets can contain different cards.\n    Returns data only.",
      "inputSchema": {
        "properties": {
          "set_names": {
            "items": {
              "type": "string"
            },
            "title": "Set Names",
            "type": "array"
          },
          "start_day": {
            "default": 0,
            "title": "Start Day",
            "type": "integer"
          },
          "end_day": {
            "default": 30,
            "title": "End Day",
            "type": "integer"
          },
          "measure": {
            "default": "all",
            "enum": [
              "all",
              "raw",
              "graded",
              "pack"
            ],
            "title": "Measure",
            "type": "string"
          },
          "render": {
            "default": false,
            "title": "Render",
            "type": "boolean"
          }
        },
        "required": [
          "set_names"
        ],
        "title": "compare_set_releasesArguments",
        "type": "object"
      },
      "annotations": {
        "title": "Compare set launches",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "release_calendar",
      "description": "English US set releases, upcoming sets and recorded rotation dates in one call.\n    With no dates lists upcoming events; set_name also finds that set's past release.\n    Use event_type=rotation or all for regulation marks and dated format rotations.\n    Dates are recorded announcements, not predictions; set debut differs from later product waves.",
      "inputSchema": {
        "properties": {
          "set_name": {
            "default": "",
            "title": "Set Name",
            "type": "string"
          },
          "event_type": {
            "default": "release",
            "enum": [
              "release",
              "rotation",
              "all"
            ],
            "title": "Event Type",
            "type": "string"
          },
          "start_date": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Start Date"
          },
          "end_date": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "End Date"
          },
          "limit": {
            "default": 30,
            "title": "Limit",
            "type": "integer"
          }
        },
        "title": "release_calendarArguments",
        "type": "object"
      },
      "annotations": {
        "title": "Look up release dates",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "restock_history",
      "description": "Last known restock, dated retailer alerts and counts for a product, set or retailer.\n    Pass a product name directly; no identifier lookup required. Latest-known searches all\n    stored history even when days selects a recent counting window. Restock numbers mean\n    distinct source alerts. Inventory quantities appear only when explicitly reported;\n    repeated stock snapshots are never summed into units supplied or print runs.",
      "inputSchema": {
        "properties": {
          "query": {
            "default": "",
            "title": "Query",
            "type": "string"
          },
          "set_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Set Name"
          },
          "product_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Product Id"
          },
          "retailer": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Retailer"
          },
          "days": {
            "default": 90,
            "title": "Days",
            "type": "integer"
          },
          "limit": {
            "default": 15,
            "title": "Limit",
            "type": "integer"
          }
        },
        "title": "restock_historyArguments",
        "type": "object"
      },
      "annotations": {
        "title": "Look up recorded restocks",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "search_news",
      "description": "Search indexed Pok\u00e9mon news and announcements by words, set, topic and publication window.\n    Returns short attributed evidence and article links, newest/relevant first.\n    Publisher reports by default; include_community_posts=true adds labeled forum posts. Use for\n    release announcements, reprint reports and rotation news. A rumor stays a rumor;\n    article publication date is not necessarily the announced event date.",
      "inputSchema": {
        "properties": {
          "query": {
            "default": "",
            "title": "Query",
            "type": "string"
          },
          "set_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Set Name"
          },
          "topic": {
            "anyOf": [
              {
                "enum": [
                  "release",
                  "reprint",
                  "restock",
                  "rotation",
                  "grading",
                  "tournament"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Topic"
          },
          "days": {
            "default": 30,
            "title": "Days",
            "type": "integer"
          },
          "limit": {
            "default": 10,
            "title": "Limit",
            "type": "integer"
          },
          "include_community_posts": {
            "default": false,
            "title": "Include Community Posts",
            "type": "boolean"
          }
        },
        "title": "search_newsArguments",
        "type": "object"
      },
      "annotations": {
        "title": "Search market news",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "tournament_results",
      "description": "Recorded tournament player entries, dates and optional leading deck archetypes.\n    Masters (MA) by default; counts are stored standings in that division, not spectators,\n    unique people across events or all-age attendance. query matches event/city/type.\n    Country uses source country code. include_meta adds the five leading recorded decks.",
      "inputSchema": {
        "properties": {
          "query": {
            "default": "",
            "title": "Query",
            "type": "string"
          },
          "days": {
            "default": 365,
            "title": "Days",
            "type": "integer"
          },
          "division": {
            "default": "MA",
            "enum": [
              "MA",
              "SR",
              "JR"
            ],
            "title": "Division",
            "type": "string"
          },
          "country": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Country"
          },
          "event_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Event Id"
          },
          "limit": {
            "default": 20,
            "title": "Limit",
            "type": "integer"
          },
          "include_meta": {
            "default": false,
            "title": "Include Meta",
            "type": "boolean"
          }
        },
        "title": "tournament_resultsArguments",
        "type": "object"
      },
      "annotations": {
        "title": "Look up tournament results",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "search_interest",
      "description": "Look up tracked Google search interest for a set, product or market term by name.\n    Each keyword uses its latest collection's own 0\u2013100 scale. Values are relative\n    interest, not search counts, sales or comparable absolute popularity across terms.\n    Returns dated points and complete-period changes where collection metadata permits.",
      "inputSchema": {
        "properties": {
          "query": {
            "title": "Query",
            "type": "string"
          },
          "days": {
            "default": 90,
            "title": "Days",
            "type": "integer"
          },
          "geo": {
            "default": "US",
            "title": "Geo",
            "type": "string"
          },
          "limit": {
            "default": 5,
            "title": "Limit",
            "type": "integer"
          },
          "render": {
            "default": false,
            "title": "Render",
            "type": "boolean"
          }
        },
        "required": [
          "query"
        ],
        "title": "search_interestArguments",
        "type": "object"
      },
      "annotations": {
        "title": "Look up search interest",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "find_asset",
      "description": "Identify a card or sealed product by (partial) name and return every matching\n    candidate with kind, game, set, language, variant details, current price and reference.\n    It never picks one when several match. Optional game: pokemon, riftbound or onepiece.\n    category narrows to ir, sir, raw, card, graded or sealed; set_name narrows by set.\n    'japanese' in the query filters to Japanese-language cards. Examples: 'moonbreon',\n    '151 booster box', 'delta reign etb', 'charizard ex 30th celebration', 'pikachu japanese'.",
      "inputSchema": {
        "properties": {
          "query": {
            "title": "Query",
            "type": "string"
          },
          "category": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Category"
          },
          "set_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Set Name"
          },
          "game": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Game"
          }
        },
        "required": [
          "query"
        ],
        "title": "find_assetArguments",
        "type": "object"
      },
      "annotations": {
        "title": "Find a card or sealed product",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "price_of",
      "description": "Current market price of one product in USD, plus the same product's price on\n    TCGplayer, eBay and Cardmarket (EUR, European market). Includes the as-of date, every\n    marketplace value with its own date, what it cost 7 and 30 days ago, price per pack for\n    sealed products, the latest graded prices for cards, and stored eBay listing evidence\n    with links and freshness (asking prices, not sold prices). Takes a name (plus optional\n    category/set_name) or kind + asset_id. Covers current prices and 7/30-day comparisons\n    only, not year-to-date performance.",
      "inputSchema": {
        "properties": {
          "name": {
            "default": "",
            "title": "Name",
            "type": "string"
          },
          "category": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Category"
          },
          "set_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Set Name"
          },
          "kind": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Kind"
          },
          "asset_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Asset Id"
          }
        },
        "title": "price_ofArguments",
        "type": "object"
      },
      "annotations": {
        "title": "Look up current market prices",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "price_history",
      "description": "Observed market-price history for one asset (card or sealed; days 1\u2013366), as data.\n    Returns dated observations, the gaps between them, currency and as-of; missing days\n    are gaps, not zero. The default summary includes calculated 7/30/90/365-day comparisons\n    with actual endpoints (one year means 365 days). detail=\"daily\" returns every\n    observation. period=ytd means January 1 through today; last_year means the preceding\n    calendar year; named periods override days. Takes kind and entity_id. Shorter available\n    histories are explicitly dated. Not a forecast.",
      "inputSchema": {
        "properties": {
          "kind": {
            "title": "Kind",
            "type": "string"
          },
          "entity_id": {
            "title": "Entity Id",
            "type": "string"
          },
          "days": {
            "default": 90,
            "title": "Days",
            "type": "integer"
          },
          "detail": {
            "default": "summary",
            "title": "Detail",
            "type": "string"
          },
          "render": {
            "default": false,
            "title": "Render",
            "type": "boolean"
          },
          "period": {
            "anyOf": [
              {
                "enum": [
                  "ytd",
                  "last_year"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Period"
          }
        },
        "required": [
          "kind",
          "entity_id"
        ],
        "title": "price_historyArguments",
        "type": "object"
      },
      "annotations": {
        "title": "Look up price history",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "compare_price_history",
      "description": "Compare observed price changes for two to five assets of one kind over the same\n    window (days 1\u2013366), by asset reference. Uses shared observed start and end dates,\n    states the aligned window, and notes long flat-price stretches. Missing comparisons are\n    reported as missing, never as zero. measure selects psa7/8/9/10, bgs10 or cgc95/10 for\n    graded card estimates; omit for raw prices. Returns data only.",
      "inputSchema": {
        "properties": {
          "kind": {
            "title": "Kind",
            "type": "string"
          },
          "entity_ids": {
            "items": {
              "type": "string"
            },
            "title": "Entity Ids",
            "type": "array"
          },
          "days": {
            "default": 90,
            "title": "Days",
            "type": "integer"
          },
          "render": {
            "default": false,
            "title": "Render",
            "type": "boolean"
          },
          "measure": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Measure"
          }
        },
        "required": [
          "kind",
          "entity_ids"
        ],
        "title": "compare_price_historyArguments",
        "type": "object"
      },
      "annotations": {
        "title": "Compare historical prices",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "best_price_per_pack",
      "description": "Compare market cost per pack in USD for sealed products. A full set name counts only\n    that set's packs, including those in mixed products. Default output: lowest and highest\n    per-pack prices and dollar differences, with product prices, recorded pack counts, dates\n    and the comparison scope. include_percentages=true adds percentage premiums and discounts\n    (which use product-specific denominators); include_upfront=true adds the lowest total\n    purchase prices. The table is the cheapest shortlist plus the highest-cost comparison, not\n    the full market. These are market estimates, not available store offers. Pack counts do\n    not establish seller authenticity or unlisted accessories.",
      "inputSchema": {
        "properties": {
          "search": {
            "default": "",
            "title": "Search",
            "type": "string"
          },
          "include_percentages": {
            "default": false,
            "title": "Include Percentages",
            "type": "boolean"
          },
          "include_upfront": {
            "default": false,
            "title": "Include Upfront",
            "type": "boolean"
          }
        },
        "title": "best_price_per_packArguments",
        "type": "object"
      },
      "annotations": {
        "title": "Compare sealed prices per pack",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "find_cards",
      "description": "Card screener over current USD market prices. Answers: 'Scarlet & Violet cards above\n    $100', 'cards down over 20% this month' (max_change_30d_pct=-20), 'Illustration Rares\n    under $30 up 10%+'. sort: price | change_30d | -change_30d. price_basis=\"psa10\" screens\n    on each card's PSA 10 market estimate instead of the raw price (price and change bounds\n    then apply to the PSA 10 value). measure chooses value and sorting: raw_price,\n    psa7/8/9/10, bgs10, cgc95/10, units_sold, transactions, psa10_population,\n    total_population, gem_rate, market_cap, low_price.",
      "inputSchema": {
        "properties": {
          "series": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Series"
          },
          "rarity": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Rarity"
          },
          "keyword": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Keyword"
          },
          "set_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Set Name"
          },
          "min_price": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Min Price"
          },
          "max_price": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Max Price"
          },
          "min_change_30d_pct": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Min Change 30D Pct"
          },
          "max_change_30d_pct": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Max Change 30D Pct"
          },
          "sort": {
            "default": "price",
            "title": "Sort",
            "type": "string"
          },
          "limit": {
            "default": 15,
            "title": "Limit",
            "type": "integer"
          },
          "price_basis": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Price Basis"
          },
          "measure": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Measure"
          },
          "min_value": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Min Value"
          },
          "max_value": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Max Value"
          }
        },
        "title": "find_cardsArguments",
        "type": "object"
      },
      "annotations": {
        "title": "Find cards matching market filters",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "top_movers",
      "description": "Biggest gainers or losers by observed market price. direction: up or\n    down; days: 7, 14, 30, 60, 90, 180 or 365; min_price filters out bulk; kind: sealed (all\n    products) or card (set_name is optional). price_basis=\"psa10\" ranks cards by their PSA 10\n    market estimate instead of the raw price (cards only; use it for \"which PSA 10 cards fell\").\n    measure also supports psa7/8/9, bgs10, cgc95/10, price_per_pack, units_sold,\n    transactions, psa10_population, total_population and market_cap. It chooses value and change.",
      "inputSchema": {
        "properties": {
          "direction": {
            "default": "up",
            "title": "Direction",
            "type": "string"
          },
          "days": {
            "default": 30,
            "title": "Days",
            "type": "integer"
          },
          "min_price": {
            "default": 0,
            "title": "Min Price",
            "type": "number"
          },
          "kind": {
            "default": "sealed",
            "title": "Kind",
            "type": "string"
          },
          "set_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Set Name"
          },
          "price_basis": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Price Basis"
          },
          "measure": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Measure"
          },
          "min_value": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Min Value"
          }
        },
        "title": "top_moversArguments",
        "type": "object"
      },
      "annotations": {
        "title": "Find historical price movers",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "screen",
      "description": "Rank matching cards or sealed products. measure chooses what value, change and sort refer to:\n    raw_price, psa7/8/9/10, bgs10, cgc95/10, low_price, direct_low_price, price_per_pack (sealed),\n    units_sold, transactions, estimated_turnover, psa10_population, total_population, gem_rate,\n    cardmarket_price (sealed EUR trend guide across languages, verified mappings only),\n    market_cap, grading_spread, grade_spread. min/max_value bound that measure; min/max_change\n    are absolute changes (percentage points for gem rate/spreads), min/max_change_pct are relative.\n    sort highest/lowest or biggest_increase/decrease; percentage-valued measures sort change in points.\n    secondary_filter adds one other measure's bounds before limiting. grade_measure and compare_to\n    choose the grades for spread rankings. finish normal/holo/reverse applies to raw price feeds.\n    Sales estimates compare equal trailing periods excluding today; population is reported PSA\n    copies. Grades are noisy market estimates; price floors do not establish trade liquidity.\n    With measure, windows are 1\u2013365 days, mtd (calendar month to date), ytd or last_year\n    (historical sales unsupported); 30 means a trailing 30 days. Catalog filters combine before\n    limiting; absent comparisons cannot satisfy bounds. rarity is an exact category: Illustration\n    Rare (IR) excludes Special Illustration Rare (SIR). product_type is exact: booster_box\n    excludes cases; booster_box_case selects cases. Legacy parameters (min/max_price in USD,\n    price_basis=raw/psa10) remain supported; measure is the current interface. Without measure,\n    named windows include since_release, ytd, last_year; day windows are 7/14/30/60/90/180/365.\n    Legacy price/change/volume sorts descend; a leading minus reverses them. Bounds are inclusive;\n    -0.01 means strictly falling. include_volume and min_volume_trend_pct refer to raw TCGplayer\n    sales, four ended calendar weeks versus the preceding four, independently of measure/window/grade.\n    include_population and population growth bounds refer to PSA 10 copies over population_window=30\n    or 90. Legacy raw screens also retain include_grading_premium, premium_grade=9/10,\n    min/max_premium_pct, highest/lowest_premium; premium is graded/raw minus one, not profit.\n    Recorded range options: include_price_range, history_days=7\u2013365, max_above_low_pct,\n    min_below_high_pct, nearest_low/largest_drawdown (legacy price path only). Each result names\n    its measure, evidence scope, units, observation/comparison dates and coverage.",
      "inputSchema": {
        "$defs": {
          "MeasureFilter": {
            "additionalProperties": false,
            "description": "One additional measure condition, evaluated before the ranking limit.",
            "properties": {
              "measure": {
                "title": "Measure",
                "type": "string"
              },
              "window": {
                "anyOf": [
                  {
                    "maximum": 365,
                    "minimum": 1,
                    "type": "integer"
                  },
                  {
                    "type": "null"
                  }
                ],
                "default": null,
                "title": "Window"
              },
              "min_value": {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "null"
                  }
                ],
                "default": null,
                "title": "Min Value"
              },
              "max_value": {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "null"
                  }
                ],
                "default": null,
                "title": "Max Value"
              },
              "min_change": {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "null"
                  }
                ],
                "default": null,
                "title": "Min Change"
              },
              "max_change": {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "null"
                  }
                ],
                "default": null,
                "title": "Max Change"
              },
              "min_change_pct": {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "null"
                  }
                ],
                "default": null,
                "title": "Min Change Pct"
              },
              "max_change_pct": {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "null"
                  }
                ],
                "default": null,
                "title": "Max Change Pct"
              }
            },
            "required": [
              "measure"
            ],
            "title": "MeasureFilter",
            "type": "object"
          }
        },
        "properties": {
          "kind": {
            "default": "card",
            "title": "Kind",
            "type": "string"
          },
          "set_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Set Name"
          },
          "rarity": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Rarity"
          },
          "keyword": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Keyword"
          },
          "series": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Series"
          },
          "language": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Language"
          },
          "product_type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Product Type"
          },
          "min_price": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Min Price"
          },
          "max_price": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Max Price"
          },
          "min_change_pct": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Min Change Pct"
          },
          "max_change_pct": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Max Change Pct"
          },
          "min_volume_trend_pct": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Min Volume Trend Pct"
          },
          "include_volume": {
            "default": false,
            "title": "Include Volume",
            "type": "boolean"
          },
          "include_population": {
            "default": false,
            "title": "Include Population",
            "type": "boolean"
          },
          "min_population_growth_pct": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Min Population Growth Pct"
          },
          "max_population_growth_pct": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Max Population Growth Pct"
          },
          "population_window": {
            "default": 30,
            "title": "Population Window",
            "type": "integer"
          },
          "include_grading_premium": {
            "default": false,
            "title": "Include Grading Premium",
            "type": "boolean"
          },
          "premium_grade": {
            "default": "10",
            "enum": [
              "9",
              "10"
            ],
            "title": "Premium Grade",
            "type": "string"
          },
          "min_premium_pct": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Min Premium Pct"
          },
          "max_premium_pct": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Max Premium Pct"
          },
          "include_price_range": {
            "default": false,
            "title": "Include Price Range",
            "type": "boolean"
          },
          "history_days": {
            "default": 90,
            "title": "History Days",
            "type": "integer"
          },
          "max_above_low_pct": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Max Above Low Pct"
          },
          "min_below_high_pct": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Min Below High Pct"
          },
          "sort": {
            "default": "highest_price",
            "enum": [
              "highest",
              "lowest",
              "largest_absolute_increase",
              "largest_absolute_decrease",
              "highest_premium",
              "lowest_premium",
              "nearest_low",
              "largest_drawdown",
              "highest_price",
              "lowest_price",
              "biggest_increase",
              "biggest_decrease",
              "highest_volume",
              "lowest_volume",
              "fastest_volume_growth",
              "price",
              "-price",
              "change",
              "-change",
              "volume",
              "-volume",
              "volume_trend"
            ],
            "title": "Sort",
            "type": "string"
          },
          "window": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "string"
              }
            ],
            "default": 30,
            "title": "Window"
          },
          "limit": {
            "default": 15,
            "title": "Limit",
            "type": "integer"
          },
          "price_basis": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Price Basis"
          },
          "measure": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Measure"
          },
          "min_value": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Min Value"
          },
          "max_value": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Max Value"
          },
          "min_change": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Min Change"
          },
          "max_change": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Max Change"
          },
          "secondary_filter": {
            "anyOf": [
              {
                "$ref": "#/$defs/MeasureFilter"
              },
              {
                "type": "null"
              }
            ],
            "default": null
          },
          "finish": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Finish"
          },
          "grade_measure": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Grade Measure"
          },
          "compare_to": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Compare To"
          }
        },
        "title": "screenArguments",
        "type": "object"
      },
      "annotations": {
        "title": "Screen the card market",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "market_activity",
      "description": "Estimated TCGplayer units and orders per calendar week from sales buckets\n    (default 12 weeks, max 52), with individual order samples kept separate.\n    Pass a name or kind + asset_id. Weeks without data are missing, not zero;\n    weekly volume is estimated from TCGplayer buckets, while individual order samples remain separate and do not establish complete market totals.",
      "inputSchema": {
        "properties": {
          "name": {
            "default": "",
            "title": "Name",
            "type": "string"
          },
          "kind": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Kind"
          },
          "asset_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Asset Id"
          },
          "category": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Category"
          },
          "set_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Set Name"
          },
          "weeks": {
            "default": 12,
            "title": "Weeks",
            "type": "integer"
          },
          "render": {
            "default": false,
            "title": "Render",
            "type": "boolean"
          }
        },
        "title": "market_activityArguments",
        "type": "object"
      },
      "annotations": {
        "title": "Look up estimated sales activity",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "graded_prices",
      "description": "Current graded prices for one card, identified by its full card identity: include the\n    printed card number and language in name when known (e.g. name=\"English Charizard ex\n    199/165\", set_name=\"151\"), or pass asset_id. A character-only name can match several\n    printings. grader=\"PSA\", grade=\"10\" (or another grader/grade) selects one grade; omitting\n    them returns all available grades. Prices include currency and observation date. A current\n    snapshot: no history, set totals or population counts.",
      "inputSchema": {
        "properties": {
          "name": {
            "default": "",
            "title": "Name",
            "type": "string"
          },
          "asset_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Asset Id"
          },
          "set_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Set Name"
          },
          "grader": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Grader"
          },
          "grade": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Grade"
          }
        },
        "title": "graded_pricesArguments",
        "type": "object"
      },
      "annotations": {
        "title": "Look up graded card prices",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "graded_price_history",
      "description": "Dated graded-card prices over time. Default PSA 10, last 90 days; days=null returns all\n    stored history; optional ISO start_date/end_date select an exact window. Takes the complete\n    card identity (printed number and language) and set_name, or asset_id. Market estimates and\n    recorded sales are returned as separate series. Missing history is reported as missing.",
      "inputSchema": {
        "properties": {
          "name": {
            "default": "",
            "title": "Name",
            "type": "string"
          },
          "asset_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Asset Id"
          },
          "set_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Set Name"
          },
          "grader": {
            "default": "PSA",
            "title": "Grader",
            "type": "string"
          },
          "grade": {
            "default": "10",
            "title": "Grade",
            "type": "string"
          },
          "days": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "default": 90,
            "title": "Days"
          },
          "start_date": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Start Date"
          },
          "end_date": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "End Date"
          },
          "render": {
            "default": false,
            "title": "Render",
            "type": "boolean"
          }
        },
        "title": "graded_price_historyArguments",
        "type": "object"
      },
      "annotations": {
        "title": "Look up graded price history",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "set_value_history",
      "description": "Basket performance and value contributors for an English Pok\u00e9mon set, as data.\n    Default last 90 days; days=null returns all stored history, or supply ISO\n    start_date/end_date. detail=chart (default) returns stored chain-linked performance lines\n    (not actual daily totals), every daily point, calculated changes, basket counts and the\n    latest available totals. detail=full adds per-day available totals, counts and source-date\n    ranges (best with a short window). detail=drivers returns the cards behind a set's gain or\n    loss: raw and PSA 10 dollar contributions plus a reconciled other-cards total, with exact\n    price dates; these explain the arithmetic, not market causes. contributors_limit (1\u201325)\n    controls displayed cards per basket, not calculation scope. Full/driver detail uses a\n    fixed-window basket and can differ from chart values. The graded basket is PSA 10 by default\n    and can contain fewer cards than the full set. Daily available totals are separate snapshots,\n    not a constant basket return. Pack values are USD per pack. Missing values remain missing.",
      "inputSchema": {
        "properties": {
          "set_name": {
            "default": "",
            "title": "Set Name",
            "type": "string"
          },
          "set_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Set Id"
          },
          "days": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "default": 90,
            "title": "Days"
          },
          "start_date": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Start Date"
          },
          "end_date": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "End Date"
          },
          "detail": {
            "default": "chart",
            "enum": [
              "chart",
              "full",
              "drivers"
            ],
            "title": "Detail",
            "type": "string"
          },
          "contributors_limit": {
            "default": 10,
            "title": "Contributors Limit",
            "type": "integer"
          },
          "render": {
            "default": false,
            "title": "Render",
            "type": "boolean"
          }
        },
        "title": "set_value_historyArguments",
        "type": "object"
      },
      "annotations": {
        "title": "Look up set value history",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "population_report",
      "description": "Reported graded-card population counts and changes for one card, including PSA 10.\n    grader=\"PSA\" limits to PSA; omitted, all available graders. Returns grade counts, all-grade\n    totals and gem-mint counts with exact baseline dates and elapsed days for comparisons near\n    30/90 days. Net population growth is not submission intake. Missing comparisons are\n    unavailable, never zero, and missing collected data does not mean the grading company has not\n    published counts. Takes a name or asset_id.",
      "inputSchema": {
        "properties": {
          "name": {
            "default": "",
            "title": "Name",
            "type": "string"
          },
          "asset_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Asset Id"
          },
          "set_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Set Name"
          },
          "grader": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Grader"
          }
        },
        "title": "population_reportArguments",
        "type": "object"
      },
      "annotations": {
        "title": "Look up graded populations",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "community_sentiment",
      "description": "Summarize recent community opinion, bullish and bearish reasons, and\n    leading sources across YouTube, Reddit and the E4 forum. Defaults to four\n    weeks, with quotations only when include_excerpts=true. entity_kind: set, sealed or card\n    (optional; ambiguous names return candidates instead of guessing).\n    Sentiment describes opinion and does not establish future prices.",
      "inputSchema": {
        "properties": {
          "entity": {
            "default": "",
            "title": "Entity",
            "type": "string"
          },
          "entity_kind": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Entity Kind"
          },
          "entity_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Entity Id"
          },
          "weeks": {
            "default": 4,
            "title": "Weeks",
            "type": "integer"
          },
          "include_excerpts": {
            "default": false,
            "title": "Include Excerpts",
            "type": "boolean"
          }
        },
        "title": "community_sentimentArguments",
        "type": "object"
      },
      "annotations": {
        "title": "Summarize collected community sentiment",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "market_summary",
      "description": "Interactive market overview for a Pok\u00e9mon set, card or sealed product. For a set pass\n    kind=set and its name. Resolves the name and loads every section itself: card images with\n    daily/weekly/monthly and grade toggles, price charts, estimated sales volume and sourced\n    commentary, as one dashboard.",
      "inputSchema": {
        "properties": {
          "name": {
            "default": "",
            "title": "Name",
            "type": "string"
          },
          "kind": {
            "default": "card",
            "enum": [
              "card",
              "sealed",
              "set"
            ],
            "title": "Kind",
            "type": "string"
          },
          "asset_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Asset Id"
          },
          "set_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Set Name"
          },
          "days": {
            "default": 30,
            "enum": [
              7,
              30,
              90
            ],
            "title": "Days",
            "type": "integer"
          },
          "include_sentiment": {
            "default": true,
            "title": "Include Sentiment",
            "type": "boolean"
          }
        },
        "title": "market_summaryArguments",
        "type": "object"
      },
      "annotations": {
        "title": "Display a product or set overview",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "_meta": {
        "ui": {
          "resourceUri": "ui://pokemon-research/list-792e6de073.html"
        },
        "ui/resourceUri": "ui://pokemon-research/list-792e6de073.html"
      }
    },
    {
      "name": "lookup_market_summary",
      "description": "Card, sealed-product or set overview as data (no widget). Combines prices, graded values,\n    PSA population, estimated sales and recent sentiment. Takes the name directly. For a set\n    (kind=set) returns raw/PSA 10 set totals, fixed-basket changes over days, pack benchmark,\n    top cards, concentration, set population and seven-day sentiment. Set sales and population\n    cover uniquely mapped selected card products, with measured counts. Card/product price\n    changes cover 7 and 30 days; sales compare four ended weeks with the prior four; population\n    changes use their own 30-day baselines; sentiment covers the last seven days. Each measure\n    keeps its own dates and scope. Ambiguous card names need set/number/language. No forecasts.",
      "inputSchema": {
        "properties": {
          "name": {
            "default": "",
            "title": "Name",
            "type": "string"
          },
          "kind": {
            "default": "card",
            "enum": [
              "card",
              "sealed",
              "set"
            ],
            "title": "Kind",
            "type": "string"
          },
          "asset_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Asset Id"
          },
          "set_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Set Name"
          },
          "days": {
            "default": 30,
            "enum": [
              7,
              30,
              90
            ],
            "title": "Days",
            "type": "integer"
          },
          "include_sentiment": {
            "default": true,
            "title": "Include Sentiment",
            "type": "boolean"
          }
        },
        "title": "lookup_market_summaryArguments",
        "type": "object"
      },
      "annotations": {
        "title": "Look up a product or set overview",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "market_brief",
      "description": "Precomputed English Pok\u00e9mon market overview for a day, week or month. period: day, week\n    (default) or month, meaning rolling 1/7/30-day price changes, not calendar periods. Returns\n    grouped image galleries (modern booster boxes, ETBs, other sealed, raw cards, PSA 10 cards,\n    older cards and older sealed) with prices and changes, plus breadth, movers and named creator\n    positions with topics, highlights and source links. Prices use the latest completed UTC day;\n    commentary has its own publication window. Creator stance alignment is provisional, not proven\n    agreement or causation. Reads one stored brief.",
      "inputSchema": {
        "properties": {
          "period": {
            "default": "week",
            "title": "Period",
            "type": "string"
          }
        },
        "title": "market_briefArguments",
        "type": "object"
      },
      "annotations": {
        "title": "Read the market brief",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "store_offers",
      "description": "Listings at independent US and Canadian online stores for one asset: store, region, price,\n    currency, availability and link, each with the crawl time it was observed. Approved merchants\n    only unless include_unreviewed=true. Availability is as of the crawl, not live stock. Does not\n    cover European marketplaces.",
      "inputSchema": {
        "properties": {
          "name": {
            "default": "",
            "title": "Name",
            "type": "string"
          },
          "kind": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Kind"
          },
          "asset_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Asset Id"
          },
          "category": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Category"
          },
          "set_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Set Name"
          },
          "include_unreviewed": {
            "default": false,
            "title": "Include Unreviewed",
            "type": "boolean"
          },
          "include_preorders": {
            "default": false,
            "title": "Include Preorders",
            "type": "boolean"
          }
        },
        "title": "store_offersArguments",
        "type": "object"
      },
      "annotations": {
        "title": "Look up collected store offers",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "search_discussions",
      "description": "Optional topic groups related wording for grading delays, reprints, restocks,\n    preorders and competitive play. Combine topic with a set/name query or omit query.\n    Search recent discussions by keywords, with dates and source links, newest first.\n    days: 1-365; source: youtube, reddit or forum; limit: 1-20.",
      "inputSchema": {
        "properties": {
          "query": {
            "default": "",
            "title": "Query",
            "type": "string"
          },
          "days": {
            "default": 30,
            "title": "Days",
            "type": "integer"
          },
          "source": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Source"
          },
          "limit": {
            "default": 10,
            "title": "Limit",
            "type": "integer"
          },
          "topic": {
            "anyOf": [
              {
                "enum": [
                  "grading_delays",
                  "reprints",
                  "restocks",
                  "preorders",
                  "competitive"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Topic"
          }
        },
        "title": "search_discussionsArguments",
        "type": "object"
      },
      "annotations": {
        "title": "Search collected discussions",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "list_indexes",
      "description": "Every house market index: name, basket contents, base date, basket size, latest value, and\n    7-day and 30-day changes. Base value is 100 on the base date.",
      "inputSchema": {
        "properties": {},
        "title": "list_indexesArguments",
        "type": "object"
      },
      "annotations": {
        "title": "List market indexes",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "market_index",
      "description": "Chart a house index, optionally against a second index on the same chart (compare_to).\n    Example: name='Booster Box', compare_to='Elite Trainer Box', period='ytd'. With a comparison,\n    both lines share a base of 100 at the window's first common date. Without a period or\n    comparison, stored index levels are shown; days=null shows full history.",
      "inputSchema": {
        "properties": {
          "name": {
            "title": "Name",
            "type": "string"
          },
          "days": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "default": 365,
            "title": "Days"
          },
          "start_date": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Start Date"
          },
          "end_date": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "End Date"
          },
          "render": {
            "default": true,
            "title": "Render",
            "type": "boolean"
          },
          "compare_to": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Compare To"
          },
          "period": {
            "anyOf": [
              {
                "enum": [
                  "ytd",
                  "last_year"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Period"
          }
        },
        "required": [
          "name"
        ],
        "title": "market_indexArguments",
        "type": "object"
      },
      "annotations": {
        "title": "Look up an index history",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "create_index",
      "description": "Create a personal equal-weight index from up to 50 named products (cards or sealed),\n    rebased to 100. items: [{name, asset_id?, kind?}]. Names are resolved here; an ambiguous\n    name returns candidates with their asset_id and kind. Up to 10 indexes per account; the\n    index can be charted as series kind 'index' by its name.",
      "inputSchema": {
        "properties": {
          "name": {
            "title": "Name",
            "type": "string"
          },
          "items": {
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "title": "Items",
            "type": "array"
          }
        },
        "required": [
          "name",
          "items"
        ],
        "title": "create_indexArguments",
        "type": "object"
      },
      "annotations": {
        "title": "Create a personal index",
        "readOnlyHint": false,
        "destructiveHint": false,
        "idempotentHint": false,
        "openWorldHint": false
      }
    },
    {
      "name": "my_indexes",
      "description": "List your personal indexes and their products.",
      "inputSchema": {
        "properties": {},
        "title": "my_indexesArguments",
        "type": "object"
      },
      "annotations": {
        "title": "List your personal indexes",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "delete_index",
      "description": "Delete one of your personal indexes by name.",
      "inputSchema": {
        "properties": {
          "name": {
            "title": "Name",
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "title": "delete_indexArguments",
        "type": "object"
      },
      "annotations": {
        "title": "Delete a personal index",
        "readOnlyHint": false,
        "destructiveHint": true,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "creator_context",
      "description": "Find source-linked creator discussions by meaning and exact words.\n\n    Searches what tracked creators are saying about a topic. Set include_community=true\n    for a combined creator/Reddit/forum topic brief in one call, with grouped vocabulary;\n    combining creator and community passages in the same response. Supports synonyms and\n    different phrasing, including grading delays, reprints, restocks, preorders and competitive play. Reports how much of the requested window is searchable\n    by meaning while historical indexing catches up.\n\n    Dates are optional ISO dates (YYYY-MM-DD); the default is the latest 30\n    days. ``limit`` must be 1-20. Coverage is limited to the tracked channels\n    returned with the result. Excerpts represent creator opinion, do not prove\n    facts or causation, and are deliberately short rather than transcript dumps.\n    ",
      "inputSchema": {
        "properties": {
          "query": {
            "title": "Query",
            "type": "string"
          },
          "start_date": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Start Date"
          },
          "end_date": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "End Date"
          },
          "limit": {
            "default": 8,
            "title": "Limit",
            "type": "integer"
          },
          "include_community": {
            "default": false,
            "title": "Include Community",
            "type": "boolean"
          }
        },
        "required": [
          "query"
        ],
        "title": "creator_contextArguments",
        "type": "object"
      },
      "annotations": {
        "title": "Search creator commentary",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "show_card",
      "description": "Return the actual image of a card or sealed product, e.g. 'the moonbreon alt art' or\n    'the 151 booster box'.",
      "inputSchema": {
        "properties": {
          "name": {
            "title": "Name",
            "type": "string"
          },
          "category": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Category"
          },
          "set_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Set Name"
          }
        },
        "required": [
          "name"
        ],
        "title": "show_cardArguments",
        "type": "object"
      },
      "annotations": {
        "title": "Show a catalog image",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "investing_context",
      "description": "Explain how to interpret this service's market research outputs.",
      "inputSchema": {
        "properties": {},
        "title": "investing_contextArguments",
        "type": "object"
      },
      "annotations": {
        "title": "Explain market research limitations",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "set_alert",
      "description": "Save an alert rule on an asset for the signed-in account. metric: price | change_7d_pct |\n    change_30d_pct. condition: 'above' or 'below'. Examples: price goes below 2000; a box is up\n    more than 10% in a week. measure selects raw_price or psa7/8/9/10, bgs10, cgc95/10. Graded\n    values are dated market estimates. Rules are evaluated on demand; no background\n    notifications are sent.",
      "inputSchema": {
        "properties": {
          "name": {
            "title": "Name",
            "type": "string"
          },
          "metric": {
            "title": "Metric",
            "type": "string"
          },
          "condition": {
            "title": "Condition",
            "type": "string"
          },
          "value": {
            "title": "Value",
            "type": "number"
          },
          "category": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Category"
          },
          "set_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Set Name"
          },
          "measure": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Measure"
          }
        },
        "required": [
          "name",
          "metric",
          "condition",
          "value"
        ],
        "title": "set_alertArguments",
        "type": "object"
      },
      "annotations": {
        "title": "Save a price alert rule",
        "readOnlyHint": false,
        "destructiveHint": false,
        "idempotentHint": false,
        "openWorldHint": false
      }
    },
    {
      "name": "my_alerts",
      "description": "List the authenticated account's saved price alert rules without changing them.",
      "inputSchema": {
        "properties": {},
        "title": "my_alertsArguments",
        "type": "object"
      },
      "annotations": {
        "title": "List your saved alert rules",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "delete_alert",
      "description": "Delete one saved alert rule belonging to the signed-in account. alert_id is the rule\n    identifier returned when the rule was saved or listed. Does not delete analytics, cancel\n    billing, or change other accounts' rules.",
      "inputSchema": {
        "properties": {
          "alert_id": {
            "title": "Alert Id",
            "type": "string"
          }
        },
        "required": [
          "alert_id"
        ],
        "title": "delete_alertArguments",
        "type": "object"
      },
      "annotations": {
        "title": "Delete a saved alert rule",
        "readOnlyHint": false,
        "destructiveHint": true,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "check_alerts",
      "description": "Check all your alerts right now against the latest prices.",
      "inputSchema": {
        "properties": {},
        "title": "check_alertsArguments",
        "type": "object"
      },
      "annotations": {
        "title": "Check saved rules against market prices",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    }
  ],
  "resources": [
    {
      "name": "Chart",
      "title": "Interactive chart",
      "uri": "ui://pokemon-research/chart-9b01169819.html",
      "description": "Hover, toggle and re-range a chart",
      "mimeType": "text/html;profile=mcp-app",
      "_meta": {
        "ui": {
          "csp": {
            "resourceDomains": [
              "https://pub-a83a250d5b364bf8a914b395d7d2cf33.r2.dev"
            ]
          },
          "prefersBorder": false
        }
      }
    },
    {
      "name": "Market results",
      "title": "Market results",
      "uri": "ui://pokemon-research/list-792e6de073.html",
      "description": "Lists and market dashboards with pictures, prices, volume and sourced commentary",
      "mimeType": "text/html;profile=mcp-app",
      "_meta": {
        "ui": {
          "csp": {
            "resourceDomains": [
              "https://pub-a83a250d5b364bf8a914b395d7d2cf33.r2.dev"
            ]
          },
          "prefersBorder": false
        }
      }
    },
    {
      "name": "original_chart",
      "uri": "ui://pokemon-research/chart.html",
      "description": "",
      "mimeType": "text/html;profile=mcp-app",
      "_meta": {
        "ui": {
          "csp": {
            "resourceDomains": [
              "https://pub-a83a250d5b364bf8a914b395d7d2cf33.r2.dev"
            ]
          },
          "prefersBorder": false
        }
      }
    }
  ],
  "resource_templates": [
    {
      "name": "cached_chart",
      "uriTemplate": "ui://pokemon-research/chart-{version}.html",
      "description": "",
      "mimeType": "text/html;profile=mcp-app",
      "_meta": {
        "ui": {
          "csp": {
            "resourceDomains": [
              "https://pub-a83a250d5b364bf8a914b395d7d2cf33.r2.dev"
            ]
          },
          "prefersBorder": false
        }
      }
    },
    {
      "name": "cached_list",
      "uriTemplate": "ui://pokemon-research/list-{version}.html",
      "description": "",
      "mimeType": "text/html;profile=mcp-app",
      "_meta": {
        "ui": {
          "csp": {
            "resourceDomains": [
              "https://pub-a83a250d5b364bf8a914b395d7d2cf33.r2.dev"
            ]
          },
          "prefersBorder": false
        }
      }
    }
  ],
  "instructions": "Use lookups as needed. Present only the result the user requested. Lookup tools return data without widgets. After a chart, list or overview add at most a brief relevant sentence; do not append a table, recap or another visual unless requested. When a tool returns status 'choose', ask the user once, then call again with the chosen asset_id and kind_hint. When the user needs to pick among products matching a name, show them with display_results query=find_asset. If a tool fails, report the failure; do not substitute a chart or figures from other sources. Compare house indexes in one chart call with every index series (or market_index with compare_to), not separate single-index charts. For sets at matched ages after release use chart release_comparison; compare_set_releases returns the same comparison as data. For European or euro prices use price_of (Cardmarket); store_offers covers US and Canadian stores only. For a market cross-check read price_of before external browsing. Request best_price_per_pack percentages or upfront totals only when the user asks for them. To show what a card or product looks like use show_card. For a chart call chart once, combining all requested series; use multiple charts only when the user asks for separate views. chart resolves names and computes series internally: normally call it directly, without preliminary histories. For a final ranked list or market brief call display_results with its query and arguments directly. For internal research call screen, rank_sets, market_brief or another lookup without displaying it. For a short numeric or factual question answer from lookup data without a widget. Never repeat a visual as a table unless requested. Do not create extra views or substitute a different measure when data is unavailable. Ask only when identity is genuinely ambiguous. For broad market updates use market_brief with period=day/week/month (default week); its precomputed sections include creator context. For a product/set overview call market_summary directly with kind/name; its single dashboard includes pictures, price/grade toggles, price charts, volume and sourced commentary. For internal summary data use lookup_market_summary. population_report is for one card. screen supports price, sales, graded and population measures and filters before limiting. rank_sets supports raw/PSA 10 totals, concentration_top10 (the ten highest-priced cards' share of set value), gini (inequality of card values), and sealed_to_set_ratio. These are lookups, not a reason to add a chart. Use set_value_history detail=drivers for the cards contributing to a fixed-basket move. In chart use set_raw for actual raw totals, set_graded with grader/grade for actual graded totals, and set_pack for the actual pack benchmark. Performance series are explicitly named set_raw_performance, set_graded_performance and set_pack_performance; never substitute them for totals. Raw set value versus booster box is set_raw plus price with the box name and normalize=usd. Keep prices in dollars unless the user asks for relative performance. Comparisons of house indexes rebase to a shared starting date. With no requested timeline omit days/dates/period; chart selects shared available history. Follow-ups retain the requested timeline and measure. For year-to-date use period=ytd; last_year means the previous calendar year. A ratio request uses one ratio series, not two component lines. Preserve exact product, card number, language, finish, format and grade; booster boxes and cases are distinct. Preserve units, actual observation dates, priced-card counts, gaps, and partial-week labels. Missing observations are not zero. Missing collected data does not establish that the upstream source has not published it. Never invent a reason for a coverage gap, including set age. Estimated sales, sampled orders, graded population and asking prices are different measures. Population growth is net reported copies. Raw and graded baskets may differ; a priced subset is not the full set. Available-total changes can reflect newly priced cards. Use graded_price_history for dated estimates, graded_prices for current grades, and price_of for marketplace comparisons. eBay listing evidence is not completed sales; identical venue estimates are not independent corroboration. Search interest is relative within a collected keyword series; separate keywords' scales are not absolute popularity. Release and product-wave dates differ; retail alerts are not inventory or confirmed print runs. Opinions are not demonstrated price causes. Keep graded price spreads separate from grading profit; no unsupported EV, sell-through or predictive-confidence claims. Read the requested result and a brief relevant takeaway, not internal implementation details or provider table names. Saved actions require a user request: privacy_settings changes retention; delete_research_history deletes analytics and indexes; my_alerts lists rules, delete_alert deletes one rule. account_usage reads usage and privacy. House indexes: list_indexes and chart kind=index; personal indexes: create_index, my_indexes, delete_index, chart kind=index."
}
