{"$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-05T16:10:05.710Z","url":"https://verifymcp.io/servers/cookiebreed-card-recognition-mcp/neosatoshi-card-mcp","markdownUrl":"https://verifymcp.io/servers/cookiebreed-card-recognition-mcp/neosatoshi-card-mcp.md","server":{"slug":"cookiebreed-card-recognition-mcp","name":"NeoSatoshi Card Recognition","registryName":"io.github.Cookiebreed/card-recognition-mcp","description":"Identify trading and football cards in a photo, search and correct them, with Cardmarket prices.","registryStatus":"active","deletedAt":null,"statusMessage":null,"liveness":"live","publisher":{"class":"unknown","claimed":false}},"component":{"slug":"neosatoshi-card-mcp","type":"npm","identifier":"neosatoshi-card-mcp","withdrawn":false,"url":"https://verifymcp.io/servers/cookiebreed-card-recognition-mcp/neosatoshi-card-mcp","version":"0.7.0","transport":"stdio","scoredAt":"2026-11-05T04:33:54.250Z"},"score":{"total":68,"tier":"medium","status":"scored","weekDelta":null,"history":[{"date":"2026-11-05","total":68},{"date":"2026-11-04","total":68},{"date":"2026-11-03","total":42},{"date":"2026-11-02","total":52}]},"categories":[{"name":"Supply Chain Security","score":98,"verdict":"partial","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.","30 of 92 dependencies flagged as unhealthy."],"codes":[{"code":"supplychain.malware_clean","args":{}},{"code":"cve.none","args":{}},{"code":"installscript.none","args":{}},{"code":"dephealth.assessed","args":{"deps":"92","unhealthy":"30"}}]},{"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 1 days ago).","Disclosure check failed: no security disclosure policy was found in 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":"1"}},{"code":"disclosure.absent","args":{}}]},{"name":"Schema Quality & AI Usability","score":57,"verdict":"fail","reasons":["AI-judged instruction clarity (good).","Context-footprint check failed: tool/resource definitions use about 2905 tokens (~363/item across 8 items; 8 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":"good"}},{"code":"schema.footprint_heavy","args":{"avg":"363","items":"8","tools":"8","tokens":"2905","resources":"0"}},{"code":"schema.examples_absent","args":{}}]},{"name":"Stability & Change Management","score":10,"verdict":"partial","reasons":["Stability observed for 3 of 30 days with no destabilising changes; credit accrues until the full window elapses."],"codes":[{"code":"stability.building_history","args":{"days":"3"}}]},{"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."],"codes":[{"code":"toolquality.descriptions","args":{"pct":"100"}},{"code":"toolquality.param_docs","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 8 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":"8"}},{"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":[],"malware":[],"components":[{"slug":"neosatoshi-card-mcp","type":"npm","identifier":"neosatoshi-card-mcp","withdrawn":false,"score":68,"current":true,"url":"https://verifymcp.io/servers/cookiebreed-card-recognition-mcp/neosatoshi-card-mcp","markdownUrl":"https://verifymcp.io/servers/cookiebreed-card-recognition-mcp/neosatoshi-card-mcp.md"}],"facts":[{"label":"Registry","value":"npm"},{"label":"Package","value":"neosatoshi-card-mcp"},{"label":"Version","value":"0.7.0"},{"label":"Transport","value":"stdio"}],"install":{"available":true,"bundleSha256":null},"tools":[{"name":"recognize_cards","title":"Recognize trading cards in a photo","description":"Identify trading cards in a photo with the NeoSatoshi card recognition API. Games: Pokémon (default), One Piece, Disney Lorcana, Yu-Gi-Oh! TCG, Magic: The Gathering, Star Wars: Unlimited and Digimon Card Game (English, Japanese), several cards per photo (binder pages work, one game per photo), and football (soccer) cards with tcg \"football\" (Topps, Panini and other makers; one card front per photo, max 4 MB). Returns per card: name, language, set, number, rarity, Cardmarket product ID, daily Cardmarket prices in EUR (TCGplayer USD where available), confidence and alternatives. Football cards instead: the player, release (set, number), season, subset, teams, rookie flag, a sure flag, alternatives and the parallel (three candidates with print runs, a pick only when the recognizer is sure; a person should confirm it). No prices and no images for football yet; it takes about 6 to 25 seconds. Digimon (tcg \"digimon\"): recognised by card number and name; alternative arts share the number, so the printing comes from the picture or stays open (print_unconfirmed) with the printings as alternatives. TCGplayer prices only for English Digimon printings. Older Digimon products (the 1999 card game, the 2000 trading cards) are not recognised. Graded slabs (PSA, BGS, CGC, for football also SGC) fill graded with the grade read from the label. It does not grade card condition. Give exactly one image source: image_path (local .jpg/.jpeg/.png, max 12 MB, football 4 MB), image_url (public https URL, forwarded to the API) or image_base64. Uses the API key in NEOSATOSHI_API_KEY; without it, the public demo key is used (10 detections per day per network). One card usually takes about 4 seconds, about 10 to 12 seconds on the first request after a quiet period; with a progress token the cards are reported one by one while a binder page is read. include_images: true adds the catalog image of up to 10 recognised cards, to compare them with the photo.","inputs":[{"name":"image_base64","type":"string","required":false,"description":"Base64-encoded JPEG or PNG (max 12 MB, football 4 MB). A data:image/...;base64, prefix is accepted."},{"name":"image_path","type":"string","required":false,"description":"Path to a local JPEG or PNG file (max 12 MB, football 4 MB). Absolute paths work best; ~ is expanded."},{"name":"image_url","type":"string","required":false,"description":"Public https URL of a JPEG or PNG (max 12 MB). Sent to the API as is; this server does not download it."},{"name":"include_images","type":"boolean","required":false,"description":"Also return the catalog image of up to 10 recognised cards (small images from our CDN). Default false. Football cards have none."},{"name":"tcg","type":"string","required":false,"description":"Which game the photo shows. Default: pokemon. football for football (soccer) cards."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":646},{"name":"recognize_folder","title":"Recognize every card photo in a folder","description":"Recognize all JPEG and PNG photos in one local folder (not its subfolders), one detection per photo, in name order, and write the cards to a new CSV file (and/or a JSON file in the API format) in that folder. CSV columns: file, card_index, name, tcg, language, set_name, set_code, number, rarity, cardmarket_id, Cardmarket trend and 30 day average in EUR, TCGplayer market in USD, confidence, graded, season, subset, parallel, request_id. Costs like recognize_cards: one credit per detected card. The demo key allows only 10 detections per day, so use your own key for folders. Stops at max_files (default 20, at most 100) and on errors that would fail every photo (no credits, invalid key, demo limit). Existing files are never overwritten. With a progress token each photo is reported as it is done.","inputs":[{"name":"folder","type":"string","required":true,"description":"Path to the folder with the photos. ~ is expanded."},{"name":"max_files","type":"integer","required":false,"description":"At most this many photos, in name order. Default 20."},{"name":"output","type":"string","required":false,"description":"Result file(s) to write into the folder. Default csv."},{"name":"tcg","type":"string","required":false,"description":"Which game the photos show, one game per folder. Default: pokemon."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":280},{"name":"search_cards","title":"Search the card catalog","description":"Search the NeoSatoshi card catalog. Results are full card objects like a detection returns (set, number, rarity, Cardmarket product ID, daily prices, images), at most 10, with has_more but no total. Use it first to fix a wrong detection: pass request_id and card_index from recognize_cards. That correction search is free (5 searches per detected card within 24 hours, at most 5 results), then call correct_card. Without request_id it is the paid card search: 0.5 credits when it returns a card, nothing for no result. Query: q (a card name, at least 3 letters, optionally with the number like \"charizard 4/102\", or a printed code like OP01-003; Digimon: a card number alone like BT1-025 works), or set + number. Wildcards and set-only or number-only queries are refused. Football (tcg \"football\"): q only, the player with optional set or season words (\"kane chrome 2023\"), no language, set or number, no prices yet; each result carries a ref for get_card. Football detections cannot be corrected yet.","inputs":[{"name":"card_index","type":"integer","required":false,"description":"cards[].card_index of the card to correct (with request_id)."},{"name":"language","type":"string","required":false,"description":"Card language, e.g. en, de, fr, it, es, pt, ja, ko, zh (per game; Digimon en or ja). Default: the detected card's language, else en. Leave it out for football."},{"name":"limit","type":"integer","required":false,"description":"1 to 10 results (correction search: at most 5)."},{"name":"number","type":"string","required":false,"description":"Card number, together with set (or q)."},{"name":"q","type":"string","required":false,"description":"Card name (at least 3 letters), optionally with the number, or a printed code (Digimon: a card number like BT1-025). Football: the player, optionally with set or season words."},{"name":"request_id","type":"string","required":false,"description":"request_id of a detection: makes this a free correction search."},{"name":"set","type":"string","required":false,"description":"Set id or code, together with number (Digimon: the set code, e.g. BT1 with number 025)."},{"name":"tcg","type":"string","required":false,"description":"Game. Required without request_id; default with it: the detected card's game."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":488},{"name":"correct_card","title":"Correct a detected card","description":"Correct a card of a detection to the right catalog card. Free, within 24 hours of the detection, 3 times per card, only for the API key that made the detection. card_id comes from a correction search result or from the detected card's alternatives. Returns the full corrected card. Corrections also improve the recognition. Yu-Gi-Oh!: card_id is the passcode, set the printed code (LOB-EN001) to pick a printing. Magic: card_id is the oracle_id with set + number for the printing. One Piece: cardmarket_id picks a parallel. Digimon: card_id is a printing id (dg-BT1-025_P1, dg-ja-BT1-025_P1) or dg-c-<number> while the printing is open.","inputs":[{"name":"card_id","type":"string","required":true,"description":"card_id of a search result or an alternative."},{"name":"card_index","type":"integer","required":true,"description":"cards[].card_index of the card to correct."},{"name":"cardmarket_id","type":"integer","required":false,"description":"One Piece: picks a parallel printing."},{"name":"language","type":"string","required":false,"description":"Card language, e.g. en, de, fr, it, es, pt, ja, ko, zh (per game; Digimon en or ja). Default: the detected card's language, else en. Leave it out for football."},{"name":"number","type":"string","required":false,"description":"Magic, SWU: collector number of the printing."},{"name":"request_id","type":"string","required":true,"description":"request_id of the detection."},{"name":"set","type":"string","required":false,"description":"Magic, SWU: set of the printing; Yu-Gi-Oh!: the printed code."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":333},{"name":"get_card","title":"Get one card by id","description":"Get one card by its card_id (for example to refresh its price or resolve a stored id). 0.5 credits when the card exists, nothing for an unknown card. For a wrong detection use search_cards with request_id and correct_card instead: those are free. Football: pass the ref of a search_cards result (same API key, within 24 hours); the card then comes with all parallels of its subset and their print runs. Without a valid ref the call is refused and free.","inputs":[{"name":"card_id","type":"string","required":true,"description":"card_id (Yu-Gi-Oh!: passcode; Magic: oracle_id; SWU: printing id or card_key; Digimon: dg-... printing id, dg-c-<number> or the bare number BT1-025; football: fb-...)."},{"name":"cardmarket_id","type":"integer","required":false,"description":"One Piece: picks a parallel printing."},{"name":"language","type":"string","required":false,"description":"Card language, e.g. en, de, fr, it, es, pt, ja, ko, zh (per game; Digimon en or ja). Default: the detected card's language, else en. Leave it out for football."},{"name":"number","type":"string","required":false,"description":"Magic, SWU: collector number of the printing."},{"name":"ref","type":"string","required":false,"description":"Football only, required there: the ref of the search_cards result for this card_id (valid 24 hours)."},{"name":"set","type":"string","required":false,"description":"Magic, SWU: set of the printing; Yu-Gi-Oh!: the printed code."},{"name":"tcg","type":"string","required":true,"description":"Game of the card."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":328},{"name":"export_cards","title":"Export detected cards as CSV or JSON","description":"Export the cards of up to 20 detections (request_id of recognize_cards or recognize_folder, within 48 hours) as the same file the NeoSatoshi website exports, built by the website's own export code: your account's condition for new cards, corrections made with correct_card, your saved settings, price rules and templates. Formats: csv/json (custom export; preset = a saved preset id from list_export_presets, or fields and json_mode \"api\"/\"custom\"), tcgpowertools (the TCGPowerTools CSV for Cardmarket), shopify (the Shopify product CSV, prices in the store currency) and ebay (the eBay Seller Hub CSV for one eBay site). Price options for tcgpowertools, shopify and ebay, like the buttons of the website's pricing step: price_source, min_price, markup_percent and rounding (a markup or rounding replaces your saved price rules; 0 = no markup). tcgpowertools: comment. shopify: store_currency, variant_mode. ebay: marketplace, one_row_per_card. Cards that cannot be exported are named in the answer, never guessed. Free (no credits). Needs your own API key (demo detections keep no cards) and exports enabled for the account. Football detections cannot be exported yet. save_to_folder writes the file into a local folder (allowed by NEOSATOSHI_ALLOWED_DIRS, never overwrites); without it the file content comes back in the answer (up to 100 KB).","inputs":[{"name":"comment","type":"string","required":false,"description":"tcgpowertools: the Cardmarket comment for every row (default: the one saved on the website)."},{"name":"fields","type":"array","required":false,"description":"Field ids in column order (list_export_presets). Default: the recommended columns."},{"name":"format","type":"string","required":false,"description":"Default csv (the custom export)."},{"name":"json_mode","type":"string","required":false,"description":"JSON only: api = the documented card shape (fields ignored), custom = your fields. Default api."},{"name":"marketplace","type":"string","required":false,"description":"ebay: the eBay site, e.g. EBAY_DE, EBAY_US, EBAY_GB (default: your saved one)."},{"name":"markup_percent","type":"number","required":false,"description":"tcgpowertools, shopify, ebay: markup in percent from the market price; replaces the saved price rules. 0 = no markup."},{"name":"min_price","type":"number","required":false,"description":"tcgpowertools, shopify, ebay: a floor for every row (EUR, the store currency, or the eBay site's currency)."},{"name":"one_row_per_card","type":"boolean","required":false,"description":"ebay: one CSV row per copy instead of one row with a quantity."},{"name":"preset","type":"string","required":false,"description":"Id of a saved export preset (list_export_presets). Not together with format, fields or json_mode."},{"name":"price_source","type":"string","required":false,"description":"tcgpowertools, shopify, ebay: the market price to start from. Default cardmarket_30d (tcgplayer not for tcgpowertools)."},{"name":"request_ids","type":"array","required":true,"description":"request_id of each detection to export, in the order the rows should have."},{"name":"rounding","type":"string","required":false,"description":"tcgpowertools, shopify, ebay: round every price; replaces the saved price rules."},{"name":"save_to_folder","type":"string","required":false,"description":"Local folder to write the file into (~ is expanded). Existing files are never overwritten."},{"name":"store_currency","type":"string","required":false,"description":"shopify: your Shopify store's currency, e.g. EUR (default: read from your connected store)."},{"name":"variant_mode","type":"string","required":false,"description":"shopify: one product per card with variants, or one product per language, condition and printing (default: your saved choice)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":745},{"name":"list_export_presets","title":"List export presets and fields","description":"Lists the account's saved export presets (from the NeoSatoshi website, plus the built-in recommended CSV) and every field id export_cards takes. Free. Needs your own API key.","inputs":[],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":48},{"name":"list_supported_games","title":"List supported games","description":"Lists the games, card languages, tcg values and limits of the NeoSatoshi card recognition API. No API call, no cost.","inputs":[],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":37}],"toolsTruncatedAtCapture":false,"diagnostics":{"capturedAt":"2026-11-05T04:33:54.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":92,"partial":false,"deprecated":null,"stale":30,"noRepo":null}},"mismatches":[],"changelog":{"trackingSince":"2026-11-02","recent":[{"id":"chg_01a1a643-1239-7168-890c-dce45a1ccfa0","kind":"score.total_changed","summary":"Trust score (38 → 68)","materiality":"functional","direction":"improvement","scoreDelta":30,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/cookiebreed-card-recognition-mcp/neosatoshi-card-mcp#chg-chg_01a1a643-1239-7168-890c-dce45a1ccfa0"},{"id":"chg_01a1a63e-b0f2-7c84-9528-5563f445ceb2","kind":"check.unverifiable","summary":"Stability (0.03 → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/cookiebreed-card-recognition-mcp/neosatoshi-card-mcp#chg-chg_01a1a63e-b0f2-7c84-9528-5563f445ceb2"},{"id":"chg_01a1a63e-b0f3-7a51-be05-38ea6d5a76e1","kind":"check.unverifiable","summary":"Tool safety (pass → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/cookiebreed-card-recognition-mcp/neosatoshi-card-mcp#chg-chg_01a1a63e-b0f3-7a51-be05-38ea6d5a76e1"},{"id":"chg_01a1a63e-b0f4-7a9f-ae70-68fd6a3b7d02","kind":"check.unverifiable","summary":"Capabilities (pass → unverified)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/cookiebreed-card-recognition-mcp/neosatoshi-card-mcp#chg-chg_01a1a63e-b0f4-7a9f-ae70-68fd6a3b7d02"},{"id":"chg_01a1a63e-b0f5-716f-96c8-8a6ecdb5aa04","kind":"check.unverifiable","summary":"Tool coverage (100 → unverified)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/cookiebreed-card-recognition-mcp/neosatoshi-card-mcp#chg-chg_01a1a63e-b0f5-716f-96c8-8a6ecdb5aa04"},{"id":"chg_01a1a63e-b0f6-714b-ae63-92a1bd49c463","kind":"check.appeared","summary":"First check of Schema quality (unverified)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/cookiebreed-card-recognition-mcp/neosatoshi-card-mcp#chg-chg_01a1a63e-b0f6-714b-ae63-92a1bd49c463"},{"id":"chg_01a1a63e-b0f6-76ec-acc4-0640f72a99ec","kind":"package.version_changed","summary":"Package version (0.6.0 → 0.7.0)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/cookiebreed-card-recognition-mcp/neosatoshi-card-mcp#chg-chg_01a1a63e-b0f6-76ec-acc4-0640f72a99ec"},{"id":"chg_01a1a63e-b0f6-7dc5-a304-1948e87349a5","kind":"score.total_changed","summary":"Trust score (68 → 38)","materiality":"functional","direction":"regression","scoreDelta":-30,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/cookiebreed-card-recognition-mcp/neosatoshi-card-mcp#chg-chg_01a1a63e-b0f6-7dc5-a304-1948e87349a5"},{"id":"chg_01a1a4d1-33d4-774e-9a77-1e9207791dd8","kind":"check.reverified","summary":"Malware scan (unverified → pass)","materiality":"security","direction":"improvement","scoreDelta":null,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/cookiebreed-card-recognition-mcp/neosatoshi-card-mcp#chg-chg_01a1a4d1-33d4-774e-9a77-1e9207791dd8"},{"id":"chg_01a1a4d1-33d5-7505-a8e8-5deb883c4b10","kind":"check.reverified","summary":"Known CVEs (unverified → pass)","materiality":"security","direction":"improvement","scoreDelta":null,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/cookiebreed-card-recognition-mcp/neosatoshi-card-mcp#chg-chg_01a1a4d1-33d5-7505-a8e8-5deb883c4b10"},{"id":"chg_01a1a4d1-33d6-70df-8844-d0d11158259b","kind":"check.unverifiable","summary":"Security disclosure (fail → unverified)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/cookiebreed-card-recognition-mcp/neosatoshi-card-mcp#chg-chg_01a1a4d1-33d6-70df-8844-d0d11158259b"},{"id":"chg_01a1a4d1-33d6-771c-a8cb-99d13cd0904e","kind":"check.reverified","summary":"Dependency health (unverified → 0.85)","materiality":"functional","direction":"improvement","scoreDelta":null,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/cookiebreed-card-recognition-mcp/neosatoshi-card-mcp#chg-chg_01a1a4d1-33d6-771c-a8cb-99d13cd0904e"},{"id":"chg_01a1a4d1-33d6-7e16-aa1b-8234c16197c2","kind":"score.total_changed","summary":"Trust score (42 → 68)","materiality":"functional","direction":"improvement","scoreDelta":26,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/cookiebreed-card-recognition-mcp/neosatoshi-card-mcp#chg-chg_01a1a4d1-33d6-7e16-aa1b-8234c16197c2"},{"id":"chg_01a1a1dd-c4c1-7503-a68d-b0018fc67ccd","kind":"check.unverifiable","summary":"Known CVEs (pass → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/cookiebreed-card-recognition-mcp/neosatoshi-card-mcp#chg-chg_01a1a1dd-c4c1-7503-a68d-b0018fc67ccd"},{"id":"chg_01a1a1dd-c4c2-7cc9-9f73-7a220ea6b5c5","kind":"check.measure","summary":"Schema quality (1897 → 2690)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/cookiebreed-card-recognition-mcp/neosatoshi-card-mcp#chg-chg_01a1a1dd-c4c2-7cc9-9f73-7a220ea6b5c5"},{"id":"chg_01a1a1dd-c4c3-7a62-be1f-37f39573a63b","kind":"check.unverifiable","summary":"Dependency health (0.85 → unverified)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/cookiebreed-card-recognition-mcp/neosatoshi-card-mcp#chg-chg_01a1a1dd-c4c3-7a62-be1f-37f39573a63b"},{"id":"chg_01a1a1dd-c4c4-72b0-b566-35f1ad36a635","kind":"check.measure","summary":"Schema quality (excellent → good)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/cookiebreed-card-recognition-mcp/neosatoshi-card-mcp#chg-chg_01a1a1dd-c4c4-72b0-b566-35f1ad36a635"},{"id":"chg_01a1a1dd-c4c5-7259-a9cb-f0cf8548379d","kind":"package.version_changed","summary":"Package version (0.4.1 → 0.6.0)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/cookiebreed-card-recognition-mcp/neosatoshi-card-mcp#chg-chg_01a1a1dd-c4c5-7259-a9cb-f0cf8548379d"},{"id":"chg_01a1a1dd-c4c6-7d5d-bf2b-a7a12033cb90","kind":"score.total_changed","summary":"Trust score (53 → 42)","materiality":"functional","direction":"regression","scoreDelta":-11,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/cookiebreed-card-recognition-mcp/neosatoshi-card-mcp#chg-chg_01a1a1dd-c4c6-7d5d-bf2b-a7a12033cb90"},{"id":"chg_01a1a0d2-3a1a-761f-8f82-a6aacca195cd","kind":"check.measure","summary":"Schema quality (1897 → 2284)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/cookiebreed-card-recognition-mcp/neosatoshi-card-mcp#chg-chg_01a1a0d2-3a1a-761f-8f82-a6aacca195cd"}],"truncated":true,"feedUrl":"https://verifymcp.io/servers/cookiebreed-card-recognition-mcp/neosatoshi-card-mcp/changelog.json"},"links":{"html":"https://verifymcp.io/servers/cookiebreed-card-recognition-mcp/neosatoshi-card-mcp","markdown":"https://verifymcp.io/servers/cookiebreed-card-recognition-mcp/neosatoshi-card-mcp.md","changelogJson":"https://verifymcp.io/servers/cookiebreed-card-recognition-mcp/neosatoshi-card-mcp/changelog.json","changelogRss":"https://verifymcp.io/servers/cookiebreed-card-recognition-mcp/neosatoshi-card-mcp.xml","external":[{"label":"npm package","href":"https://www.npmjs.com/package/neosatoshi-card-mcp"},{"label":"Socket report","href":"https://socket.dev/npm/package/neosatoshi-card-mcp"},{"label":"Repository","href":"https://github.com/Cookiebreed/card-recognition-api"},{"label":"Website","href":"https://neosatoshi.com/developers/detection-api"}]}}