tcg-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| TCG_DB_PATH | No | Local DB location. Defaults to ~/.tcg-mcp/tcg.db | |
| PSA_API_TOKEN | No | Required for PSA tools. Get a free token at https://www.psacard.com/publicapi | |
| POKEMONTCG_API_KEY | No | Optional. Get a free API key at https://dev.pokemontcg.io/ for higher rate limits | |
| PRICECHARTING_TOKEN | No | Optional. Paid subscription required for PriceCharting tools |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| tcg_psa_get_certA | Look up a single graded card by its PSA cert number. Returns card metadata (year, brand, set, card number, subject, variety), grade (label + numeric), and population data (count at this grade, count graded higher) when PSA exposes them. |
| tcg_psa_get_imagesA | Fetch front/back image URLs for a PSA graded card. NOTE: PSA only attaches images to cards graded after October 2021 — older slabs return an empty list with no error. |
| tcg_psa_add_to_collectionA | Look up a PSA cert AND record it in your local collection in one step. Workflow tool — combines If you've already added this exact cert, returns an error rather than
duplicating — use |
| tcg_cgc_get_certB | CGC cert lookup — stubbed. CGC has no official public API. Returns a clear "not supported" error. Implementation deferred. |
| tcg_bgs_get_certA | BGS cert lookup — stubbed. Beckett has no official public API. Returns a clear "not supported" error. Implementation deferred. |
| tcg_collection_add_cardA | Record a card as owned in the local SQLite DB. Returns the new card_id (a UUID) on success. |
| tcg_collection_listC | List cards in the local collection, with optional filters and pagination. |
| tcg_collection_getA | Fetch a single owned card by its card_id. |
| tcg_collection_updateA | Update mutable fields on a collection card (cost basis, notes, status, ...). |
| tcg_collection_removeA | Remove a card. Default is a soft-delete: status -> 'sold' and the row stays. Pair with sold_price + sold_date to capture the disposition. |
| tcg_collection_valueA | Cost-basis summary across the collection. Returns counts (owned / graded / raw / sold) and total cost basis.
For live market valuation that joins against pricing snapshots, see
|
| tcg_collection_add_sealedA | Record sealed product as owned. Behind the scenes, sealed product lives in the same Returns a list of new card_ids (one per unit). |
| tcg_collection_attach_pricingA | Map an owned card to a pricing listing for live valuation. After attaching, |
| tcg_collection_value_with_marketA | Cost basis + live market value across the collection. For each owned card with an attached pricing listing, we look up the
most recent pricing snapshot (matching the card's grade for graded
cards). Cards without an attachment or without a snapshot land in
Run |
| tcg_watchlist_addB | Add a card to the watchlist with a target buy price + thesis. Returns the new watchlist_id. |
| tcg_watchlist_listC | List watchlist entries with optional horizon filter. |
| tcg_watchlist_getA | Fetch a single watchlist entry by id. |
| tcg_watchlist_updateC | Update mutable fields on a watchlist entry. |
| tcg_watchlist_closeA | Mark a watchlist entry closed (bought / thesis_invalidated / manual). |
| tcg_psa_snapshot_popA | Capture today's PSA pop data for the spec backing this cert. Looks up the cert via PSA, extracts (SpecID, grade, total_at_grade,
population_higher), and inserts a row into pop_snapshots. Repeat over
time and |
| tcg_psa_pop_trendA | Return the time series of pop snapshots we've captured for a card spec. Useful for answering "Has PSA 10 pop for this card grown a lot?" — but
only works for specs you've snapshotted via |
| tcg_pricing_searchA | Search a pricing provider for matching products. Returns a list of CardListing rows. Use |
| tcg_pricing_getA | Fetch the full PriceQuote for one listing on the chosen provider. Returns top-level market/low/high (USD or EUR depending on provider),
a |
| tcg_pricing_snapshotB | Fetch a price quote and write it as a row in the pricing_snapshots table. For graded providers (PriceCharting), every graded_level becomes its own snapshot row (so you can later track PSA 10 vs PSA 9 separately). The raw provider payload is stored on the FIRST row only to avoid bloat. |
| tcg_pricing_snapshot_collectionA | Walk the collection and snapshot every owned card with an attached pricing listing, respecting per-provider rate limits. Skips cards whose most recent snapshot is younger than Returns a summary with counts (snapshotted / skipped_recent / failed) and a per-provider breakdown. |
| tcg_pricing_get_historyA | Return the time series of pricing snapshots saved for one listing. Useful for answering "is PSA 10 trending up?" or "what was Charizard ex
SIR worth a month ago?" — but only works for listings you've snapshotted
via Returned snapshots are oldest-first. |
| tcg_catalog_get_setA | Fetch a Pokemon TCG set's metadata (name, total cards, release date, …). Free — no API key required (Pokemon TCG API). |
| tcg_catalog_search_setB | Search Pokemon TCG sets. Returns set IDs, names, release dates, totals. |
| tcg_catalog_list_cards_in_setA | List every card in a set (optionally filtered by rarity), with TCGPlayer market price where available. Useful for set-completion analysis and rarity-tier breakdowns. |
| tcg_collection_set_completionA | Compute set-completion progress for a Pokemon TCG set. For each card in the set (optionally filtered by rarity):
Returns owned/missing counts, completion percentage, gap cost in USD, and per-card breakdown. |
| tcg_collection_searchA | Search owned cards across subject, set_name, brand, variety, notes,
and tags — richer than |
| tcg_pricing_get_cardA | Smart-routed price lookup. One call, the right provider(s) under the hood. Strategy:
Designed so an agent can ask "what's Charizard ex Surging Sparks worth" without knowing which provider to call first. |
| tcg_list_providersA | Show which grading / pricing providers are enabled in this process. Useful as a first call when introspecting the server's capabilities. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/seanlok/tcg-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server