{"$schema":"https://verifymcp.io/schemas/trust-report.json","schemaVersion":1,"license":{"name":"CC BY-NC 4.0","url":"https://creativecommons.org/licenses/by-nc/4.0/"},"generatedAt":"2026-11-05T19:28:37.818Z","url":"https://verifymcp.io/servers/uk-co-leewinder-tcgdex/leewinder-mcp-tcgdex","markdownUrl":"https://verifymcp.io/servers/uk-co-leewinder-tcgdex/leewinder-mcp-tcgdex.md","server":{"slug":"uk-co-leewinder-tcgdex","name":"uk.co.leewinder/tcgdex","registryName":"uk.co.leewinder/tcgdex","description":"MCP server exposing the TCGdex Pokémon TCG API to LLM tools","registryStatus":"active","deletedAt":null,"statusMessage":null,"liveness":"live","publisher":{"class":"unknown","claimed":false}},"component":{"slug":"leewinder-mcp-tcgdex","type":"npm","identifier":"@leewinder/mcp-tcgdex","withdrawn":false,"url":"https://verifymcp.io/servers/uk-co-leewinder-tcgdex/leewinder-mcp-tcgdex","version":"1.0.0","transport":"stdio","scoredAt":"2026-11-05T04:52:45.968Z"},"score":{"total":82,"tier":"high trust","status":"scored","weekDelta":3,"history":[{"date":"2026-11-05","total":82},{"date":"2026-11-04","total":82},{"date":"2026-11-03","total":82},{"date":"2026-11-02","total":81},{"date":"2026-11-01","total":81},{"date":"2026-10-31","total":80},{"date":"2026-10-30","total":80},{"date":"2026-10-29","total":79},{"date":"2026-10-28","total":79},{"date":"2026-10-27","total":78},{"date":"2026-10-26","total":78},{"date":"2026-10-25","total":78},{"date":"2026-10-24","total":77},{"date":"2026-10-23","total":77},{"date":"2026-10-22","total":76},{"date":"2026-10-21","total":76},{"date":"2026-10-20","total":75},{"date":"2026-10-19","total":75},{"date":"2026-10-18","total":74},{"date":"2026-10-17","total":74},{"date":"2026-10-16","total":73},{"date":"2026-10-15","total":73},{"date":"2026-10-14","total":72},{"date":"2026-10-13","total":68},{"date":"2026-10-12","total":68},{"date":"2026-10-11","total":68},{"date":"2026-10-04","total":28}]},"categories":[{"name":"Supply Chain Security","score":100,"verdict":"pass","reasons":["No malware found by supply-chain analysis.","No known CVEs affecting this package version or its production dependencies.","No install/post-install scripts declared.","0 of 8 dependencies flagged as unhealthy."],"codes":[{"code":"supplychain.malware_clean","args":{}},{"code":"cve.none","args":{}},{"code":"installscript.none","args":{}},{"code":"dephealth.assessed","args":{"deps":"8","unhealthy":"0"}}]},{"name":"Provenance & Transparency","score":45,"verdict":"fail","reasons":["Source repository is publicly reachable at the declared URL.","Provenance check failed: no build-provenance attestation is published.","Clear OSI-approved license (MIT).","Actively maintained (last published 31 days ago).","Security-disclosure policy not yet verified: we couldn't inspect the source repository."],"codes":[{"code":"provenance.repo_verified","args":{}},{"code":"provenance.none","args":{}},{"code":"license.osi","args":{"spdx":"MIT"}},{"code":"maintenance.recent","args":{"age_days":"31"}},{"code":"disclosure.repo_inconclusive","args":{"reason":"repo_not_github"}}]},{"name":"Schema Quality & AI Usability","score":62,"verdict":"fail","reasons":["AI-judged instruction clarity (excellent).","Context-footprint check failed: tool/resource definitions use about 3258 tokens (~465/item across 7 items; 7 tools + 0 resources), over budget; trim descriptions and params.","Usage-examples check failed: none of the tools include examples."],"codes":[{"code":"schema.ai_quality","args":{"band":"excellent"}},{"code":"schema.footprint_heavy","args":{"avg":"465","items":"7","tools":"7","tokens":"3258","resources":"0"}},{"code":"schema.examples_absent","args":{}}]},{"name":"Stability & Change Management","score":100,"verdict":"pass","reasons":["No destabilizing schema changes in the last 30 days."],"codes":[{"code":"stability.stable","args":{}}]},{"name":"Tool Coverage","score":100,"verdict":"pass","reasons":["100% of tools have a non-trivial description (not blank, and not just the tool's name).","100% of tool parameters carry a description.","Structured output schemas are declared (100% of tools); any adoption earns full credit."],"codes":[{"code":"toolquality.descriptions","args":{"pct":"100"}},{"code":"toolquality.param_docs","args":{"pct":"100"}},{"code":"toolquality.output_present","args":{"pct":"100"}}]},{"name":"Tool Safety","score":100,"verdict":"pass","reasons":["No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.","We read all 7 captured tool definition(s), and no name or description among them implies an irreversible operation.","An AI judge read all 8 captured unit(s) of tool text and found none that tries to manipulate the model reading it."],"codes":[{"code":"toolsafety.injection_clean","args":{}},{"code":"toolsafety.destructive_none","args":{"tools":"7"}},{"code":"toolsafety.manipulation_clean","args":{"units":"8","judged":"8"}}]},{"name":"Capabilities","score":100,"verdict":"pass","reasons":["Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28."],"codes":[{"code":"protocol.supported","args":{"latest":"2026-07-28","version":"2025-11-25"}}]}],"inconclusive":["Security-disclosure policy not yet verified: we couldn't inspect the source repository."],"malware":[],"components":[{"slug":"leewinder-mcp-tcgdex","type":"npm","identifier":"@leewinder/mcp-tcgdex","withdrawn":false,"score":82,"current":true,"url":"https://verifymcp.io/servers/uk-co-leewinder-tcgdex/leewinder-mcp-tcgdex","markdownUrl":"https://verifymcp.io/servers/uk-co-leewinder-tcgdex/leewinder-mcp-tcgdex.md"}],"facts":[{"label":"Registry","value":"npm"},{"label":"Package","value":"@leewinder/mcp-tcgdex"},{"label":"Version","value":"1.0.0"},{"label":"Transport","value":"stdio"}],"install":{"available":true,"bundleSha256":null},"tools":[{"name":"list_card_field_values","title":null,"description":"List the values a card `field` accepts in a language, which search_cards' filters take. `contains` filters them case-insensitively before paging; read further pages while `hasMore` is true. Values come from upstream as they are, so near-identical spellings of one artist can both appear.","inputs":[{"name":"contains","type":"string","required":false,"description":"Case-insensitive substring, applied to the whole field before paging, e.g. 'arita' finds 'Mitsuhiro Arita'."},{"name":"field","type":"string","required":true,"description":"The card field to list values for. 'type' is a Pokémon card's type (Fire, Water, …); 'energy' is an Energy card's class (Normal or Special); 'category' is the kind of card (Pokemon, Trainer or Energy…"},{"name":"language","type":"string","required":false,"description":"Catalogue language. Names, values and set lists are localised (the Asian catalogues have their own set ids), so look values up in it; prices are the same in every language."},{"name":"page","type":"integer","required":false,"description":"Zero-indexed page. A page past the end is an empty success with `hasMore` false."},{"name":"size","type":"integer","required":false,"description":"Results per page; only `hasMore` says whether more exist."}],"outputs":[{"name":"hasMore","type":"boolean","required":true,"description":"True when at least one further page of results exists after this one. Request every result by incrementing 'page' until this is false. There is deliberately no total count: the length of the returned…"},{"name":"language","type":"string","required":true,"description":"The catalogue language this response was read in."},{"name":"page","type":"integer","required":true,"description":"The zero-indexed page of results this response holds, whether it was requested or defaulted to."},{"name":"size","type":"integer","required":true,"description":"The page size this response was built with, whether it was requested or defaulted to. It is the maximum number of results this page can hold, not the number it does hold — the last page holds fewer."},{"name":"values","type":"array","required":true,"description":"One page of the field's accepted values, in the requested language, after any 'contains' filter. Pass a value back as listed when filtering a card search. Values come from the upstream data as-is and…"}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":279},{"name":"list_sets","title":null,"description":"List a language's sets, each with its `id`, `name`, `platform`, `releaseDate`, `serie` and card counts — the values a `set` filter takes. Oldest first unless `sort` or `order` say otherwise: `order` 'desc' lists the newest first. `contains` and `platform` filter the whole catalogue before paging.","inputs":[{"name":"contains","type":"string","required":false,"description":"Case-insensitive substring of the id or name, applied before paging."},{"name":"language","type":"string","required":false,"description":"Catalogue language. Names, values and set lists are localised (the Asian catalogues have their own set ids), so look values up in it; prices are the same in every language."},{"name":"order","type":"string","required":false,"description":"Whether the order runs ascending or descending — 'desc' on `releaseDate` puts the newest set first."},{"name":"page","type":"integer","required":false,"description":"Zero-indexed page. A page past the end is an empty success with `hasMore` false."},{"name":"platform","type":"string","required":false,"description":"'TCG' for printed sets, 'TCG Pocket' for digital ones; applied before paging. Some catalogues hold only one."},{"name":"size","type":"integer","required":false,"description":"Results per page; only `hasMore` says whether more exist."},{"name":"sort","type":"string","required":false,"description":"`releaseDate` (default), `name` or `id`."}],"outputs":[{"name":"hasMore","type":"boolean","required":true,"description":"True when at least one further page of results exists after this one. Request every result by incrementing 'page' until this is false. There is deliberately no total count: the length of the returned…"},{"name":"language","type":"string","required":true,"description":"The catalogue language this response was read in."},{"name":"order","type":"string","required":true,"description":"'asc' (default) or 'desc'; 'desc' by `releaseDate` lists the newest set first."},{"name":"page","type":"integer","required":true,"description":"The zero-indexed page of results this response holds, whether it was requested or defaulted to."},{"name":"sets","type":"array","required":true,"description":"One page of sets, in the requested language, after any 'contains' and 'platform' filters. Catalogues differ enormously in size — 220 sets in English against 2 in Polish — so a set missing here is mis…"},{"name":"size","type":"integer","required":true,"description":"The page size this response was built with, whether it was requested or defaulted to. It is the maximum number of results this page can hold, not the number it does hold — the last page holds fewer."},{"name":"sort","type":"string","required":true,"description":"What the sets were ordered by, whether requested or defaulted to."}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":278},{"name":"search_cards","title":null,"description":"Search the card catalogue; every filter is optional and they combine with AND. Exact filters (`type`, `energy`, `category`, `trainer`, `stage`, `rarity`, `illustrator`, `variant`, `suffix`, `regulation`) take values from list_card_field_values and match whole, with letter case corrected to the catalogue's — unless two values differ only by case, like suffixes 'EX' and 'ex', which is an error naming both. An unknown value is an error too, so an empty page means real values matched nothing. `name` and `effect` match substrings; `pokemon` finds every card depicting a Pokémon; `attack` and `ability` text is checked over the first 300 matches of the other filters, as `textSearch` reports. Results come in a fixed `sort` order, and `detail` sets how much of each card is returned. Read further pages while `hasMore` is true. Prices come from get_card_pricing, not from cards.","inputs":[{"name":"ability","type":"string","required":false,"description":"Case-insensitive text in an ability's name or effect. Checked over the first 300 matches of the other filters, which it needs at least one of; `textSearch` says whether that covered every match."},{"name":"attack","type":"string","required":false,"description":"Case-insensitive text in an attack's name or effect. Checked over the first 300 matches of the other filters, which it needs at least one of; `textSearch` says whether that covered every match."},{"name":"category","type":"string","required":false,"description":"Filter by the kind of card (Pokemon, Trainer or Energy)."},{"name":"detail","type":"string","required":false,"description":"'summary' (default): identity, set, platform, rarity and images. 'full' adds rules text, legality and every searchable field; it costs about three times the bytes."},{"name":"effect","type":"string","required":false,"description":"Case-insensitive substring of a Trainer or Energy card's effect text."},{"name":"energy","type":"string","required":false,"description":"Filter by an Energy card's class (Normal or Special)."},{"name":"hp","type":"object","required":false,"description":"Filter by hit points. Both bounds inclusive."},{"name":"illustrator","type":"string","required":false,"description":"Filter by the credited artist. Some artists appear under two spellings; list_card_field_values with `contains` shows both."},{"name":"language","type":"string","required":false,"description":"Catalogue language. Names, values and set lists are localised (the Asian catalogues have their own set ids), so look values up in it; prices are the same in every language."},{"name":"name","type":"string","required":false,"description":"Case-insensitive substring of the card name. Names repeat heavily; tell results apart by set and number."},{"name":"order","type":"string","required":false,"description":"'asc' (default) or 'desc'."},{"name":"page","type":"integer","required":false,"description":"Zero-indexed page. A page past the end is an empty success with `hasMore` false."},{"name":"platform","type":"string","required":false,"description":"'TCG' for printed cards, 'TCG Pocket' for digital ones."},{"name":"pokedex","type":"integer","required":false,"description":"Filter by a National Pokédex number. Matches any card depicting it."},{"name":"pokemon","type":"string","required":false,"description":"A Pokémon's name in the request language, resolved to its Pokédex number (echoed back) to find every card depicting it."},{"name":"rarity","type":"string","required":false,"description":"Filter by the print rarity ('None' for a card printed without one)."},{"name":"regulation","type":"string","required":false,"description":"Filter by the regulation mark letter."},{"name":"retreat","type":"object","required":false,"description":"Filter by retreat cost, where 0 is free. Both bounds inclusive."},{"name":"set","type":"string","required":false,"description":"Filter to one set by id ('sv04.5') or printed name ('Paldean Fates'), ignoring case; a name several sets share covers them all. list_sets lists both."},{"name":"size","type":"integer","required":false,"description":"Results per page; only `hasMore` says whether more exist."},{"name":"sort","type":"string","required":false,"description":"Order by `id` (default, unique, so pages never overlap) or `name`, alphabetically ignoring case. Cards cannot be ordered by release date."},{"name":"stage","type":"string","required":false,"description":"Filter by a Pokémon's evolution stage (Basic, Stage1, …)."},{"name":"suffix","type":"string","required":false,"description":"Filter by the name suffix (EX, GX, V, ex, …). Pokémon TCG Pocket's ex cards are recorded as 'EX'."},{"name":"trainer","type":"string","required":false,"description":"Filter by a Trainer card's subtype (Item, Supporter, …)."},{"name":"type","type":"string","required":false,"description":"Filter by a Pokémon card's type (Fire, Water, …). A dual-type card matches either type."},{"name":"variant","type":"string","required":false,"description":"Filter by a printing the card exists in (normal, holo, reverse, firstEdition). True of most cards in several variants at once."}],"outputs":[{"name":"cards","type":"array","required":true,"description":"One page of matching cards, in the requested language, in the shape 'detail' names. A summary carries the card's id, number, name, set, platform, rarity and images; a full card adds its rules text (a…"},{"name":"detail","type":"string","required":true,"description":"The level of detail this response was built with, whether it was requested or defaulted to. It decides which shape the cards below take."},{"name":"hasMore","type":"boolean","required":true,"description":"True when at least one further page of results exists after this one. Request every result by incrementing 'page' until this is false. There is deliberately no total count: the length of the returned…"},{"name":"language","type":"string","required":true,"description":"The catalogue language this response was read in."},{"name":"order","type":"string","required":true,"description":"The direction of the order, whether requested or defaulted to."},{"name":"page","type":"integer","required":true,"description":"The zero-indexed page of results this response holds, whether it was requested or defaulted to."},{"name":"pokemon","type":"object","required":false,"description":"What the `pokemon` filter resolved to. Absent when none was given."},{"name":"size","type":"integer","required":true,"description":"The page size this response was built with, whether it was requested or defaulted to. It is the maximum number of results this page can hold, not the number it does hold — the last page holds fewer."},{"name":"sort","type":"string","required":true,"description":"What the matches were ordered by, whether requested or defaulted to."},{"name":"textSearch","type":"object","required":false,"description":"How much an `attack` or `ability` search covered. Absent when neither was given."}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":951},{"name":"get_set","title":null,"description":"Read one set by id or printed name: its series, release date, platform and card counts, with a page of its cards in printed order as checklist lines of `id`, `localId`, `name` and `rarity`. Call get_card for a card that matters. Legality is per card, from get_card: upstream's set-level flag is wrong for every current set.","inputs":[{"name":"language","type":"string","required":false,"description":"Catalogue language. Names, values and set lists are localised (the Asian catalogues have their own set ids), so look values up in it; prices are the same in every language."},{"name":"page","type":"integer","required":false,"description":"Zero-indexed page. A page past the end is an empty success with `hasMore` false."},{"name":"set","type":"string","required":true,"description":"The set to read, as id ('sv04.5') or printed name ('Paldean Fates'), ignoring case; a name several sets share covers them all. list_sets lists both."},{"name":"size","type":"integer","required":false,"description":"Results per page; only `hasMore` says whether more exist."}],"outputs":[{"name":"cards","type":"array","required":true,"description":"One page of the set's cards, in printed order, in the requested language. Four sets in the English catalogue hold no cards at all, so an empty list here is an honest answer rather than a failure. Eac…"},{"name":"hasMore","type":"boolean","required":true,"description":"True when at least one further page of results exists after this one. Request every result by incrementing 'page' until this is false. There is deliberately no total count: the length of the returned…"},{"name":"language","type":"string","required":true,"description":"The catalogue language this response was read in."},{"name":"page","type":"integer","required":true,"description":"The zero-indexed page of results this response holds, whether it was requested or defaulted to."},{"name":"set","type":"object","required":true,"description":"What the set is: its identity, its series, when it was released and how large it is. Tournament legality is not given for a set, because it belongs to each card — one set can mix regulation marks, an…"},{"name":"size","type":"integer","required":true,"description":"The page size this response was built with, whether it was requested or defaulted to. It is the maximum number of results this page can hold, not the number it does hold — the last page holds fewer."}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":224},{"name":"get_card","title":null,"description":"Read one whole card by its `id`, or by its `set` and the number printed on it, `localId` — not both. The set may be an id or a printed name, ignoring case, and leading zeros in the number are optional. Returns the shape search_cards gives at `detail` 'full'. A card that does not exist is an error saying whether the set or the number was wrong.","inputs":[{"name":"id","type":"string","required":false,"description":"Global card id, e.g. 'swsh3-136'. Give it alone; take it from a search_cards or get_set result rather than composing one."},{"name":"language","type":"string","required":false,"description":"Catalogue language. Names, values and set lists are localised (the Asian catalogues have their own set ids), so look values up in it; prices are the same in every language."},{"name":"localId","type":"string","required":false,"description":"The number printed on the card, e.g. '105'; leading zeros are optional. Give it with `set`, not with `id`."},{"name":"set","type":"string","required":false,"description":"The card's set, given with `localId`: id ('sv04.5') or printed name ('Paldean Fates'), ignoring case; a name several sets share covers them all. list_sets lists both."}],"outputs":[{"name":"card","type":"object","required":true,"description":"The whole card, in the requested language: every field you can search on, its rules text (attacks, abilities and effect), its weaknesses and resistances, its tournament legality and its image URLs. M…"},{"name":"language","type":"string","required":true,"description":"The catalogue language this response was read in."}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":263},{"name":"get_card_pricing","title":null,"description":"Price up to 50 cards in EUR, USD or GBP, from Cardmarket (EUR) and TCGplayer (USD) side by side, with one total per market — never blended, since one is a trend and the other a market price. Name each card by `id`, or by `set` and `localId`, with an optional `variant` and `quantity`. Each line's `status` is `priced`; `unpriced`; `ambiguous`, when no `variant` was named and the copy held is unclear — name one of its `variants`; or `unavailable`, when the card could not be read or the line is malformed, which never fails the call. A missing price gives a `reason`: `no_listing`, `variant_unpriced`, `variant_not_printed`, `separate_product` (sold as a product of its own and unpriced here, like Base Set's 1st Edition or a Poké Ball reverse), `window_unavailable`, `platform_unpriced`, `unavailable` or `unrecognised_shape`. `approximateVariant` marks a price that may cover more than the printing named, and `separatelyListedPrintings` counts printings sold separately. Each price has its native `amount` and a `convertedAmount` at the ECB rate in `exchangeRates.rates`. A total is `complete` only when every line is priced. `warnings` flag markets more than 10× apart for a printing, and stale rates. Prices are for one copy in unspecified condition, before fees, and the same in every language.","inputs":[{"name":"basis","type":"string","required":false,"description":"Which figure to read. 'market' is TCGplayer's market price and Cardmarket's trend; 'low' the lowest listing; the day averages are Cardmarket's alone. TCGplayer gives `window_unavailable` for an avera…"},{"name":"cards","type":"array","required":true,"description":"One line per card, named the way get_card names one. A bad line is reported as unavailable; it never fails the call."},{"name":"currency","type":"string","required":true,"description":"The currency to convert to. Each price is also given in its market's own currency."},{"name":"language","type":"string","required":false,"description":"Catalogue language. Names, values and set lists are localised (the Asian catalogues have their own set ids), so look values up in it; prices are the same in every language."}],"outputs":[{"name":"basis","type":"string","required":true,"description":"The figure read, whether requested or defaulted to."},{"name":"currency","type":"string","required":true,"description":"The requested currency, echoed."},{"name":"exchangeRates","type":null,"required":true,"description":"The exchange rates every converted amount here used. Null when nothing needed converting, or when no rates could be fetched."},{"name":"language","type":"string","required":true,"description":"The catalogue language this response was read in."},{"name":"lines","type":"array","required":true,"description":"One entry per requested line, in the order asked."},{"name":"totals","type":"object","required":true,"description":"One total per market, never blended into one: the two markets measure prices differently, and a line priced in one market may be unpriced in the other."},{"name":"warnings","type":"array","required":true,"description":"Anything that limits how far these numbers can be relied on, such as exchange rates that are stale or unavailable, or prices the two markets put more than 10× apart. Empty when nothing does."}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":493},{"name":"rank_card_prices","title":null,"description":"Rank the cards matching `name`, `pokemon`, `pokedex`, `set` or `rarity` — at least one, matched as in search_cards — by one market's price, most valuable first unless `order` is 'asc'. Each card is ranked once, by its highest-priced printing in `rankMarket`: a row in `cards` gives that `variant`, its `price`, and the other market's price as `otherMarket`. Upstream cannot sort by price, so the first 300 matches are read; `truncated` says more matched, and `coverage` accounts for every card read, counting unpriced ones by the same `reason` codes get_card_pricing uses. `separatelyListedPrintings` counts printings sold separately and not ranked. A row's `warnings` flag markets more than 10× apart; the order still follows `rankMarket`. Prices show the native `amount` and a `convertedAmount` at the rate in `exchangeRates.rates`, for one copy in unspecified condition, before fees.","inputs":[{"name":"basis","type":"string","required":false,"description":"Which figure to rank by. 'market' is TCGplayer's market price and Cardmarket's trend; 'low' the lowest listing; the day averages are Cardmarket's alone. So an average needs `rankMarket` 'cardmarket'."},{"name":"currency","type":"string","required":true,"description":"The currency to show prices in; it never changes the order. Each price is also given in its market's own currency."},{"name":"language","type":"string","required":false,"description":"Catalogue language. Names, values and set lists are localised (the Asian catalogues have their own set ids), so look values up in it; prices are the same in every language."},{"name":"limit","type":"integer","required":false,"description":"How many rows to return; fewer when fewer cards have a price."},{"name":"name","type":"string","required":false,"description":"Case-insensitive substring of the card name. Names repeat heavily; tell results apart by set and number."},{"name":"order","type":"string","required":false,"description":"'desc' (default) puts the most valuable first."},{"name":"pokedex","type":"integer","required":false,"description":"Filter by a National Pokédex number. Matches any card depicting it."},{"name":"pokemon","type":"string","required":false,"description":"A Pokémon's name in the request language, resolved to its Pokédex number (echoed back) to find every card depicting it."},{"name":"rankMarket","type":"string","required":true,"description":"The one market whose price orders the ranking; each row shows the other's too."},{"name":"rarity","type":"string","required":false,"description":"Filter by the print rarity ('None' for a card printed without one)."},{"name":"set","type":"string","required":false,"description":"Filter to one set by id ('sv04.5') or printed name ('Paldean Fates'), ignoring case; a name several sets share covers them all. list_sets lists both."}],"outputs":[{"name":"basis","type":"string","required":true,"description":"The figure ranked by, whether requested or defaulted to."},{"name":"cards","type":"array","required":true,"description":"The ranked cards, best first in the order asked. Cards with no price in the ranked market are not listed — 'coverage' counts them."},{"name":"coverage","type":"object","required":true,"description":"How much of what matched the ranking actually covers. Nothing is left out without being counted here."},{"name":"currency","type":"string","required":true,"description":"The requested currency, echoed."},{"name":"exchangeRates","type":null,"required":true,"description":"The exchange rates every converted amount here used. Null when nothing needed converting, or when no rates could be fetched."},{"name":"language","type":"string","required":true,"description":"The catalogue language this response was read in."},{"name":"limit","type":"integer","required":true,"description":"The most rows this response could hold, whether requested or defaulted to."},{"name":"order","type":"string","required":true,"description":"The order used, whether requested or defaulted to."},{"name":"pokemon","type":"object","required":false,"description":"What the `pokemon` filter resolved to. Absent when none was given."},{"name":"rankMarket","type":"string","required":true,"description":"The market ranked by, echoed."},{"name":"truncated","type":"boolean","required":true,"description":"True when more than 300 cards matched, so only the first 300 in the catalogue's own order were considered and a card beyond them may outrank everything here. Narrow the filters until this is false to…"},{"name":"warnings","type":"array","required":true,"description":"Anything that limits how far these numbers can be relied on, such as exchange rates that are stale or unavailable, or prices the two markets put more than 10× apart. Empty when nothing does."}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":567}],"toolsTruncatedAtCapture":false,"diagnostics":{"capturedAt":"2026-11-05T04:52:45.000Z","track":"package","endpoint":null,"declaredUrl":null,"truncated":false,"tls":null,"dnssec":null,"auth":null,"httpsRedirect":null,"transports":[],"provenance":{"outcome":"none","label":"No attestation","reason":null,"reasonLabel":null,"discovery":null,"discoveryLabel":null,"sourceRepo":null,"attestationSkipped":null,"attestationSkippedLabel":null},"installScripts":[],"installScriptsTotal":null,"vulnerabilities":[],"vulnerabilitiesTotal":null,"dependencies":{"nodes":8,"partial":false,"deprecated":null,"stale":null,"noRepo":null}},"mismatches":[],"changelog":{"trackingSince":"2026-10-04","recent":[{"id":"chg_01a1a4de-1016-71dc-a8a4-2322f5804860","kind":"check.verdict","summary":"Stability (0.97 → pass)","materiality":"security","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/uk-co-leewinder-tcgdex/leewinder-mcp-tcgdex#chg-chg_01a1a4de-1016-71dc-a8a4-2322f5804860"},{"id":"chg_01a19fbd-e700-7c9d-aeba-1d5c1e39555e","kind":"score.total_changed","summary":"Trust score (81 → 82)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/uk-co-leewinder-tcgdex/leewinder-mcp-tcgdex#chg-chg_01a19fbd-e700-7c9d-aeba-1d5c1e39555e"},{"id":"chg_01a1956b-cf8d-7eb0-9706-cc719c7dcd22","kind":"score.total_changed","summary":"Trust score (80 → 81)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/uk-co-leewinder-tcgdex/leewinder-mcp-tcgdex#chg-chg_01a1956b-cf8d-7eb0-9706-cc719c7dcd22"},{"id":"chg_01a18b1e-cb65-732a-b3ad-61bf45c36f50","kind":"score.total_changed","summary":"Trust score (79 → 80)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-30","url":"https://verifymcp.io/servers/uk-co-leewinder-tcgdex/leewinder-mcp-tcgdex#chg-chg_01a18b1e-cb65-732a-b3ad-61bf45c36f50"},{"id":"chg_01a180cc-5bfd-76b2-a8c7-8b08a48608ab","kind":"score.total_changed","summary":"Trust score (78 → 79)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-28","url":"https://verifymcp.io/servers/uk-co-leewinder-tcgdex/leewinder-mcp-tcgdex#chg-chg_01a180cc-5bfd-76b2-a8c7-8b08a48608ab"},{"id":"chg_01a17156-fe79-72f0-a9d0-fd33116f9cd8","kind":"score.total_changed","summary":"Trust score (77 → 78)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-25","url":"https://verifymcp.io/servers/uk-co-leewinder-tcgdex/leewinder-mcp-tcgdex#chg-chg_01a17156-fe79-72f0-a9d0-fd33116f9cd8"},{"id":"chg_01a1670a-5b3d-738e-94c8-552585dd8f89","kind":"score.total_changed","summary":"Trust score (76 → 77)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-23","url":"https://verifymcp.io/servers/uk-co-leewinder-tcgdex/leewinder-mcp-tcgdex#chg-chg_01a1670a-5b3d-738e-94c8-552585dd8f89"},{"id":"chg_01a15cbc-851d-75bd-afc5-4e84e1a91cf4","kind":"score.total_changed","summary":"Trust score (75 → 76)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-21","url":"https://verifymcp.io/servers/uk-co-leewinder-tcgdex/leewinder-mcp-tcgdex#chg-chg_01a15cbc-851d-75bd-afc5-4e84e1a91cf4"},{"id":"chg_01a1526f-7110-7870-9d6c-ea8412310ffc","kind":"score.total_changed","summary":"Trust score (74 → 75)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-19","url":"https://verifymcp.io/servers/uk-co-leewinder-tcgdex/leewinder-mcp-tcgdex#chg-chg_01a1526f-7110-7870-9d6c-ea8412310ffc"},{"id":"chg_01a14820-ce41-7893-93a3-67a6e63ae911","kind":"score.total_changed","summary":"Trust score (73 → 74)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-17","url":"https://verifymcp.io/servers/uk-co-leewinder-tcgdex/leewinder-mcp-tcgdex#chg-chg_01a14820-ce41-7893-93a3-67a6e63ae911"},{"id":"chg_01a13dd8-f5f1-76bc-b823-afc17d9ff6ff","kind":"score.total_changed","summary":"Trust score (72 → 73)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-15","url":"https://verifymcp.io/servers/uk-co-leewinder-tcgdex/leewinder-mcp-tcgdex#chg-chg_01a13dd8-f5f1-76bc-b823-afc17d9ff6ff"},{"id":"chg_01a138b5-a60d-79be-9a92-05efefd75418","kind":"check.reverified","summary":"Stability (unverified → 0.30)","materiality":"functional","direction":"improvement","scoreDelta":null,"occurredOn":"2026-10-14","url":"https://verifymcp.io/servers/uk-co-leewinder-tcgdex/leewinder-mcp-tcgdex#chg-chg_01a138b5-a60d-79be-9a92-05efefd75418"},{"id":"chg_01a138b5-a65c-7101-af4b-457856cd3fe2","kind":"score.total_changed","summary":"Trust score (68 → 72)","materiality":"functional","direction":"improvement","scoreDelta":4,"occurredOn":"2026-10-14","url":"https://verifymcp.io/servers/uk-co-leewinder-tcgdex/leewinder-mcp-tcgdex#chg-chg_01a138b5-a65c-7101-af4b-457856cd3fe2"},{"id":"chg_01a12d27-80eb-79ab-92f9-dd65418b9a9e","kind":"check.reverified","summary":"Injection markers (unverified → pass)","materiality":"security","direction":"improvement","scoreDelta":null,"occurredOn":"2026-10-11","url":"https://verifymcp.io/servers/uk-co-leewinder-tcgdex/leewinder-mcp-tcgdex#chg-chg_01a12d27-80eb-79ab-92f9-dd65418b9a9e"},{"id":"chg_01a12d27-80ee-7234-9407-2b786123bcab","kind":"check.reverified","summary":"Known CVEs (unverified → pass)","materiality":"security","direction":"improvement","scoreDelta":null,"occurredOn":"2026-10-11","url":"https://verifymcp.io/servers/uk-co-leewinder-tcgdex/leewinder-mcp-tcgdex#chg-chg_01a12d27-80ee-7234-9407-2b786123bcab"},{"id":"chg_01a12d27-80ee-77f6-9251-b0a181888ce0","kind":"check.appeared","summary":"First check of Judged manipulation (pass)","materiality":"security","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-11","url":"https://verifymcp.io/servers/uk-co-leewinder-tcgdex/leewinder-mcp-tcgdex#chg-chg_01a12d27-80ee-77f6-9251-b0a181888ce0"},{"id":"chg_01a12d27-80ee-7cef-8242-37b8a013783e","kind":"check.reason","summary":"Stability (Stability not yet verified: not enough scan history yet (needs a 30-day window).)","materiality":"security","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-11","url":"https://verifymcp.io/servers/uk-co-leewinder-tcgdex/leewinder-mcp-tcgdex#chg-chg_01a12d27-80ee-7cef-8242-37b8a013783e"},{"id":"chg_01a12d27-80ef-730b-9c63-b661141957fa","kind":"check.reverified","summary":"Tool coverage (unverified → 100)","materiality":"functional","direction":"improvement","scoreDelta":null,"occurredOn":"2026-10-11","url":"https://verifymcp.io/servers/uk-co-leewinder-tcgdex/leewinder-mcp-tcgdex#chg-chg_01a12d27-80ef-730b-9c63-b661141957fa"},{"id":"chg_01a12d27-80ef-783b-a35b-4dd5d1004fa8","kind":"check.reverified","summary":"MCP protocol (unverified → pass)","materiality":"functional","direction":"improvement","scoreDelta":null,"occurredOn":"2026-10-11","url":"https://verifymcp.io/servers/uk-co-leewinder-tcgdex/leewinder-mcp-tcgdex#chg-chg_01a12d27-80ef-783b-a35b-4dd5d1004fa8"},{"id":"chg_01a12d27-80ef-7d02-8fd1-cb3dc09a4751","kind":"check.reverified","summary":"Dependency health (unverified → 1.00)","materiality":"functional","direction":"improvement","scoreDelta":null,"occurredOn":"2026-10-11","url":"https://verifymcp.io/servers/uk-co-leewinder-tcgdex/leewinder-mcp-tcgdex#chg-chg_01a12d27-80ef-7d02-8fd1-cb3dc09a4751"}],"truncated":true,"feedUrl":"https://verifymcp.io/servers/uk-co-leewinder-tcgdex/leewinder-mcp-tcgdex/changelog.json"},"links":{"html":"https://verifymcp.io/servers/uk-co-leewinder-tcgdex/leewinder-mcp-tcgdex","markdown":"https://verifymcp.io/servers/uk-co-leewinder-tcgdex/leewinder-mcp-tcgdex.md","changelogJson":"https://verifymcp.io/servers/uk-co-leewinder-tcgdex/leewinder-mcp-tcgdex/changelog.json","changelogRss":"https://verifymcp.io/servers/uk-co-leewinder-tcgdex/leewinder-mcp-tcgdex.xml","external":[{"label":"npm package","href":"https://www.npmjs.com/package/@leewinder/mcp-tcgdex"},{"label":"Socket report","href":"https://socket.dev/npm/package/@leewinder/mcp-tcgdex"},{"label":"Repository","href":"https://gitlab.com/lee.winder/tcgdex-mcp-server"}]}}