{"$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:28:30.325Z","url":"https://verifymcp.io/servers/pipeworx-io-folketinget-dk/pipeworx-mcp-folketinget-dk","markdownUrl":"https://verifymcp.io/servers/pipeworx-io-folketinget-dk/pipeworx-mcp-folketinget-dk.md","server":{"slug":"pipeworx-io-folketinget-dk","name":"Folketinget Dk","registryName":"io.github.pipeworx-io/folketinget-dk","description":"Danish Parliament (Folketinget) open data MCP — oda.ft.dk, an OData v3 API.","registryStatus":"active","deletedAt":null,"statusMessage":null,"liveness":"live","publisher":{"class":"unknown","claimed":false}},"component":{"slug":"pipeworx-mcp-folketinget-dk","type":"npm","identifier":"@pipeworx/mcp-folketinget-dk","withdrawn":false,"url":"https://verifymcp.io/servers/pipeworx-io-folketinget-dk/pipeworx-mcp-folketinget-dk","version":"0.2.1","transport":"stdio","scoredAt":"2026-11-05T07:31:19.371Z"},"score":{"total":83,"tier":"high trust","status":"scored","weekDelta":11,"history":[{"date":"2026-11-05","total":83},{"date":"2026-11-04","total":82},{"date":"2026-11-03","total":82},{"date":"2026-11-02","total":66},{"date":"2026-11-01","total":79},{"date":"2026-10-31","total":79},{"date":"2026-10-30","total":79},{"date":"2026-10-29","total":72}]},"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":97,"verdict":"fail","reasons":["Source repository is publicly reachable at the declared URL.","Cryptographically verified build provenance (signed, bound to pipeworx-io/mcp-folketinget-dk).","Clear OSI-approved license (MIT).","Actively maintained (last published 3 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":"pipeworx-io/mcp-folketinget-dk"}},{"code":"license.osi","args":{"spdx":"MIT"}},{"code":"maintenance.recent","args":{"age_days":"3"}},{"code":"disclosure.absent","args":{}}]},{"name":"Schema Quality & AI Usability","score":66,"verdict":"fail","reasons":["AI-judged instruction clarity (excellent).","Context-footprint check failed: tool/resource definitions use about 895 tokens (~223/item across 4 items; 4 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":"excellent"}},{"code":"schema.footprint_heavy","args":{"avg":"223","items":"4","tools":"4","tokens":"895","resources":"0"}},{"code":"schema.examples_absent","args":{}}]},{"name":"Stability & Change Management","score":23,"verdict":"partial","reasons":["Stability observed for 7 of 30 days with no destabilising changes; credit accrues until the full window elapses."],"codes":[{"code":"stability.building_history","args":{"days":"7"}}]},{"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 4 captured tool definition(s), and no name or description among them implies an irreversible operation.","An AI judge read all 5 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":"4"}},{"code":"toolsafety.manipulation_clean","args":{"units":"5","judged":"5"}}]},{"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":"folketinget-dk-mcp","type":"remote","identifier":"https://gateway.pipeworx.io/folketinget-dk/mcp","withdrawn":false,"score":77,"current":false,"url":"https://verifymcp.io/servers/pipeworx-io-folketinget-dk/folketinget-dk-mcp","markdownUrl":"https://verifymcp.io/servers/pipeworx-io-folketinget-dk/folketinget-dk-mcp.md"},{"slug":"pipeworx-mcp-folketinget-dk","type":"npm","identifier":"@pipeworx/mcp-folketinget-dk","withdrawn":false,"score":83,"current":true,"url":"https://verifymcp.io/servers/pipeworx-io-folketinget-dk/pipeworx-mcp-folketinget-dk","markdownUrl":"https://verifymcp.io/servers/pipeworx-io-folketinget-dk/pipeworx-mcp-folketinget-dk.md"}],"facts":[{"label":"Registry","value":"npm"},{"label":"Package","value":"@pipeworx/mcp-folketinget-dk"},{"label":"Version","value":"0.2.1"},{"label":"Transport","value":"stdio"}],"install":{"available":true,"bundleSha256":null},"tools":[{"name":"query_entity","title":null,"description":"Query a Folketinget (Danish Parliament) OData v3 entity collection. Returns matching rows under the `value` array. Fields and values are in Danish (e.g. titel=title, navn=name, opdateringsdato=last-updated). Supports OData $filter/$orderby/$expand/$select with $top/$skip paging. Example filters: \"year(opdateringsdato) eq 2024\", \"substringof('klima',titel)\", \"typeid eq 3\".","inputs":[{"name":"entity","type":"string","required":true,"description":"Danish entity name: Sag (cases/bills), Aktør (politicians/committees/parties), Afstemning (votes), Stemme (individual votes), Møde (meetings), Dokument, Sagstrin."},{"name":"expand","type":"string","required":false,"description":"OData $expand — related entities to inline, e.g. \"Stemme\" or \"Sagstrin\"."},{"name":"filter","type":"string","required":false,"description":"OData $filter, e.g. \"year(opdateringsdato) eq 2024\" or \"substringof('klima',titel)\"."},{"name":"orderby","type":"string","required":false,"description":"OData $orderby, e.g. \"opdateringsdato desc\"."},{"name":"select","type":"string","required":false,"description":"OData $select — comma-separated fields, e.g. \"id,titel,opdateringsdato\"."},{"name":"skip","type":"number","required":false,"description":"OData $skip — rows to skip for paging."},{"name":"top","type":"number","required":false,"description":"OData $top — max rows to return (default 20)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":316},{"name":"get_entity_by_id","title":null,"description":"Fetch a single Folketinget entity record by its numeric id, e.g. Sag(1). Returns the record object directly (not wrapped in `value`). Use $expand to inline related entities.","inputs":[{"name":"entity","type":"string","required":true,"description":"Danish entity name: Sag (cases/bills), Aktør (politicians/committees/parties), Afstemning (votes), Stemme (individual votes), Møde (meetings), Dokument, Sagstrin."},{"name":"expand","type":"string","required":false,"description":"OData $expand — related entities to inline, e.g. \"Sagstrin\" or \"Stemme\"."},{"name":"id","type":"number","required":true,"description":"Numeric id of the record."},{"name":"select","type":"string","required":false,"description":"OData $select — comma-separated fields."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":159},{"name":"search_cases","title":null,"description":"Convenience search over Sag (cases/bills): finds cases whose Danish title (titel) contains a substring. Sorted by most recently updated. Use this to look up legislation/matters by keyword; for full control use query_entity.","inputs":[{"name":"query","type":"string","required":true,"description":"Substring to match in the Danish case title (titel), e.g. \"klima\", \"skat\", \"sundhed\"."},{"name":"skip","type":"number","required":false,"description":"Rows to skip for paging."},{"name":"top","type":"number","required":false,"description":"Max rows to return (default 20)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":114},{"name":"document_text","title":null,"description":"Return the full TEXT of a Folketinget (Danish Parliament) document by its numeric Dokument id -- e.g. a minister's final answer to a committee question (udvalgsspørgsmål), a bill text, a consultation reply. Resolves the Dokument record, fetches its published file and extracts the text (PDF or Word; the declared file format is not trusted, the bytes are sniffed). Returns title, date, the question wording (spørgsmålsordlyd), who answered/asked, the extracted text, and a `reason` when no text could be read (file missing, scanned image, unsupported type) so an empty text is never ambiguous. Long texts are paged with offset/max_chars. Source: Folketinget, parliamentary document register.","inputs":[{"name":"document_id","type":"number","required":true,"description":"Numeric Dokument id, e.g. 1237262 (the id used by get_entity_by_id with entity \"Dokument\")."},{"name":"max_chars","type":"number","required":false,"description":"Max characters of text to return (default 100000, max 400000)."},{"name":"offset","type":"number","required":false,"description":"Character offset into the extracted text, for paging a long document (default 0)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":247}],"toolsTruncatedAtCapture":false,"diagnostics":{"capturedAt":"2026-11-05T07:31:19.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":0,"partial":false,"deprecated":null,"stale":null,"noRepo":null}},"mismatches":[],"changelog":{"trackingSince":"2026-10-29","recent":[{"id":"chg_01a1aa9e-8add-70f6-8a75-2dbddc4e8016","kind":"score.total_changed","summary":"Trust score (82 → 83)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/pipeworx-io-folketinget-dk/pipeworx-mcp-folketinget-dk#chg-chg_01a1aa9e-8add-70f6-8a75-2dbddc4e8016"},{"id":"chg_01a1a053-c5ed-7818-8f31-3a94c35bee12","kind":"score.total_changed","summary":"Trust score (66 → 82)","materiality":"functional","direction":"improvement","scoreDelta":16,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/pipeworx-io-folketinget-dk/pipeworx-mcp-folketinget-dk#chg-chg_01a1a053-c5ed-7818-8f31-3a94c35bee12"},{"id":"chg_01a1a053-c5eb-7e4e-8a8e-5c800921aa8a","kind":"check.reverified","summary":"Malware scan (unverified → pass)","materiality":"security","direction":"improvement","scoreDelta":null,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/pipeworx-io-folketinget-dk/pipeworx-mcp-folketinget-dk#chg-chg_01a1a053-c5eb-7e4e-8a8e-5c800921aa8a"},{"id":"chg_01a19a26-cfe4-71bc-a2ec-58e57dfc2ecb","kind":"check.reverified","summary":"Stability (unverified → 0.13)","materiality":"functional","direction":"improvement","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/pipeworx-io-folketinget-dk/pipeworx-mcp-folketinget-dk#chg-chg_01a19a26-cfe4-71bc-a2ec-58e57dfc2ecb"},{"id":"chg_01a19a26-cfe4-7a26-b61e-d9af98c99957","kind":"score.total_changed","summary":"Trust score (79 → 66)","materiality":"functional","direction":"regression","scoreDelta":-13,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/pipeworx-io-folketinget-dk/pipeworx-mcp-folketinget-dk#chg-chg_01a19a26-cfe4-7a26-b61e-d9af98c99957"},{"id":"chg_01a19a26-cfe2-792b-b1c0-47035782f595","kind":"check.unverifiable","summary":"Malware scan (pass → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/pipeworx-io-folketinget-dk/pipeworx-mcp-folketinget-dk#chg-chg_01a19a26-cfe2-792b-b1c0-47035782f595"},{"id":"chg_01a19a26-cfe3-7cd7-a4a8-998f142d8e97","kind":"check.reverified","summary":"Security disclosure (unverified → fail)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/pipeworx-io-folketinget-dk/pipeworx-mcp-folketinget-dk#chg-chg_01a19a26-cfe3-7cd7-a4a8-998f142d8e97"},{"id":"chg_01a19a26-cfe4-75bd-9ccf-3c15a3c888b1","kind":"package.version_changed","summary":"Package version (0.2.0 → 0.2.1)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/pipeworx-io-folketinget-dk/pipeworx-mcp-folketinget-dk#chg-chg_01a19a26-cfe4-75bd-9ccf-3c15a3c888b1"},{"id":"chg_01a18c04-4f73-7315-b81b-91a33ca1e9f5","kind":"score.total_changed","summary":"Trust score (72 → 79)","materiality":"functional","direction":"improvement","scoreDelta":7,"occurredOn":"2026-10-30","url":"https://verifymcp.io/servers/pipeworx-io-folketinget-dk/pipeworx-mcp-folketinget-dk#chg-chg_01a18c04-4f73-7315-b81b-91a33ca1e9f5"},{"id":"chg_01a18c04-4f71-747b-a0a5-0a7170269dd9","kind":"check.reverified","summary":"Known CVEs (unverified → pass)","materiality":"security","direction":"improvement","scoreDelta":null,"occurredOn":"2026-10-30","url":"https://verifymcp.io/servers/pipeworx-io-folketinget-dk/pipeworx-mcp-folketinget-dk#chg-chg_01a18c04-4f71-747b-a0a5-0a7170269dd9"},{"id":"chg_01a18675-79bd-7f37-91c5-0e6ac9da24f5","kind":"score.first_scored","summary":"First indexed and scored","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-29","url":"https://verifymcp.io/servers/pipeworx-io-folketinget-dk/pipeworx-mcp-folketinget-dk#chg-chg_01a18675-79bd-7f37-91c5-0e6ac9da24f5"}],"truncated":false,"feedUrl":"https://verifymcp.io/servers/pipeworx-io-folketinget-dk/pipeworx-mcp-folketinget-dk/changelog.json"},"links":{"html":"https://verifymcp.io/servers/pipeworx-io-folketinget-dk/pipeworx-mcp-folketinget-dk","markdown":"https://verifymcp.io/servers/pipeworx-io-folketinget-dk/pipeworx-mcp-folketinget-dk.md","changelogJson":"https://verifymcp.io/servers/pipeworx-io-folketinget-dk/pipeworx-mcp-folketinget-dk/changelog.json","changelogRss":"https://verifymcp.io/servers/pipeworx-io-folketinget-dk/pipeworx-mcp-folketinget-dk.xml","external":[{"label":"npm package","href":"https://www.npmjs.com/package/@pipeworx/mcp-folketinget-dk"},{"label":"Socket report","href":"https://socket.dev/npm/package/@pipeworx/mcp-folketinget-dk"},{"label":"Repository","href":"https://github.com/pipeworx-io/mcp-folketinget-dk"},{"label":"Website","href":"https://pipeworx.io/packs/folketinget-dk"}]}}