{"$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:38:43.665Z","url":"https://verifymcp.io/servers/aronsoto-verbaly/verbaly-mcp","markdownUrl":"https://verifymcp.io/servers/aronsoto-verbaly/verbaly-mcp.md","server":{"slug":"aronsoto-verbaly","name":"io.github.AronSoto/verbaly","registryName":"io.github.AronSoto/verbaly","description":"i18n for coding agents: extract, check and translate an app's text, with drafts a person approves","registryStatus":"active","deletedAt":null,"statusMessage":null,"liveness":"live","publisher":{"class":"unknown","claimed":false}},"component":{"slug":"verbaly-mcp","type":"npm","identifier":"@verbaly/mcp","withdrawn":false,"url":"https://verifymcp.io/servers/aronsoto-verbaly/verbaly-mcp","version":"0.79.0","transport":"stdio","scoredAt":"2026-11-05T01:36:16.683Z"},"score":{"total":85,"tier":"high trust","status":"scored","weekDelta":null,"history":[{"date":"2026-11-05","total":85},{"date":"2026-11-04","total":84},{"date":"2026-11-03","total":73},{"date":"2026-11-02","total":84},{"date":"2026-11-01","total":83},{"date":"2026-10-31","total":68}]},"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 105 dependencies flagged as unhealthy."],"codes":[{"code":"supplychain.malware_clean","args":{}},{"code":"cve.none","args":{}},{"code":"installscript.none","args":{}},{"code":"dephealth.assessed","args":{"deps":"105","unhealthy":"30"}}]},{"name":"Provenance & Transparency","score":100,"verdict":"pass","reasons":["Source repository is publicly reachable at the declared URL.","Cryptographically verified build provenance (signed, bound to AronSoto/verbaly).","Clear OSI-approved license (MIT).","Actively maintained (last published 1 days ago).","Publishes a security disclosure policy (SECURITY.md)."],"codes":[{"code":"provenance.repo_verified","args":{}},{"code":"provenance.verified","args":{"repo":"AronSoto/verbaly"}},{"code":"license.osi","args":{"spdx":"MIT"}},{"code":"maintenance.recent","args":{"age_days":"1"}},{"code":"disclosure.present","args":{}}]},{"name":"Schema Quality & AI Usability","score":82,"verdict":"fail","reasons":["100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).","AI-judged instruction clarity (excellent).","Context-footprint check failed: tool/resource definitions use about 1579 tokens (~143/item across 11 items; 9 tools + 2 resources), over budget; trim descriptions and params.","Usage-examples check failed: none of the tools include examples."],"codes":[{"code":"schema.descriptions","args":{"pct":"100"}},{"code":"schema.ai_quality","args":{"band":"excellent"}},{"code":"schema.footprint_heavy","args":{"avg":"143","items":"11","tools":"9","tokens":"1579","resources":"2"}},{"code":"schema.examples_absent","args":{}}]},{"name":"Stability & Change Management","score":17,"verdict":"partial","reasons":["Stability observed for 5 of 30 days with no destabilising changes; credit accrues until the full window elapses."],"codes":[{"code":"stability.building_history","args":{"days":"5"}}]},{"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 9 captured tool definition(s), and no name or description among them implies an irreversible operation.","An AI judge read all 10 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":"10","judged":"10"}}]},{"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":"verbaly-mcp","type":"npm","identifier":"@verbaly/mcp","withdrawn":false,"score":85,"current":true,"url":"https://verifymcp.io/servers/aronsoto-verbaly/verbaly-mcp","markdownUrl":"https://verifymcp.io/servers/aronsoto-verbaly/verbaly-mcp.md"}],"facts":[{"label":"Registry","value":"npm"},{"label":"Package","value":"@verbaly/mcp"},{"label":"Version","value":"0.79.0"},{"label":"Transport","value":"stdio"}],"install":{"available":true,"bundleSha256":null},"tools":[{"name":"verbaly_init","title":"Set up Verbaly in a project","description":"Create the config file and the locale catalogs, and detect the bundler or meta-framework so the answer names the package to add and the line to wire (what `verbaly init` does). A file already there is kept, never overwritten, so running it again is safe. Use it when verbaly_doctor finds no config; once the project is set up, verbaly_doctor is the one to run.","inputs":[{"name":"dir","type":"string","required":false,"description":"Directory for the catalogs (default: locales)"},{"name":"locales","type":"array","required":false,"description":"Every locale, source included"},{"name":"root","type":"string","required":false,"description":"Project root holding verbaly.config (defaults to the server working directory)"},{"name":"sourceLocale","type":"string","required":false,"description":"The language you write in (default: en)"}],"outputs":[{"name":"configFile","type":"string","required":true,"description":null},{"name":"created","type":"array","required":true,"description":"Files written, relative to the project root"},{"name":"found","type":"string","required":false,"description":"Catalogs the project already had, which the new config points at"},{"name":"host","type":"string","required":false,"description":"Bundler or meta-framework detected from the dependencies"},{"name":"next","type":"array","required":true,"description":"What a human still has to do, in order"},{"name":"refused","type":"array","required":true,"description":"Locales left out: not a locale tag, and no sure way to fix one"},{"name":"renamed","type":"array","required":true,"description":"Locales written with the hyphen a locale tag takes (pt_BR became pt-BR)"},{"name":"skipped","type":"array","required":true,"description":"Files already there, left untouched"}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":157},{"name":"verbaly_doctor","title":"Diagnose the setup","description":"Diagnose a Verbaly project end to end (what `verbaly doctor` does). It checks the config file, the catalogs and their JSON, the bundler plugin for the detected framework, the generated types, files the parser could not read, a t imported from a package that never exports it, orphan keys, and every failure `verbaly check` would report, and it reports them all at once instead of stopping at the first. Run it first when something does not work. Read-only. For the missing or broken translations themselves, use verbaly_missing.","inputs":[{"name":"root","type":"string","required":false,"description":"Project root holding verbaly.config (defaults to the server working directory)"}],"outputs":[{"name":"entries","type":"array","required":true,"description":null},{"name":"ok","type":"boolean","required":true,"description":"False when an entry is an error, which is when the CLI exits 1"}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":143},{"name":"verbaly_wrap","title":"Wrap hardcoded JSX text","description":"Find hardcoded user-visible text in JSX/TSX files and wrap it in a t tagged template so the compiler can extract it (what `verbaly wrap` does). This is how an existing codebase is onboarded, and verbaly_extract then adds the wrapped texts to the catalogs. It only reports unless write is set, and text already wrapped is skipped, so running it again is safe. Text it cannot wrap safely (a sentence split across markup, an expression rendering JSX) is listed as needing a human. A file that does not bind t is never written, because the rewrite would not compile. It comes back in blocked, with whether it is a client component, so you can add the binding and run again.","inputs":[{"name":"root","type":"string","required":false,"description":"Project root holding verbaly.config (defaults to the server working directory)"},{"name":"write","type":"boolean","required":false,"description":"Apply the rewrites instead of only reporting"}],"outputs":[{"name":"blocked","type":"array","required":true,"description":null},{"name":"changed","type":"array","required":true,"description":"Files the rewrite touched, or would touch"},{"name":"files","type":"number","required":true,"description":"JSX/TSX files scanned"},{"name":"skipped","type":"array","required":true,"description":null},{"name":"wrapped","type":"array","required":true,"description":null},{"name":"write","type":"boolean","required":true,"description":null}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":191},{"name":"verbaly_extract","title":"Extract messages","description":"Scan the source files, add new messages to the locale catalogs and refresh the generated types (what `verbaly extract` does). It writes the catalogs unless dryRun is set, and with the same code a second run changes nothing. prune also drops keys the code no longer references, translations included, and waits while any source file fails to parse. In a project without Verbaly, run verbaly_init first; for text still hardcoded in JSX, verbaly_wrap.","inputs":[{"name":"dryRun","type":"boolean","required":false,"description":"Report what would change, write nothing"},{"name":"prune","type":"boolean","required":false,"description":"Drop keys no longer referenced (deletes their translations)"},{"name":"root","type":"string","required":false,"description":"Project root holding verbaly.config (defaults to the server working directory)"}],"outputs":[{"name":"added","type":"array","required":true,"description":null},{"name":"collisions","type":"array","required":true,"description":"Keys written with more than one text: every place shows the text of the first site, so give each text its own key"},{"name":"dryRun","type":"boolean","required":true,"description":null},{"name":"escaped","type":"array","required":true,"description":"Plural or format blocks inside a tagged template, which render as literal text"},{"name":"inCode","type":"number","required":true,"description":"How many of those messages the code writes as text: 0 when the project keeps its text in the catalog and reads it with t(key)"},{"name":"locales","type":"array","required":true,"description":null},{"name":"lock","type":"object","required":false,"description":"This run created verbaly.lock, moved an older state file (from) into it, or rewrote it whole after a merge conflict (merged): it belongs in git with the catalogs, so tell the user to commit it"},{"name":"messages","type":"number","required":true,"description":"Messages the source catalog holds after this run"},{"name":"positional","type":"array","required":true,"description":"Messages that hand a translator a nameless value like {_0}: put the value in a named variable first"},{"name":"pruned","type":"array","required":true,"description":null},{"name":"renamed","type":"array","required":true,"description":"Tagged templates on t under another name (const tr = useT()): never extracted, so they stay in the source language until the binding is named t"},{"name":"replaced","type":"array","required":true,"description":"Source texts the code wrote over: before is what the catalog said, code is the text that ships. An edit made in the code reads like this too"},{"name":"stateProblem","type":"string","required":false,"description":"The state file could not be read or written: the catalogs were written, drafts and outdated tracking were not"},{"name":"unparsed","type":"array","required":true,"description":"Source files the parser could not read: their messages are not extracted, and prune drops nothing until they parse"}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":156},{"name":"verbaly_status","title":"Translation coverage","description":"Translation coverage of the Verbaly project as numbers per locale: total messages, translated, machine translations awaiting review (drafts), broken, and translations written for an older source text (outdated). It scans the source like verbaly_extract but writes nothing. Read-only. For the entries behind the numbers, use verbaly_missing (what is missing or broken) or verbaly_drafts (each draft with its source text).","inputs":[{"name":"root","type":"string","required":false,"description":"Project root holding verbaly.config (defaults to the server working directory)"}],"outputs":[{"name":"locales","type":"array","required":true,"description":null},{"name":"messages","type":"number","required":true,"description":"Messages the project has, source catalog plus code"},{"name":"source","type":"string","required":true,"description":"Source locale"},{"name":"stateProblem","type":"string","required":false,"description":"The state file could not be read, so drafts and outdated are counted as zero"}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":114},{"name":"verbaly_missing","title":"Missing and broken translations","description":"The gate `verbaly check` runs in CI, as lists: missing translations, unknown keys, keys written with two texts (collisions: every place shows the first text) and translations that cannot render what the source renders. A dropped {param}, a lost rich tag or a flattened plural block is that last kind. Warnings never fail the gate and are listed too: an incomplete plural set for the locale, keys only a translation has (extra), texts the code and the source catalog disagree on (divergent: the text in the code ships) and translations written for an older source text (outdated). With drafts set, it also lists the machine translations awaiting review. Read-only. For counts use verbaly_status, to review drafts with their source text verbaly_drafts, and for setup problems verbaly_doctor.","inputs":[{"name":"drafts","type":"boolean","required":false,"description":"Also list machine translations awaiting human review"},{"name":"root","type":"string","required":false,"description":"Project root holding verbaly.config (defaults to the server working directory)"}],"outputs":[{"name":"broken","type":"array","required":true,"description":null},{"name":"collisions","type":"array","required":true,"description":"One key, several texts: every place shows the first site, so it fails the gate. Give each text its own key"},{"name":"divergent","type":"array","required":true,"description":"The source catalog says one text and the code another: the code's text ships. Never fails the gate"},{"name":"extra","type":"array","required":true,"description":"Keys only a translation has; files are where the code reads one, which the source language then shows as the key itself. Never fails the gate"},{"name":"missing","type":"array","required":true,"description":null},{"name":"ok","type":"boolean","required":true,"description":"Whether `verbaly check` would pass (warnings never fail it)"},{"name":"outdated","type":"array","required":true,"description":"Translations written for an older source text: rewrite them, or a human keeps them with verbaly review --approve. Never fails the gate"},{"name":"stateProblem","type":"string","required":false,"description":"The state file could not be read, so outdated translations are not listed"},{"name":"unknown","type":"array","required":true,"description":null},{"name":"unreviewed","type":"array","required":true,"description":null}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":212},{"name":"verbaly_translate","title":"Machine-translate missing entries","description":"Fill missing translations with the configured provider (what `verbaly translate` does). The default provider is Claude, which needs @anthropic-ai/sdk and ANTHROPIC_API_KEY. Every new translation is saved as a draft awaiting human review (`verbaly review`), which no tool here can approve. A batch the provider never answers is reported in failed and everything else stays written, so a retry only asks for what is left. dryRun lists what would be translated without calling the provider. To see what is missing first, use verbaly_missing; to save translations you wrote yourself, verbaly_write_drafts.","inputs":[{"name":"dryRun","type":"boolean","required":false,"description":"List missing entries per locale, call no provider"},{"name":"locales","type":"array","required":false,"description":"Target locales (default: all)"},{"name":"root","type":"string","required":false,"description":"Project root holding verbaly.config (defaults to the server working directory)"}],"outputs":[{"name":"dryRun","type":"boolean","required":true,"description":null},{"name":"failed","type":"array","required":true,"description":"Batches the provider never answered, safe to retry"},{"name":"invalid","type":"array","required":true,"description":"Rejected: params or tags were not preserved"},{"name":"kept","type":"array","required":true,"description":"Written on disk by someone else while the provider worked, so left as they were"},{"name":"pending","type":"array","required":true,"description":"dryRun only: what would be translated"},{"name":"translated","type":"array","required":true,"description":"Saved as drafts, a human still has to approve them"}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":183},{"name":"verbaly_write_drafts","title":"Save translations an agent wrote","description":"Save translations you wrote yourself, so neither a catalog nor the state file is ever edited by hand. Each one is checked the way verbaly_translate checks a provider (params, rich tags and plural cases must survive), written only for keys the source catalog has, and marked as a draft awaiting human review. Existing translations are kept unless overwrite is set, which is how an outdated one gets rewritten. Approving is not a tool here: a human reads the drafts (verbaly_drafts lists them) and runs `verbaly review --approve`.","inputs":[{"name":"entries","type":"array","required":true,"description":"The translations, by catalog key"},{"name":"locale","type":"string","required":true,"description":"Target locale, one of the project's non-source locales"},{"name":"overwrite","type":"boolean","required":false,"description":"Replace translations that already exist, for example outdated ones"},{"name":"root","type":"string","required":false,"description":"Project root holding verbaly.config (defaults to the server working directory)"}],"outputs":[{"name":"invalid","type":"array","required":true,"description":"Rejected: empty, or the params, tags or plural cases were not preserved"},{"name":"kept","type":"array","required":true,"description":"Already translated, left as they were (overwrite replaces them)"},{"name":"unknown","type":"array","required":true,"description":"Not in the source catalog, so nothing was written"},{"name":"written","type":"array","required":true,"description":"Saved as drafts, a human still has to approve them"}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":187},{"name":"verbaly_drafts","title":"Machine translations awaiting review","description":"Every machine translation still waiting for a human, each with the source text and what the provider wrote, so a person can read both and decide. Read-only. Approving is deliberately not a tool here and never will be: a machine translation is unreviewed by definition, so accepting one is `verbaly review --approve`, run by a human. For how many drafts each locale has, verbaly_status is enough; verbaly_missing lists them next to the gate.","inputs":[{"name":"locales","type":"array","required":false,"description":"Target locales (default: all)"},{"name":"root","type":"string","required":false,"description":"Project root holding verbaly.config (defaults to the server working directory)"}],"outputs":[{"name":"entries","type":"array","required":true,"description":null},{"name":"total","type":"number","required":true,"description":null}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":138}],"toolsTruncatedAtCapture":false,"diagnostics":{"capturedAt":"2026-11-05T01:36:16.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":105,"partial":false,"deprecated":null,"stale":30,"noRepo":null}},"mismatches":[],"changelog":{"trackingSince":"2026-10-31","recent":[{"id":"chg_01a1a959-7d44-740d-92f6-8bf0276699fd","kind":"score.total_changed","summary":"Trust score (84 → 85)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/aronsoto-verbaly/verbaly-mcp#chg-chg_01a1a959-7d44-740d-92f6-8bf0276699fd"},{"id":"chg_01a1a432-94da-761e-90b2-07cbfe07f614","kind":"check.reverified","summary":"Known CVEs (unverified → pass)","materiality":"security","direction":"improvement","scoreDelta":null,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/aronsoto-verbaly/verbaly-mcp#chg-chg_01a1a432-94da-761e-90b2-07cbfe07f614"},{"id":"chg_01a1a432-94db-78b6-b60b-1d3bcf3debee","kind":"check.reverified","summary":"Dependency health (unverified → 0.88)","materiality":"functional","direction":"improvement","scoreDelta":null,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/aronsoto-verbaly/verbaly-mcp#chg-chg_01a1a432-94db-78b6-b60b-1d3bcf3debee"},{"id":"chg_01a1a432-94dc-7d8b-9a2d-bc1de28bb9a4","kind":"score.total_changed","summary":"Trust score (73 → 84)","materiality":"functional","direction":"improvement","scoreDelta":11,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/aronsoto-verbaly/verbaly-mcp#chg-chg_01a1a432-94dc-7d8b-9a2d-bc1de28bb9a4"},{"id":"chg_01a19fff-7118-7758-bb93-85fd7b7e5bb8","kind":"check.unverifiable","summary":"Known CVEs (pass → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/aronsoto-verbaly/verbaly-mcp#chg-chg_01a19fff-7118-7758-bb93-85fd7b7e5bb8"},{"id":"chg_01a19fff-7119-7618-8c90-511d97152d79","kind":"check.measure","summary":"Schema quality (119 → 143)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/aronsoto-verbaly/verbaly-mcp#chg-chg_01a19fff-7119-7618-8c90-511d97152d79"},{"id":"chg_01a19fff-7119-7cfb-8990-54f6260305c0","kind":"check.unverifiable","summary":"Dependency health (0.88 → unverified)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/aronsoto-verbaly/verbaly-mcp#chg-chg_01a19fff-7119-7cfb-8990-54f6260305c0"},{"id":"chg_01a19fff-711a-734b-b709-0f08788bd953","kind":"check.measure","summary":"Schema quality (good → excellent)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/aronsoto-verbaly/verbaly-mcp#chg-chg_01a19fff-711a-734b-b709-0f08788bd953"},{"id":"chg_01a19fff-711b-785b-a28c-8f36948fba55","kind":"package.version_changed","summary":"Package version (0.78.0 → 0.79.0)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/aronsoto-verbaly/verbaly-mcp#chg-chg_01a19fff-711b-785b-a28c-8f36948fba55"},{"id":"chg_01a19fff-711b-7da8-872a-5100c8781f83","kind":"score.total_changed","summary":"Trust score (84 → 73)","materiality":"functional","direction":"regression","scoreDelta":-11,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/aronsoto-verbaly/verbaly-mcp#chg-chg_01a19fff-711b-7da8-872a-5100c8781f83"},{"id":"chg_01a199e5-ff6d-768a-9ce8-1178f3fcee7c","kind":"score.total_changed","summary":"Trust score (83 → 84)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/aronsoto-verbaly/verbaly-mcp#chg-chg_01a199e5-ff6d-768a-9ce8-1178f3fcee7c"},{"id":"chg_01a196e0-f021-7c9d-a1f1-773800c10091","kind":"check.reverified","summary":"Stability (unverified → 0.03)","materiality":"functional","direction":"improvement","scoreDelta":null,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/aronsoto-verbaly/verbaly-mcp#chg-chg_01a196e0-f021-7c9d-a1f1-773800c10091"},{"id":"chg_01a196e0-f022-7f01-9d78-92f90c38d2e2","kind":"score.total_changed","summary":"Trust score (49 → 83)","materiality":"functional","direction":"improvement","scoreDelta":34,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/aronsoto-verbaly/verbaly-mcp#chg-chg_01a196e0-f022-7f01-9d78-92f90c38d2e2"},{"id":"chg_01a196db-8b6c-7206-8d73-7c9c6fbfc5a0","kind":"check.unverifiable","summary":"Tool safety (pass → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/aronsoto-verbaly/verbaly-mcp#chg-chg_01a196db-8b6c-7206-8d73-7c9c6fbfc5a0"},{"id":"chg_01a196db-8b6e-7056-b95c-4c26bdb909f5","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-11-01","url":"https://verifymcp.io/servers/aronsoto-verbaly/verbaly-mcp#chg-chg_01a196db-8b6e-7056-b95c-4c26bdb909f5"},{"id":"chg_01a196db-8b6e-7608-b433-dec2f4e1b5d3","kind":"check.unverifiable","summary":"Capabilities (pass → unverified)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/aronsoto-verbaly/verbaly-mcp#chg-chg_01a196db-8b6e-7608-b433-dec2f4e1b5d3"},{"id":"chg_01a196db-8b6e-7eff-b2fc-afb17bc59cbc","kind":"check.unverifiable","summary":"Tool coverage (100 → unverified)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/aronsoto-verbaly/verbaly-mcp#chg-chg_01a196db-8b6e-7eff-b2fc-afb17bc59cbc"},{"id":"chg_01a196db-8b6f-753d-bb62-cb0de1469731","kind":"check.unverifiable","summary":"Schema quality (100 → unverified)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/aronsoto-verbaly/verbaly-mcp#chg-chg_01a196db-8b6f-753d-bb62-cb0de1469731"},{"id":"chg_01a196db-8b6f-7b79-8764-7d67f7c058ad","kind":"package.version_changed","summary":"Package version (0.77.0 → 0.78.0)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/aronsoto-verbaly/verbaly-mcp#chg-chg_01a196db-8b6f-7b79-8764-7d67f7c058ad"},{"id":"chg_01a196db-8b70-70da-bf3a-bf3ac27d50af","kind":"score.total_changed","summary":"Trust score (83 → 49)","materiality":"functional","direction":"regression","scoreDelta":-34,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/aronsoto-verbaly/verbaly-mcp#chg-chg_01a196db-8b70-70da-bf3a-bf3ac27d50af"}],"truncated":true,"feedUrl":"https://verifymcp.io/servers/aronsoto-verbaly/verbaly-mcp/changelog.json"},"links":{"html":"https://verifymcp.io/servers/aronsoto-verbaly/verbaly-mcp","markdown":"https://verifymcp.io/servers/aronsoto-verbaly/verbaly-mcp.md","changelogJson":"https://verifymcp.io/servers/aronsoto-verbaly/verbaly-mcp/changelog.json","changelogRss":"https://verifymcp.io/servers/aronsoto-verbaly/verbaly-mcp.xml","external":[{"label":"npm package","href":"https://www.npmjs.com/package/@verbaly/mcp"},{"label":"Socket report","href":"https://socket.dev/npm/package/@verbaly/mcp"},{"label":"Repository","href":"https://github.com/AronSoto/verbaly"}]}}