{"$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-06T09:40:30.053Z","url":"https://verifymcp.io/servers/phuicmt-sarup/sarup","markdownUrl":"https://verifymcp.io/servers/phuicmt-sarup/sarup.md","server":{"slug":"phuicmt-sarup","name":"Sarup","registryName":"io.github.PHUICMT/sarup","description":"Thai-first context compression; shrinks long Thai and English text, originals retrievable.","registryStatus":"active","deletedAt":null,"statusMessage":null,"liveness":"live","publisher":{"class":"unknown","claimed":false}},"component":{"slug":"sarup","type":"pypi","identifier":"sarup","withdrawn":false,"url":"https://verifymcp.io/servers/phuicmt-sarup/sarup","version":"0.2.0","transport":"stdio","scoredAt":"2026-11-06T08:32:37.288Z"},"score":{"total":66,"tier":"medium","status":"scored","weekDelta":0,"history":[{"date":"2026-11-06","total":66},{"date":"2026-11-05","total":81},{"date":"2026-11-04","total":66},{"date":"2026-11-03","total":81},{"date":"2026-11-02","total":66},{"date":"2026-11-01","total":66},{"date":"2026-10-31","total":66},{"date":"2026-10-30","total":66},{"date":"2026-10-29","total":81},{"date":"2026-10-28","total":66},{"date":"2026-10-27","total":66}]},"categories":[{"name":"Supply Chain Security","score":50,"verdict":"unverified","reasons":["Malware scan not yet available for this package.","No known CVEs affecting this package version or its production dependencies.","Runs hatchling.build at install time, a recognised build step with no custom scripting around it.","0 of 38 dependencies flagged as unhealthy."],"codes":[{"code":"supplychain.malware_inconclusive","args":{"reason":"vendor_no_verdict"}},{"code":"cve.none","args":{}},{"code":"installscript.allowlisted","args":{"tool":"hatchling.build","hooks":"build_backend"}},{"code":"dephealth.assessed","args":{"deps":"38","unhealthy":"0"}}]},{"name":"Provenance & Transparency","score":97,"verdict":"fail","reasons":["Source repository is publicly reachable at the declared URL.","Cryptographically verified build provenance (signed, bound to PHUICMT/sarup).","Clear OSI-approved license (MIT).","Actively maintained (last published 9 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":"PHUICMT/sarup"}},{"code":"license.osi","args":{"spdx":"MIT"}},{"code":"maintenance.recent","args":{"age_days":"9"}},{"code":"disclosure.absent","args":{}}]},{"name":"Schema Quality & AI Usability","score":75,"verdict":"fail","reasons":["AI-judged instruction clarity (good).","Tool/resource definitions use about 348 tokens (~116/item across 3 items; 3 tools + 0 resources), lean.","Usage-examples check failed: none of the tools include examples."],"codes":[{"code":"schema.ai_quality","args":{"band":"good"}},{"code":"schema.footprint_lean","args":{"avg":"116","items":"3","tools":"3","tokens":"348","resources":"0"}},{"code":"schema.examples_absent","args":{}}]},{"name":"Stability & Change Management","score":0,"verdict":"unverified","reasons":["Stability not yet verified: not enough scan history yet (needs a 30-day window)."],"codes":[{"code":"stability.insufficient_history","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."],"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 3 captured tool definition(s), and no name or description among them implies an irreversible operation.","An AI judge read all 3 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":"3"}},{"code":"toolsafety.manipulation_clean","args":{"units":"3","judged":"3"}}]},{"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 scan not yet available for this package.","Stability not yet verified: not enough scan history yet (needs a 30-day window)."],"malware":[],"components":[{"slug":"sarup","type":"pypi","identifier":"sarup","withdrawn":false,"score":66,"current":true,"url":"https://verifymcp.io/servers/phuicmt-sarup/sarup","markdownUrl":"https://verifymcp.io/servers/phuicmt-sarup/sarup.md"}],"facts":[{"label":"Registry","value":"pypi"},{"label":"Package","value":"sarup"},{"label":"Version","value":"0.2.0"},{"label":"Transport","value":"stdio"}],"install":{"available":true,"bundleSha256":null},"tools":[{"name":"sarup_compress","title":null,"description":"Compress content for context efficiency. Supports Thai prose, English prose, mixed Thai+code, JSON, and logs. Returns compressed text, a retrieval hash, and token-saving metrics. Use sarup_retrieve(hash=...) to recover the original when needed.","inputs":[{"name":"content","type":"string","required":true,"description":"Content to compress"},{"name":"lossless","type":"boolean","required":false,"description":"Only apply lossless transforms (whitespace/JSON compact). Default false."},{"name":"mode","type":"string","required":false,"description":"Prose strategy. 'extractive' (default): offline TF-IDF, verbatim subset, ~1ms. 'semantic': embedding centrality, best ratio (needs Ollama). 'abstractive': local-LLM rewrite (needs Ollama, slow). 'pip…"},{"name":"query","type":"string","required":false,"description":"Optional context query. Sentences relevant to this query are scored higher and more likely to be kept."},{"name":"target_ratio","type":"number","required":false,"description":"Fraction of prose to keep (0.3–0.7). Default 0.5."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":274},{"name":"sarup_retrieve","title":null,"description":"Retrieve the original uncompressed content by hash. The hash is returned by sarup_compress.","inputs":[{"name":"hash","type":"string","required":true,"description":"24-char hash returned by sarup_compress"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":46},{"name":"sarup_stats","title":null,"description":"Return cumulative compression statistics, where the cache lives, and which optional Ollama models are available.","inputs":[],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":28}],"toolsTruncatedAtCapture":false,"diagnostics":{"capturedAt":"2026-11-06T08:32:37.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":[{"hook":"build_backend","tier":"allowlisted"}],"installScriptsTotal":null,"vulnerabilities":[],"vulnerabilitiesTotal":null,"dependencies":{"nodes":38,"partial":false,"deprecated":null,"stale":null,"noRepo":null}},"mismatches":[],"changelog":{"trackingSince":"2026-10-27","recent":[{"id":"chg_01a1affd-05de-7e26-8efb-adbadc7481f8","kind":"check.unverifiable","summary":"Malware scan (pass → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-06","url":"https://verifymcp.io/servers/phuicmt-sarup/sarup#chg-chg_01a1affd-05de-7e26-8efb-adbadc7481f8"},{"id":"chg_01a1affd-05df-7c5c-84b1-e92d09eb8ce8","kind":"score.total_changed","summary":"Trust score (81 → 66)","materiality":"functional","direction":"regression","scoreDelta":-15,"occurredOn":"2026-11-06","url":"https://verifymcp.io/servers/phuicmt-sarup/sarup#chg-chg_01a1affd-05df-7c5c-84b1-e92d09eb8ce8"},{"id":"chg_01a1aad6-9c14-749a-a8ea-f515c86f91d4","kind":"check.reverified","summary":"Malware scan (unverified → pass)","materiality":"security","direction":"improvement","scoreDelta":null,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/phuicmt-sarup/sarup#chg-chg_01a1aad6-9c14-749a-a8ea-f515c86f91d4"},{"id":"chg_01a1aad6-9c15-758a-b91e-d58a3624c44d","kind":"score.total_changed","summary":"Trust score (66 → 81)","materiality":"functional","direction":"improvement","scoreDelta":15,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/phuicmt-sarup/sarup#chg-chg_01a1aad6-9c15-758a-b91e-d58a3624c44d"},{"id":"chg_01a1a5ad-7add-75d5-a81d-0cafa9c59799","kind":"check.unverifiable","summary":"Malware scan (pass → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/phuicmt-sarup/sarup#chg-chg_01a1a5ad-7add-75d5-a81d-0cafa9c59799"},{"id":"chg_01a1a5ad-7ade-766f-b0d0-9b7b831f23a5","kind":"score.total_changed","summary":"Trust score (81 → 66)","materiality":"functional","direction":"regression","scoreDelta":-15,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/phuicmt-sarup/sarup#chg-chg_01a1a5ad-7ade-766f-b0d0-9b7b831f23a5"},{"id":"chg_01a1a018-5b45-75ad-aa9b-8847b4eb30b9","kind":"check.reverified","summary":"Malware scan (unverified → pass)","materiality":"security","direction":"improvement","scoreDelta":null,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/phuicmt-sarup/sarup#chg-chg_01a1a018-5b45-75ad-aa9b-8847b4eb30b9"},{"id":"chg_01a1a018-5b47-707f-a856-f9b892e85df5","kind":"score.total_changed","summary":"Trust score (66 → 81)","materiality":"functional","direction":"improvement","scoreDelta":15,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/phuicmt-sarup/sarup#chg-chg_01a1a018-5b47-707f-a856-f9b892e85df5"},{"id":"chg_01a18bd9-1d6a-7ce2-a77a-98d33be517c7","kind":"check.unverifiable","summary":"Malware scan (pass → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-10-30","url":"https://verifymcp.io/servers/phuicmt-sarup/sarup#chg-chg_01a18bd9-1d6a-7ce2-a77a-98d33be517c7"},{"id":"chg_01a18bd9-1d6b-7dec-ad00-e18750301f04","kind":"score.total_changed","summary":"Trust score (81 → 66)","materiality":"functional","direction":"regression","scoreDelta":-15,"occurredOn":"2026-10-30","url":"https://verifymcp.io/servers/phuicmt-sarup/sarup#chg-chg_01a18bd9-1d6b-7dec-ad00-e18750301f04"},{"id":"chg_01a186d3-af7a-7d6c-ad51-e6ab3f3aa706","kind":"check.reverified","summary":"Malware scan (unverified → pass)","materiality":"security","direction":"improvement","scoreDelta":null,"occurredOn":"2026-10-29","url":"https://verifymcp.io/servers/phuicmt-sarup/sarup#chg-chg_01a186d3-af7a-7d6c-ad51-e6ab3f3aa706"},{"id":"chg_01a186d3-af82-78c7-8cb4-52853c8732ca","kind":"score.total_changed","summary":"Trust score (66 → 81)","materiality":"functional","direction":"improvement","scoreDelta":15,"occurredOn":"2026-10-29","url":"https://verifymcp.io/servers/phuicmt-sarup/sarup#chg-chg_01a186d3-af82-78c7-8cb4-52853c8732ca"},{"id":"chg_01a17d95-23df-7e4f-bb77-27ba7a6b6618","kind":"score.first_scored","summary":"First indexed and scored","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-27","url":"https://verifymcp.io/servers/phuicmt-sarup/sarup#chg-chg_01a17d95-23df-7e4f-bb77-27ba7a6b6618"}],"truncated":false,"feedUrl":"https://verifymcp.io/servers/phuicmt-sarup/sarup/changelog.json"},"links":{"html":"https://verifymcp.io/servers/phuicmt-sarup/sarup","markdown":"https://verifymcp.io/servers/phuicmt-sarup/sarup.md","changelogJson":"https://verifymcp.io/servers/phuicmt-sarup/sarup/changelog.json","changelogRss":"https://verifymcp.io/servers/phuicmt-sarup/sarup.xml","external":[{"label":"PyPI project","href":"https://pypi.org/project/sarup/"},{"label":"Socket report","href":"https://socket.dev/pypi/package/sarup"},{"label":"Repository","href":"https://github.com/PHUICMT/sarup"}]}}