# Trading Card Data: tool reference

Generated from deployment 598e8215-f5d1-4c66-86b8-149dafe2682d on 2026-09-20. These are registered definitions, not proof of data availability.

## account_usage

Read current service access, monthly allowance, usage and privacy settings.

```json
{
  "inputSchema": {
    "properties": {},
    "title": "account_usageArguments",
    "type": "object"
  },
  "annotations": {
    "title": "View usage and privacy settings",
    "readOnlyHint": true,
    "destructiveHint": false,
    "idempotentHint": true,
    "openWorldHint": false
  }
}
```

## privacy_settings

Change optional research-search text retention for the signed-in account.
        True opts in to redacted search-text storage for 30 days. False opts out and
        clears retained search text. Does not collect conversation history or delete
        saved indexes or alerts.

```json
{
  "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
  }
}
```

## delete_research_history

Delete this account's research analytics, feedback and saved personal indexes.
        Requires the user's explicit request and confirm=true. Saved alert rules,
        service quotas, access and billing records remain. Billing is not cancelled.
        

```json
{
  "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
  }
}
```

## submit_feedback

Save optional product feedback explicitly provided by the user.
        comment is feedback about the service, not conversation history or personal context.
        Feedback text is retained for 30 days.
        

```json
{
  "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
  }
}
```

## chart

