{"$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:25:22.711Z","url":"https://verifymcp.io/servers/gillmacedo-tiedout/tiedout","markdownUrl":"https://verifymcp.io/servers/gillmacedo-tiedout/tiedout.md","server":{"slug":"gillmacedo-tiedout","name":"io.github.GillMacedo/tiedout","registryName":"io.github.GillMacedo/tiedout","description":"Match bank statements to invoices from local CSV files. Your data stays on your machine.","registryStatus":"active","deletedAt":null,"statusMessage":null,"liveness":"live","publisher":{"class":"unknown","claimed":false}},"component":{"slug":"tiedout","type":"npm","identifier":"tiedout","withdrawn":false,"url":"https://verifymcp.io/servers/gillmacedo-tiedout/tiedout","version":"0.1.1","transport":"stdio","scoredAt":"2026-11-05T07:21:27.210Z"},"score":{"total":69,"tier":"medium","status":"scored","weekDelta":null,"history":[{"date":"2026-11-05","total":69},{"date":"2026-11-04","total":69},{"date":"2026-11-03","total":69},{"date":"2026-11-02","total":69},{"date":"2026-11-01","total":69},{"date":"2026-10-31","total":54}]},"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.","No production dependencies, so there is no dependency health to assess."],"codes":[{"code":"supplychain.malware_clean","args":{}},{"code":"cve.none","args":{}},{"code":"installscript.none","args":{}},{"code":"dephealth.no_dependencies","args":{"deps":"0","unhealthy":"0"}}]},{"name":"Provenance & Transparency","score":48,"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 4 days ago).","Publishes a security disclosure policy (SECURITY.md)."],"codes":[{"code":"provenance.repo_verified","args":{}},{"code":"provenance.none","args":{}},{"code":"license.osi","args":{"spdx":"MIT"}},{"code":"maintenance.recent","args":{"age_days":"4"}},{"code":"disclosure.present","args":{}}]},{"name":"Schema Quality & AI Usability","score":68,"verdict":"fail","reasons":["AI-judged instruction clarity (good).","Context-footprint check failed: tool/resource definitions use about 320 tokens (~160/item across 2 items; 2 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":"160","items":"2","tools":"2","tokens":"320","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":91,"verdict":"partial","reasons":["100% of tools have a non-trivial description (not blank, and not just the tool's name).","73% of tool parameters carry a description."],"codes":[{"code":"toolquality.descriptions","args":{"pct":"100"}},{"code":"toolquality.param_docs","args":{"pct":"73"}}]},{"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 2 captured tool definition(s), and no name or description among them implies an irreversible operation.","An AI judge read all 2 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":"2"}},{"code":"toolsafety.manipulation_clean","args":{"units":"2","judged":"2"}}]},{"name":"Capabilities","score":100,"verdict":"pass","reasons":["Implements a current MCP spec version (2026-07-28)."],"codes":[{"code":"protocol.current","args":{"version":"2026-07-28"}}]}],"inconclusive":["Stability not yet verified: not enough scan history yet (needs a 30-day window)."],"malware":[],"components":[{"slug":"tiedout","type":"npm","identifier":"tiedout","withdrawn":false,"score":69,"current":true,"url":"https://verifymcp.io/servers/gillmacedo-tiedout/tiedout","markdownUrl":"https://verifymcp.io/servers/gillmacedo-tiedout/tiedout.md"}],"facts":[{"label":"Registry","value":"npm"},{"label":"Package","value":"tiedout"},{"label":"Version","value":"0.1.1"},{"label":"Transport","value":"stdio"}],"install":{"available":true,"bundleSha256":null},"tools":[{"name":"reconcile_match","title":"Match bank lines to invoices","description":"Matches a bank statement CSV to an invoice CSV using exact arithmetic, and sorts every line into matched, likely, review or unmatched. Use for bank reconciliation, finding who has paid, or finding payments with no invoice. Read-only, and never uses the network. Results include names and amounts from the files, so they reach the model. Report review items to the user instead of deciding them.","inputs":[{"name":"bank_columns","type":"object","required":false,"description":"Column names, when detection fails, such as {\"date\":\"Posted\",\"amount\":\"Value\"}"},{"name":"bank_path","type":"string","required":true,"description":"Path to the bank statement CSV"},{"name":"date_format","type":"string","required":false,"description":"Needed only if the tool reports that dates are ambiguous"},{"name":"invoice_columns","type":"object","required":false,"description":"Column names, when detection fails, such as {\"number\":\"Doc\",\"amount\":\"Gross\"}"},{"name":"invoices_path","type":"string","required":true,"description":"Path to the invoice or bill CSV"},{"name":"limit","type":"integer","required":false,"description":"Most items per group. 0 returns only the summary"},{"name":"mode","type":"string","required":false,"description":"receivable matches money in to customer invoices; payable matches money out to bills"},{"name":"window_days","type":"integer","required":false,"description":"How long after the invoice date a payment can count, for matches without an invoice number"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":248},{"name":"reconcile_inspect_csv","title":"Inspect a CSV's columns","description":"Shows which columns tiedout detects in a bank or invoice CSV, and how many rows it can read, without returning row contents. Use before reconcile_match if the files are unfamiliar or a match failed.","inputs":[{"name":"date_format","type":"string","required":false,"description":null},{"name":"kind","type":"string","required":true,"description":null},{"name":"path","type":"string","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":72}],"toolsTruncatedAtCapture":false,"diagnostics":{"capturedAt":"2026-11-05T07:21:27.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":0,"partial":false,"deprecated":null,"stale":null,"noRepo":null}},"mismatches":[],"changelog":{"trackingSince":"2026-10-31","recent":[{"id":"chg_01a195fd-7478-78f9-a506-07a318ab78c2","kind":"check.reverified","summary":"Malware scan (unverified → pass)","materiality":"security","direction":"improvement","scoreDelta":null,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/gillmacedo-tiedout/tiedout#chg-chg_01a195fd-7478-78f9-a506-07a318ab78c2"},{"id":"chg_01a195fd-7479-7026-8e44-c7c927199811","kind":"score.total_changed","summary":"Trust score (54 → 69)","materiality":"functional","direction":"improvement","scoreDelta":15,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/gillmacedo-tiedout/tiedout#chg-chg_01a195fd-7479-7026-8e44-c7c927199811"},{"id":"chg_01a191f7-445f-7d10-811a-e0844a181a70","kind":"score.first_scored","summary":"First indexed and scored","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/gillmacedo-tiedout/tiedout#chg-chg_01a191f7-445f-7d10-811a-e0844a181a70"}],"truncated":false,"feedUrl":"https://verifymcp.io/servers/gillmacedo-tiedout/tiedout/changelog.json"},"links":{"html":"https://verifymcp.io/servers/gillmacedo-tiedout/tiedout","markdown":"https://verifymcp.io/servers/gillmacedo-tiedout/tiedout.md","changelogJson":"https://verifymcp.io/servers/gillmacedo-tiedout/tiedout/changelog.json","changelogRss":"https://verifymcp.io/servers/gillmacedo-tiedout/tiedout.xml","external":[{"label":"npm package","href":"https://www.npmjs.com/package/tiedout"},{"label":"Socket report","href":"https://socket.dev/npm/package/tiedout"},{"label":"Repository","href":"https://github.com/GillMacedo/tiedout"}]}}