{"$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-05T17:50:30.795Z","url":"https://verifymcp.io/servers/baccaraaa-tavero/tavero","markdownUrl":"https://verifymcp.io/servers/baccaraaa-tavero/tavero.md","server":{"slug":"baccaraaa-tavero","name":"Tavero","registryName":"io.github.baccaraaa/tavero","description":"Finds UI drift in React apps (buttons, cards, colors, spacing) and gives your agent each fix","registryStatus":"active","deletedAt":null,"statusMessage":null,"liveness":"live","publisher":{"class":"unknown","claimed":false}},"component":{"slug":"tavero","type":"npm","identifier":"tavero","withdrawn":false,"url":"https://verifymcp.io/servers/baccaraaa-tavero/tavero","version":"0.7.0","transport":"stdio","scoredAt":"2026-11-05T02:13:45.282Z"},"score":{"total":84,"tier":"high trust","status":"scored","weekDelta":3,"history":[{"date":"2026-11-05","total":84},{"date":"2026-11-04","total":84},{"date":"2026-11-03","total":83},{"date":"2026-11-02","total":83},{"date":"2026-11-01","total":82},{"date":"2026-10-31","total":82},{"date":"2026-10-30","total":81},{"date":"2026-10-29","total":81},{"date":"2026-10-28","total":80},{"date":"2026-10-27","total":80},{"date":"2026-10-26","total":79},{"date":"2026-10-25","total":79},{"date":"2026-10-24","total":53}]},"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.","32 of 102 dependencies flagged as unhealthy."],"codes":[{"code":"supplychain.malware_clean","args":{}},{"code":"cve.none","args":{}},{"code":"installscript.none","args":{}},{"code":"dephealth.assessed","args":{"deps":"102","unhealthy":"32"}}]},{"name":"Provenance & Transparency","score":97,"verdict":"fail","reasons":["Source repository is publicly reachable at the declared URL.","Cryptographically verified build provenance (signed, bound to baccaraaa/tavero).","Clear OSI-approved license (MIT).","Actively maintained (last published 10 days ago).","Disclosure check failed: no security disclosure policy was found in the source repository."],"codes":[{"code":"provenance.repo_verified","args":{}},{"code":"provenance.verified","args":{"repo":"baccaraaa/tavero"}},{"code":"license.osi","args":{"spdx":"MIT"}},{"code":"maintenance.recent","args":{"age_days":"10"}},{"code":"disclosure.absent","args":{}}]},{"name":"Schema Quality & AI Usability","score":69,"verdict":"fail","reasons":["AI-judged instruction clarity (good).","Context-footprint check failed: tool/resource definitions use about 1055 tokens (~117/item across 9 items; 9 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":"117","items":"9","tools":"9","tokens":"1055","resources":"0"}},{"code":"schema.examples_absent","args":{}}]},{"name":"Stability & Change Management","score":40,"verdict":"partial","reasons":["Stability observed for 12 of 30 days with no destabilising changes; credit accrues until the full window elapses."],"codes":[{"code":"stability.building_history","args":{"days":"12"}}]},{"name":"Tool Coverage","score":89,"verdict":"partial","reasons":["100% of tools have a non-trivial description (not blank, and not just the tool's name).","67% of tool parameters carry a description."],"codes":[{"code":"toolquality.descriptions","args":{"pct":"100"}},{"code":"toolquality.param_docs","args":{"pct":"67"}}]},{"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 9 captured tool definition(s), and no name or description among them implies an irreversible operation.","An AI judge read all 9 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":"9"}},{"code":"toolsafety.manipulation_clean","args":{"units":"9","judged":"9"}}]},{"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":"tavero","type":"npm","identifier":"tavero","withdrawn":false,"score":84,"current":true,"url":"https://verifymcp.io/servers/baccaraaa-tavero/tavero","markdownUrl":"https://verifymcp.io/servers/baccaraaa-tavero/tavero.md"}],"facts":[{"label":"Registry","value":"npm"},{"label":"Package","value":"tavero"},{"label":"Version","value":"0.7.0"},{"label":"Transport","value":"stdio"}],"install":{"available":true,"bundleSha256":null},"tools":[{"name":"tavero_context","title":"Design-system brief","description":"Compact Markdown brief of this React app's design system: stack, tokens, the canonical button/icon-button/card components with files and props, dominant radius/spacing/typography, and open problems. Call it BEFORE writing or changing UI, then reuse the components and tokens it names instead of inventing styles.","inputs":[{"name":"budget","type":"integer","required":false,"description":"approximate token budget, default 1500"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":85},{"name":"tavero_findings","title":"List findings","description":"UI consistency problems of the latest scan, worst first: distinct button and card styles, colors outside the tokens, Tailwind defaults, hardcoded literals, off-scale radius/spacing/typography. Each row has a stable id, severity, rule, title and evidence count; evidence is not included. Filter by rule or severity; paginate with limit/page. Open one with tavero_finding. A human may have triaged findings in the Tavero panel: `decision.status` fix means confirmed work (listed first), findings marked accepted are hidden, `decision.note` is a message to you.","inputs":[{"name":"decision","type":"string","required":false,"description":"human decision; fix = a human confirmed it"},{"name":"includeAccepted","type":"boolean","required":false,"description":"also list findings a human marked as intended"},{"name":"limit","type":"integer","required":false,"description":"rows per page (default 20, max 200)"},{"name":"page","type":"integer","required":false,"description":"page number, from 1"},{"name":"rule","type":"string","required":false,"description":null},{"name":"severity","type":"string","required":false,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":207},{"name":"tavero_finding","title":"One finding with evidence","description":"One finding with paged evidence rows: current value, `expected` (the project token or canonical component to use instead, or a note that no close token exists and one should be added), component, file:line, route/viewport and a crop image path. Rows valued \"literal … in source\" are where the value is written (often CSS); the other rows are where it renders (the component JSX). Fix the code using `expected`, then rescan only the affected routes with tavero_scan (routes + rules) and confirm with tavero_diff.","inputs":[{"name":"evidenceLimit","type":"integer","required":false,"description":"rows per page (default 20, max 200)"},{"name":"evidencePage","type":"integer","required":false,"description":"page number, from 1"},{"name":"id","type":"string","required":true,"description":"finding id from tavero_findings, e.g. f_2d0ccc6aa1"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":184},{"name":"tavero_components","title":"List components","description":"React components seen in the latest scan with instance counts, pages and source file:line. Search by name or file with `query`; sort by instances (default) or name; `unresolved` lists components without a source file.","inputs":[{"name":"limit","type":"integer","required":false,"description":"rows per page (default 20, max 200)"},{"name":"page","type":"integer","required":false,"description":"page number, from 1"},{"name":"query","type":"string","required":false,"description":null},{"name":"sort","type":"string","required":false,"description":null},{"name":"unresolved","type":"boolean","required":false,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":108},{"name":"tavero_component","title":"Component details","description":"One component by id or name: source file:line, prop names, instance count, which pages and viewports render it, and crop image paths.","inputs":[{"name":"idOrName","type":"string","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":49},{"name":"tavero_show","title":"Crop image paths","description":"Absolute paths of PNG crops showing how a component actually renders, optionally for one viewport. Open them with your image/file reader to see the component.","inputs":[{"name":"idOrName","type":"string","required":true,"description":null},{"name":"viewport","type":"string","required":false,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":54},{"name":"tavero_tokens","title":"Design tokens","description":"Design tokens found in the app (CSS custom properties and Tailwind theme): name, kind, raw and resolved value, source file:line. Use these names instead of literal colors and sizes.","inputs":[{"name":"kind","type":"string","required":false,"description":null},{"name":"limit","type":"integer","required":false,"description":"rows per page (default 200)"},{"name":"page","type":"integer","required":false,"description":"page number, from 1"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":82},{"name":"tavero_diff","title":"Diff two scans","description":"Findings that are new, resolved or unchanged (with changed stats) between the previous and the latest scan, by stable id. A finding is fixed when it is listed under resolved. After a partial rescan, `note` says how many routes were not rescanned and may still carry the finding.","inputs":[{"name":"from","type":"string","required":false,"description":"older scan folder name; default: the one before `to`"},{"name":"to","type":"string","required":false,"description":"newer scan folder name; default: latest"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":103},{"name":"tavero_scan","title":"Scan the running app","description":"Crawl the app in a real browser at mobile/tablet/desktop widths (plus one dark-theme pass at desktop width when the project styles a dark theme), map every element to its React component and file:line, and recompute findings. A full scan takes minutes; after a code fix pass only the affected `routes` and the finding's `rules` (seconds) — findings on other routes are carried over. Needs the dev server url (it is started with `npm run dev` if nothing answers and kept running for later scans). Then call tavero_diff.","inputs":[{"name":"routes","type":"array","required":false,"description":"only these routes; omit for all routes"},{"name":"rules","type":"array","required":false,"description":"recompute only these rules"},{"name":"url","type":"string","required":true,"description":"dev server url, e.g. http://localhost:5173"},{"name":"viewports","type":"array","required":false,"description":"default: all three"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":183}],"toolsTruncatedAtCapture":false,"diagnostics":{"capturedAt":"2026-11-05T02:13:45.000Z","track":"package","endpoint":null,"declaredUrl":null,"truncated":false,"tls":null,"dnssec":null,"auth":null,"httpsRedirect":null,"transports":[],"provenance":{"outcome":"verified","label":"Verified","reason":"verified","reasonLabel":"Verified","discovery":"attestation_endpoint","discoveryLabel":"Registry attestation endpoint","sourceRepo":null,"attestationSkipped":null,"attestationSkippedLabel":null},"installScripts":[],"installScriptsTotal":null,"vulnerabilities":[],"vulnerabilitiesTotal":null,"dependencies":{"nodes":102,"partial":false,"deprecated":null,"stale":32,"noRepo":null}},"mismatches":[],"changelog":{"trackingSince":"2026-10-24","recent":[{"id":"chg_01a1a456-745a-7134-a7bd-11bd80a34b31","kind":"score.total_changed","summary":"Trust score (83 → 84)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/baccaraaa-tavero/tavero#chg-chg_01a1a456-745a-7134-a7bd-11bd80a34b31"},{"id":"chg_01a19a09-96da-703d-bbfc-9479097c7200","kind":"score.total_changed","summary":"Trust score (82 → 83)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/baccaraaa-tavero/tavero#chg-chg_01a19a09-96da-703d-bbfc-9479097c7200"},{"id":"chg_01a18fbb-e1b1-723e-aef3-fd86ecc2c0b1","kind":"score.total_changed","summary":"Trust score (81 → 82)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/baccaraaa-tavero/tavero#chg-chg_01a18fbb-e1b1-723e-aef3-fd86ecc2c0b1"},{"id":"chg_01a1856f-2914-7e01-a6c2-8ae58c6b000f","kind":"score.total_changed","summary":"Trust score (80 → 81)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-29","url":"https://verifymcp.io/servers/baccaraaa-tavero/tavero#chg-chg_01a1856f-2914-7e01-a6c2-8ae58c6b000f"},{"id":"chg_01a17b22-a577-7525-b5f7-d54ad2d3c4f4","kind":"score.total_changed","summary":"Trust score (79 → 80)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-27","url":"https://verifymcp.io/servers/baccaraaa-tavero/tavero#chg-chg_01a17b22-a577-7525-b5f7-d54ad2d3c4f4"},{"id":"chg_01a17438-ccc2-7268-9886-410f8cf61dbb","kind":"package.version_changed","summary":"Package version (0.5.1 → 0.7.0)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-25","url":"https://verifymcp.io/servers/baccaraaa-tavero/tavero#chg-chg_01a17438-ccc2-7268-9886-410f8cf61dbb"},{"id":"chg_01a17438-ccc2-781d-a665-c0b15d770e6f","kind":"score.total_changed","summary":"Trust score (79 → 49)","materiality":"functional","direction":"regression","scoreDelta":-30,"occurredOn":"2026-10-25","url":"https://verifymcp.io/servers/baccaraaa-tavero/tavero#chg-chg_01a17438-ccc2-781d-a665-c0b15d770e6f"},{"id":"chg_01a172a6-b65a-7d4e-996c-d1d7c17ce379","kind":"check.reverified","summary":"Stability (unverified → 0.03)","materiality":"functional","direction":"improvement","scoreDelta":null,"occurredOn":"2026-10-25","url":"https://verifymcp.io/servers/baccaraaa-tavero/tavero#chg-chg_01a172a6-b65a-7d4e-996c-d1d7c17ce379"},{"id":"chg_01a172a6-b65b-7d49-a898-6f8cb7b090d1","kind":"score.total_changed","summary":"Trust score (49 → 79)","materiality":"functional","direction":"improvement","scoreDelta":30,"occurredOn":"2026-10-25","url":"https://verifymcp.io/servers/baccaraaa-tavero/tavero#chg-chg_01a172a6-b65b-7d49-a898-6f8cb7b090d1"},{"id":"chg_01a17291-23d7-7cb9-91d2-39347b3d7368","kind":"check.unverifiable","summary":"Tool safety (pass → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-10-25","url":"https://verifymcp.io/servers/baccaraaa-tavero/tavero#chg-chg_01a17291-23d7-7cb9-91d2-39347b3d7368"},{"id":"chg_01a17291-23d9-7408-adb1-843f84532131","kind":"check.verdict","summary":"Provenance (fail → pass)","materiality":"security","direction":"improvement","scoreDelta":null,"occurredOn":"2026-10-25","url":"https://verifymcp.io/servers/baccaraaa-tavero/tavero#chg-chg_01a17291-23d9-7408-adb1-843f84532131"},{"id":"chg_01a17291-23d9-7a18-b29d-cb985f93cbcd","kind":"check.reason","summary":"Stability (Stability not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet.)","materiality":"security","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-25","url":"https://verifymcp.io/servers/baccaraaa-tavero/tavero#chg-chg_01a17291-23d9-7a18-b29d-cb985f93cbcd"},{"id":"chg_01a17291-23da-7367-841a-2beaa22ba3ee","kind":"provenance.repo_changed","summary":"The attested source repository moved (baccaraaa/tavero)","materiality":"security","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-25","url":"https://verifymcp.io/servers/baccaraaa-tavero/tavero#chg-chg_01a17291-23da-7367-841a-2beaa22ba3ee"},{"id":"chg_01a17291-23da-7868-9ef9-dfe43ac53ae5","kind":"check.unverifiable","summary":"Capabilities (pass → unverified)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-10-25","url":"https://verifymcp.io/servers/baccaraaa-tavero/tavero#chg-chg_01a17291-23da-7868-9ef9-dfe43ac53ae5"},{"id":"chg_01a17291-23da-7e80-b82a-7a5afef85258","kind":"check.unverifiable","summary":"Tool coverage (100 → unverified)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-10-25","url":"https://verifymcp.io/servers/baccaraaa-tavero/tavero#chg-chg_01a17291-23da-7e80-b82a-7a5afef85258"},{"id":"chg_01a17291-23db-74a1-8f37-b3668a27dd3e","kind":"check.appeared","summary":"First check of Schema quality (unverified)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-25","url":"https://verifymcp.io/servers/baccaraaa-tavero/tavero#chg-chg_01a17291-23db-74a1-8f37-b3668a27dd3e"},{"id":"chg_01a17291-23db-7a2b-b634-a1f61ae6d791","kind":"package.version_changed","summary":"Package version (0.5.1 → 0.6.0)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-25","url":"https://verifymcp.io/servers/baccaraaa-tavero/tavero#chg-chg_01a17291-23db-7a2b-b634-a1f61ae6d791"},{"id":"chg_01a17291-23dc-7094-bcb6-8cfcfaa2ecfa","kind":"score.total_changed","summary":"Trust score (68 → 49)","materiality":"functional","direction":"regression","scoreDelta":-19,"occurredOn":"2026-10-25","url":"https://verifymcp.io/servers/baccaraaa-tavero/tavero#chg-chg_01a17291-23dc-7094-bcb6-8cfcfaa2ecfa"},{"id":"chg_01a170d4-fa82-7aad-bcf5-504bf3893733","kind":"check.reverified","summary":"Malware scan (unverified → pass)","materiality":"security","direction":"improvement","scoreDelta":null,"occurredOn":"2026-10-25","url":"https://verifymcp.io/servers/baccaraaa-tavero/tavero#chg-chg_01a170d4-fa82-7aad-bcf5-504bf3893733"},{"id":"chg_01a170d4-fa83-7457-9ae0-cf461b131bcf","kind":"score.total_changed","summary":"Trust score (53 → 68)","materiality":"functional","direction":"improvement","scoreDelta":15,"occurredOn":"2026-10-25","url":"https://verifymcp.io/servers/baccaraaa-tavero/tavero#chg-chg_01a170d4-fa83-7457-9ae0-cf461b131bcf"}],"truncated":true,"feedUrl":"https://verifymcp.io/servers/baccaraaa-tavero/tavero/changelog.json"},"links":{"html":"https://verifymcp.io/servers/baccaraaa-tavero/tavero","markdown":"https://verifymcp.io/servers/baccaraaa-tavero/tavero.md","changelogJson":"https://verifymcp.io/servers/baccaraaa-tavero/tavero/changelog.json","changelogRss":"https://verifymcp.io/servers/baccaraaa-tavero/tavero.xml","external":[{"label":"npm package","href":"https://www.npmjs.com/package/tavero"},{"label":"Socket report","href":"https://socket.dev/npm/package/tavero"},{"label":"Repository","href":"https://github.com/baccaraaa/tavero"},{"label":"Website","href":"https://taveroui.com/"}]}}