Draw one interactive chart of market data for one to six series, up to four panels.
    Resolves product and set names itself and reads their histories. Returns one widget,
    or a static image for clients without widgets; include_table=true adds a data table.
    Series: {kind, name, asset_id?, kind_hint?, set_name?, grader?, grade?, marketplace?,
    currency?, sentiment?, against?, of?, window_days?, complete_weeks_only?}. Kinds: price,
    price_per_pack (one sealed product), graded, population, population_all, set_raw,
    set_psa10, set_psa9, set_pack, set_available, set_raw_performance, set_graded,
    set_graded_performance, set_pack_performance, index, volume, orders, search_interest,
    mentions, store_low, restocks. set_raw is the precomputed daily sum of raw card prices in
    USD (set_available is an alias). set_graded takes grader and grade (PSA 7/8/9/10, BGS 10,
    CGC 9.5/10); set_psa9/10 are aliases. set_pack is the daily preferred-product median USD
    per pack. The *_performance kinds are chain-linked performance lines, not actual values.
    Derived kinds: share_of_set (of the product's own set unless set_name is given),
    grading_premium, grading_spread, ratio and spread (need against: a kind name such as
    "population" or a nested series; a grade on the series makes the numerator the graded
    price), rolling_change (window_days), drawdown, pop_growth. A ratio is a single series,
    e.g. {kind: ratio, name: Moonbreon, grader: PSA, grade: "10", against: population}.
    Index series named e.g. Booster Box and Elite Trainer Box in one call share a base of 100
    at their first common date. Markers: {kind: set_release | product_wave | rotation | restock
    | news | tournament | high | low, set_name?, set_id?, name?, asset_id?, retailer?, topic?,
    label?: auto|none}. Restock markers use exact product mappings when name/asset_id is
    given; set_name covers mapped set alerts across formats; without a target they follow the
    first sealed price series. Restocks count recorded alerts, not units or print runs.
    Unlike units get separate panels unless normalize rebases them (normalize=usd keeps
    dollars). Window: days (any number), start_date/end_date, or period: ytd, last_year
    (previous calendar year) or since_release (from the first series' release date). With no
    window the chart covers the shared available history of all series. series_coverage
    reports each series' first observation and gaps; gaps are drawn as breaks, never filled.
    An ambiguous name returns status 'choose' with candidates (English, most valuable first)
    and their asset_id and kind_hint. release_comparison={set_names:[...], start_day:0,
    end_day:30, measure:raw|graded|pack|all} (with no series) charts sets at matched ages
    after release; negative days are preorders.

```json
{
  "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"
  }
}
```

## display_results

Show a ranked list, market brief, product/set overview or set of name matches as one
    interactive visual with pictures. query selects the lookup and arguments follow that
    lookup's schema. query=find_asset lists every product a name matches, most valuable first.
    query=market_summary returns the product/set overview dashboard. Other queries: screen,
    top_movers, find_cards, best_price_per_pack, rank_sets, market_brief. Example:
    query=rank_sets, arguments={measure: concentration_top10, keyword: Evolving Skies}.
    The widget carries the full list; the text result carries a compact table.

```json
{
  "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"
  }
}
```

## rank_sets

Rank sets by recorded value, top-ten concentration, Gini or pack-to-set ratio.
    Values use recorded priced baskets with coverage, not expected pack payouts.
    Change rankings use absolute change (percentage points for concentration);
    concentration/Gini changes require the same constituent identities.

```json
{
  "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
  }
}
```

## compare_set_releases

Compare 2–5 named sets at the same age after release.
    Uses precomputed fixed-basket raw/PSA 10 set values and median price per pack.
    Ages are days since the recorded physical set debut; negative days select preorders.
    Only shared observed ages are compared, with exact dates, counts and actual endpoints.
    Supported ages: -90 to 365. PSA 10 and raw baskets can contain different cards.
    Returns data only.

```json
{
  "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
  }
}
```

## release_calendar

English US set releases, upcoming sets and recorded rotation dates in one call.
    With no dates lists upcoming events; set_name also finds that set's past release.
    Use event_type=rotation or all for regulation marks and dated format rotations.
    Dates are recorded announcements, not predictions; set debut differs from later product waves.

```json
{
  "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
  }
}
```

## restock_history

Last known restock, dated retailer alerts and counts for a product, set or retailer.
    Pass a product name directly; no identifier lookup required. Latest-known searches all
    stored history even when days selects a recent counting window. Restock numbers mean
    distinct source alerts. Inventory quantities appear only when explicitly reported;
    repeated stock snapshots are never summed into units supplied or print runs.

```json
{
  "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
  }
}
```

## search_news

Search indexed Pokémon news and announcements by words, set, topic and publication window.
    Returns short attributed evidence and article links, newest/relevant first.
    Publisher reports by default; include_community_posts=true adds labeled forum posts. Use for
    release announcements, reprint reports and rotation news. A rumor stays a rumor;
    article publication date is not necessarily the announced event date.

```json
{
  "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
  }
}
```

## tournament_results

Recorded tournament player entries, dates and optional leading deck archetypes.
    Masters (MA) by default; counts are stored standings in that division, not spectators,
    unique people across events or all-age attendance. query matches event/city/type.
    Country uses source country code. include_meta adds the five leading recorded decks.

```json
{
  "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
  }
}
```

## search_interest

Look up tracked Google search interest for a set, product or market term by name.
    Each keyword uses its latest collection's own 0–100 scale. Values are relative
    interest, not search counts, sales or comparable absolute popularity across terms.
    Returns dated points and complete-period changes where collection metadata permits.

```json
{
  "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
  }
}
```

## find_asset

Identify a card or sealed product by (partial) name and return every matching
    candidate with kind, game, set, language, variant details, current price and reference.
    It never picks one when several match. Optional game: pokemon, riftbound or onepiece.
    category narrows to ir, sir, raw, card, graded or sealed; set_name narrows by set.
    'japanese' in the query filters to Japanese-language cards. Examples: 'moonbreon',
    '151 booster box', 'delta reign etb', 'charizard ex 30th celebration', 'pikachu japanese'.

```json
{
  "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
  }
}
```

## price_of

Current market price of one product in USD, plus the same product's price on
    TCGplayer, eBay and Cardmarket (EUR, European market). Includes the as-of date, every
    marketplace value with its own date, what it cost 7 and 30 days ago, price per pack for
    sealed products, the latest graded prices for cards, and stored eBay listing evidence
    with links and freshness (asking prices, not sold prices). Takes a name (plus optional
    category/set_name) or kind + asset_id. Covers current prices and 7/30-day comparisons
    only, not year-to-date performance.

```json
{
  "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
  }
}
```

## price_history

Observed market-price history for one asset (card or sealed; days 1–366), as data.
    Returns dated observations, the gaps between them, currency and as-of; missing days
    are gaps, not zero. The default summary includes calculated 7/30/90/365-day comparisons
    with actual endpoints (one year means 365 days). detail="daily" returns every
    observation. period=ytd means January 1 through today; last_year means the preceding
    calendar year; named periods override days. Takes kind and entity_id. Shorter available
    histories are explicitly dated. Not a forecast.

```json
{
  "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
  }
}
```

## compare_price_history

Compare observed price changes for two to five assets of one kind over the same
    window (days 1–366), by asset reference. Uses shared observed start and end dates,
    states the aligned window, and notes long flat-price stretches. Missing comparisons are
    reported as missing, never as zero. measure selects psa7/8/9/10, bgs10 or cgc95/10 for
    graded card estimates; omit for raw prices. Returns data only.

```json
{
  "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
  }
}
```

## best_price_per_pack

Compare market cost per pack in USD for sealed products. A full set name counts only
    that set's packs, including those in mixed products. Default output: lowest and highest
    per-pack prices and dollar differences, with product prices, recorded pack counts, dates
    and the comparison scope. include_percentages=true adds percentage premiums and discounts
    (which use product-specific denominators); include_upfront=true adds the lowest total
    purchase prices. The table is the cheapest shortlist plus the highest-cost comparison, not
    the full market. These are market estimates, not available store offers. Pack counts do
    not establish seller authenticity or unlisted accessories.

```json
{
  "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
  }
}
```

## find_cards

Card screener over current USD market prices. Answers: 'Scarlet & Violet cards above
    $100', 'cards down over 20% this month' (max_change_30d_pct=-20), 'Illustration Rares
    under $30 up 10%+'. sort: price | change_30d | -change_30d. price_basis="psa10" screens
    on each card's PSA 10 market estimate instead of the raw price (price and change bounds
    then apply to the PSA 10 value). measure chooses value and sorting: raw_price,
    psa7/8/9/10, bgs10, cgc95/10, units_sold, transactions, psa10_population,
    total_population, gem_rate, market_cap, low_price.

```json
{
  "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
  }
}
```

## top_movers

Biggest gainers or losers by observed market price. direction: up or
    down; days: 7, 14, 30, 60, 90, 180 or 365; min_price filters out bulk; kind: sealed (all
    products) or card (set_name is optional). price_basis="psa10" ranks cards by their PSA 10
    market estimate instead of the raw price (cards only; use it for "which PSA 10 cards fell").
    measure also supports psa7/8/9, bgs10, cgc95/10, price_per_pack, units_sold,
    transactions, psa10_population, total_population and market_cap. It chooses value and change.

```json
{
  "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
  }
}
```

## screen

Rank matching cards or sealed products. measure chooses what value, change and sort refer to:
    raw_price, psa7/8/9/10, bgs10, cgc95/10, low_price, direct_low_price, price_per_pack (sealed),
    units_sold, transactions, estimated_turnover, psa10_population, total_population, gem_rate,
    cardmarket_price (sealed EUR trend guide across languages, verified mappings only),
    market_cap, grading_spread, grade_spread. min/max_value bound that measure; min/max_change
    are absolute changes (percentage points for gem rate/spreads), min/max_change_pct are relative.
    sort highest/lowest or biggest_increase/decrease; percentage-valued measures sort change in points.
    secondary_filter adds one other measure's bounds before limiting. grade_measure and compare_to
    choose the grades for spread rankings. finish normal/holo/reverse applies to raw price feeds.
    Sales estimates compare equal trailing periods excluding today; population is reported PSA
    copies. Grades are noisy market estimates; price floors do not establish trade liquidity.
    With measure, windows are 1–365 days, mtd (calendar month to date), ytd or last_year
    (historical sales unsupported); 30 means a trailing 30 days. Catalog filters combine before
    limiting; absent comparisons cannot satisfy bounds. rarity is an exact category: Illustration
    Rare (IR) excludes Special Illustration Rare (SIR). product_type is exact: booster_box
    excludes cases; booster_box_case selects cases. Legacy parameters (min/max_price in USD,
    price_basis=raw/psa10) remain supported; measure is the current interface. Without measure,
    named windows include since_release, ytd, last_year; day windows are 7/14/30/60/90/180/365.
    Legacy price/change/volume sorts descend; a leading minus reverses them. Bounds are inclusive;
    -0.01 means strictly falling. include_volume and min_volume_trend_pct refer to raw TCGplayer
    sales, four ended calendar weeks versus the preceding four, independently of measure/window/grade.
    include_population and population growth bounds refer to PSA 10 copies over population_window=30
    or 90. Legacy raw screens also retain include_grading_premium, premium_grade=9/10,
    min/max_premium_pct, highest/lowest_premium; premium is graded/raw minus one, not profit.
    Recorded range options: include_price_range, history_days=7–365, max_above_low_pct,
    min_below_high_pct, nearest_low/largest_drawdown (legacy price path only). Each result names
    its measure, evidence scope, units, observation/comparison dates and coverage.

```json
{
  "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
  }
}
```

## market_activity

Estimated TCGplayer units and orders per calendar week from sales buckets
    (default 12 weeks, max 52), with individual order samples kept separate.
    Pass a name or kind + asset_id. Weeks without data are missing, not zero;
    weekly volume is estimated from TCGplayer buckets, while individual order samples remain separate and do not establish complete market totals.

```json
{
  "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
  }
}
```

## graded_prices

Current graded prices for one card, identified by its full card identity: include the
    printed card number and language in name when known (e.g. name="English Charizard ex
    199/165", set_name="151"), or pass asset_id. A character-only name can match several
    printings. grader="PSA", grade="10" (or another grader/grade) selects one grade; omitting
    them returns all available grades. Prices include currency and observation date. A current
    snapshot: no history, set totals or population counts.

```json
{
  "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
  }
}
```

## graded_price_history

Dated graded-card prices over time. Default PSA 10, last 90 days; days=null returns all
    stored history; optional ISO start_date/end_date select an exact window. Takes the complete
    card identity (printed number and language) and set_name, or asset_id. Market estimates and
    recorded sales are returned as separate series. Missing history is reported as missing.

```json
{
  "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
  }
}
```

## set_value_history

Basket performance and value contributors for an English Pokémon set, as data.
    Default last 90 days; days=null returns all stored history, or supply ISO
    start_date/end_date. detail=chart (default) returns stored chain-linked performance lines
    (not actual daily totals), every daily point, calculated changes, basket counts and the
    latest available totals. detail=full adds per-day available totals, counts and source-date
    ranges (best with a short window). detail=drivers returns the cards behind a set's gain or
    loss: raw and PSA 10 dollar contributions plus a reconciled other-cards total, with exact
    price dates; these explain the arithmetic, not market causes. contributors_limit (1–25)
    controls displayed cards per basket, not calculation scope. Full/driver detail uses a
    fixed-window basket and can differ from chart values. The graded basket is PSA 10 by default
    and can contain fewer cards than the full set. Daily available totals are separate snapshots,
    not a constant basket return. Pack values are USD per pack. Missing values remain missing.

```json
{
  "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
  }
}
```

## population_report

Reported graded-card population counts and changes for one card, including PSA 10.
    grader="PSA" limits to PSA; omitted, all available graders. Returns grade counts, all-grade
    totals and gem-mint counts with exact baseline dates and elapsed days for comparisons near
    30/90 days. Net population growth is not submission intake. Missing comparisons are
    unavailable, never zero, and missing collected data does not mean the grading company has not
    published counts. Takes a name or asset_id.

```json
{
  "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
  }
}
```

## community_sentiment

Summarize recent community opinion, bullish and bearish reasons, and
    leading sources across YouTube, Reddit and the E4 forum. Defaults to four
    weeks, with quotations only when include_excerpts=true. entity_kind: set, sealed or card
    (optional; ambiguous names return candidates instead of guessing).
    Sentiment describes opinion and does not establish future prices.

```json
{
  "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
  }
}
```

## market_summary

Interactive market overview for a Pokémon set, card or sealed product. For a set pass
    kind=set and its name. Resolves the name and loads every section itself: card images with
    daily/weekly/monthly and grade toggles, price charts, estimated sales volume and sourced
    commentary, as one dashboard.

```json
{
  "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"
  }
}
```

## lookup_market_summary

Card, sealed-product or set overview as data (no widget). Combines prices, graded values,
    PSA population, estimated sales and recent sentiment. Takes the name directly. For a set
    (kind=set) returns raw/PSA 10 set totals, fixed-basket changes over days, pack benchmark,
    top cards, concentration, set population and seven-day sentiment. Set sales and population
    cover uniquely mapped selected card products, with measured counts. Card/product price
    changes cover 7 and 30 days; sales compare four ended weeks with the prior four; population
    changes use their own 30-day baselines; sentiment covers the last seven days. Each measure
    keeps its own dates and scope. Ambiguous card names need set/number/language. No forecasts.

```json
{
  "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
  }
}
```

## market_brief

Precomputed English Pokémon market overview for a day, week or month. period: day, week
    (default) or month, meaning rolling 1/7/30-day price changes, not calendar periods. Returns
    grouped image galleries (modern booster boxes, ETBs, other sealed, raw cards, PSA 10 cards,
    older cards and older sealed) with prices and changes, plus breadth, movers and named creator
    positions with topics, highlights and source links. Prices use the latest completed UTC day;
    commentary has its own publication window. Creator stance alignment is provisional, not proven
    agreement or causation. Reads one stored brief.

```json
{
  "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
  }
}
```

## store_offers

Listings at independent US and Canadian online stores for one asset: store, region, price,
    currency, availability and link, each with the crawl time it was observed. Approved merchants
    only unless include_unreviewed=true. Availability is as of the crawl, not live stock. Does not
    cover European marketplaces.

```json
{
  "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
  }
}
```

## search_discussions

Optional topic groups related wording for grading delays, reprints, restocks,
    preorders and competitive play. Combine topic with a set/name query or omit query.
    Search recent discussions by keywords, with dates and source links, newest first.
    days: 1-365; source: youtube, reddit or forum; limit: 1-20.

```json
{
  "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
  }
}
```

## list_indexes

Every house market index: name, basket contents, base date, basket size, latest value, and
    7-day and 30-day changes. Base value is 100 on the base date.

```json
{
  "inputSchema": {
    "properties": {},
    "title": "list_indexesArguments",
    "type": "object"
  },
  "annotations": {
    "title": "List market indexes",
    "readOnlyHint": true,
    "destructiveHint": false,
    "idempotentHint": true,
    "openWorldHint": false
  }
}
```

## market_index

Chart a house index, optionally against a second index on the same chart (compare_to).
    Example: name='Booster Box', compare_to='Elite Trainer Box', period='ytd'. With a comparison,
    both lines share a base of 100 at the window's first common date. Without a period or
    comparison, stored index levels are shown; days=null shows full history.

```json
{
  "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
  }
}
```

## create_index

Create a personal equal-weight index from up to 50 named products (cards or sealed),
    rebased to 100. items: [{name, asset_id?, kind?}]. Names are resolved here; an ambiguous
    name returns candidates with their asset_id and kind. Up to 10 indexes per account; the
    index can be charted as series kind 'index' by its name.

```json
{
  "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
  }
}
```

## my_indexes

List your personal indexes and their products.

```json
{
  "inputSchema": {
    "properties": {},
    "title": "my_indexesArguments",
    "type": "object"
  },
  "annotations": {
    "title": "List your personal indexes",
    "readOnlyHint": true,
    "destructiveHint": false,
    "idempotentHint": true,
    "openWorldHint": false
  }
}
```

## delete_index

Delete one of your personal indexes by name.

```json
{
  "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
  }
}
```

## creator_context

Find source-linked creator discussions by meaning and exact words.

    Searches what tracked creators are saying about a topic. Set include_community=true
    for a combined creator/Reddit/forum topic brief in one call, with grouped vocabulary;
    combining creator and community passages in the same response. Supports synonyms and
    different phrasing, including grading delays, reprints, restocks, preorders and competitive play. Reports how much of the requested window is searchable
    by meaning while historical indexing catches up.

    Dates are optional ISO dates (YYYY-MM-DD); the default is the latest 30
    days. ``limit`` must be 1-20. Coverage is limited to the tracked channels
    returned with the result. Excerpts represent creator opinion, do not prove
    facts or causation, and are deliberately short rather than transcript dumps.
    

```json
{
  "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
  }
}
```

## show_card

Return the actual image of a card or sealed product, e.g. 'the moonbreon alt art' or
    'the 151 booster box'.

```json
{
  "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
  }
}
```

## investing_context

Explain how to interpret this service's market research outputs.

```json
{
  "inputSchema": {
    "properties": {},
    "title": "investing_contextArguments",
    "type": "object"
  },
  "annotations": {
    "title": "Explain market research limitations",
    "readOnlyHint": true,
    "destructiveHint": false,
    "idempotentHint": true,
    "openWorldHint": false
  }
}
```

## set_alert

Save an alert rule on an asset for the signed-in account. metric: price | change_7d_pct |
    change_30d_pct. condition: 'above' or 'below'. Examples: price goes below 2000; a box is up
    more than 10% in a week. measure selects raw_price or psa7/8/9/10, bgs10, cgc95/10. Graded
    values are dated market estimates. Rules are evaluated on demand; no background
    notifications are sent.

```json
{
  "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
  }
}
```

## my_alerts

List the authenticated account's saved price alert rules without changing them.

```json
{
  "inputSchema": {
    "properties": {},
    "title": "my_alertsArguments",
    "type": "object"
  },
  "annotations": {
    "title": "List your saved alert rules",
    "readOnlyHint": true,
    "destructiveHint": false,
    "idempotentHint": true,
    "openWorldHint": false
  }
}
```

## delete_alert

Delete one saved alert rule belonging to the signed-in account. alert_id is the rule
    identifier returned when the rule was saved or listed. Does not delete analytics, cancel
    billing, or change other accounts' rules.

```json
{
  "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
  }
}
```

## check_alerts

Check all your alerts right now against the latest prices.

```json
{
  "inputSchema": {
    "properties": {},
    "title": "check_alertsArguments",
    "type": "object"
  },
  "annotations": {
    "title": "Check saved rules against market prices",
    "readOnlyHint": true,
    "destructiveHint": false,
    "idempotentHint": true,
    "openWorldHint": true
  }
}
```

