{"$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-05T20:29:18.421Z","url":"https://verifymcp.io/servers/pipeworx-io-irail/pipeworx-mcp-irail","markdownUrl":"https://verifymcp.io/servers/pipeworx-io-irail/pipeworx-mcp-irail.md","server":{"slug":"pipeworx-io-irail","name":"Irail","registryName":"io.github.pipeworx-io/irail","description":"iRail MCP — Belgian rail (SNCB/NMBS) real-time via the community iRail API (https://api.irail.be…","registryStatus":"active","deletedAt":null,"statusMessage":null,"liveness":"live","publisher":{"class":"unknown","claimed":false}},"component":{"slug":"pipeworx-mcp-irail","type":"npm","identifier":"@pipeworx/mcp-irail","withdrawn":false,"url":"https://verifymcp.io/servers/pipeworx-io-irail/pipeworx-mcp-irail","version":"0.2.1","transport":"stdio","scoredAt":"2026-11-05T06:45:01.153Z"},"score":{"total":83,"tier":"high trust","status":"scored","weekDelta":4,"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":79}]},"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-irail).","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-irail"}},{"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 (good).","Context-footprint check failed: tool/resource definitions use about 733 tokens (~183/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":"good"}},{"code":"schema.footprint_heavy","args":{"avg":"183","items":"4","tools":"4","tokens":"733","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":"irail-mcp","type":"remote","identifier":"https://gateway.pipeworx.io/irail/mcp","withdrawn":false,"score":70,"current":false,"url":"https://verifymcp.io/servers/pipeworx-io-irail/irail-mcp","markdownUrl":"https://verifymcp.io/servers/pipeworx-io-irail/irail-mcp.md"},{"slug":"pipeworx-mcp-irail","type":"npm","identifier":"@pipeworx/mcp-irail","withdrawn":false,"score":83,"current":true,"url":"https://verifymcp.io/servers/pipeworx-io-irail/pipeworx-mcp-irail","markdownUrl":"https://verifymcp.io/servers/pipeworx-io-irail/pipeworx-mcp-irail.md"}],"facts":[{"label":"Registry","value":"npm"},{"label":"Package","value":"@pipeworx/mcp-irail"},{"label":"Version","value":"0.2.1"},{"label":"Transport","value":"stdio"}],"install":{"available":true,"bundleSha256":null},"tools":[{"name":"irail_liveboard","title":null,"description":"Live departures board at a Belgian train station — Belgian train times SNCB NMBS. Brussels Antwerp Ghent departures with train number, destination, scheduled time, delay in minutes, platform, and canceled flag. Set type to \"arrival\" for the arrivals board. Station names accept English exonyms and fuzzy input (\"Brussels-South\", \"Antwerp-Central\", \"Liège-Guillemins\"). Example: irail_liveboard({ station: \"Brussels-South\" })","inputs":[{"name":"limit","type":"number","required":false,"description":"Max entries to return, 1-50 (default 15)"},{"name":"station","type":"string","required":true,"description":"Belgian station name, e.g. \"Brussels-South\", \"Antwerp-Central\", \"Ghent-Sint-Pieters\", \"Leuven\", \"Bruges\""},{"name":"type","type":"string","required":false,"description":"Board type: \"departure\" (default) or \"arrival\""}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":188},{"name":"irail_journey","title":null,"description":"Plan a train journey between two Belgian stations — SNCB NMBS route planner with legs, transfers, live delays, and platforms per leg. Answers \"next train from Brussels to Antwerp\", \"how do I get from Ghent to Liège by rail\". Optional depart_at or arrive_by as ISO datetime (\"2026-07-20T09:00\") or time (\"09:00\"), interpreted in Belgian local time. Example: irail_journey({ from: \"Brussels-South\", to: \"Antwerp-Central\" })","inputs":[{"name":"arrive_by","type":"string","required":false,"description":"Arrive by this time instead — same formats as depart_at. Overrides depart_at"},{"name":"depart_at","type":"string","required":false,"description":"Depart at/after this time — \"YYYY-MM-DDTHH:MM\" or \"HH:MM\" (today), Belgian local time. Default: now"},{"name":"from","type":"string","required":true,"description":"Origin station, e.g. \"Brussels-South\""},{"name":"limit","type":"number","required":false,"description":"Max connections to return, 1-6 (default 4)"},{"name":"to","type":"string","required":true,"description":"Destination station, e.g. \"Antwerp-Central\""}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":239},{"name":"irail_train","title":null,"description":"Track one Belgian train by its number — is my Belgian train delayed. All stops with scheduled vs actual times, per-stop delay in minutes, platforms, current delay, and live position. Accepts \"IC 1832\", \"IC1832\", or \"BE.NMBS.IC1832\". Train numbers come from irail_liveboard or irail_journey. Example: irail_train({ id: \"IC1832\" })","inputs":[{"name":"date","type":"string","required":false,"description":"Optional travel date \"YYYY-MM-DD\" (default today, Belgian time)"},{"name":"id","type":"string","required":true,"description":"Train id, e.g. \"IC1832\", \"IC 538\", \"S52558\", \"EUR9381\", or \"BE.NMBS.IC1832\""}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":160},{"name":"irail_disturbances","title":null,"description":"Current disturbances, incidents, and planned works on the Belgian rail network (SNCB NMBS Infrabel) — strikes, track works, line closures affecting Belgian train service. Returns title, summary, type (planned or disturbance), link, and last-updated time. Example: irail_disturbances({})","inputs":[{"name":"limit","type":"number","required":false,"description":"Max disturbances to return, 1-50 (default 15)"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":94}],"toolsTruncatedAtCapture":false,"diagnostics":{"capturedAt":"2026-11-05T06:45:01.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_01a1aa74-269a-78f0-84ba-2166ed993730","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-irail/pipeworx-mcp-irail#chg-chg_01a1aa74-269a-78f0-84ba-2166ed993730"},{"id":"chg_01a1a025-9be8-7999-aa2a-49e43a56f3a3","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-irail/pipeworx-mcp-irail#chg-chg_01a1a025-9be8-7999-aa2a-49e43a56f3a3"},{"id":"chg_01a1a025-9bf3-77ce-af20-18cf3de385eb","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-irail/pipeworx-mcp-irail#chg-chg_01a1a025-9bf3-77ce-af20-18cf3de385eb"},{"id":"chg_01a19a9a-d780-78e9-96d9-ad5f5f65551f","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-irail/pipeworx-mcp-irail#chg-chg_01a19a9a-d780-78e9-96d9-ad5f5f65551f"},{"id":"chg_01a19a9a-d77f-75ea-9200-2b2df6f641c6","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-irail/pipeworx-mcp-irail#chg-chg_01a19a9a-d77f-75ea-9200-2b2df6f641c6"},{"id":"chg_01a19a9a-d77e-7133-93fa-331bf93e0f19","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-irail/pipeworx-mcp-irail#chg-chg_01a19a9a-d77e-7133-93fa-331bf93e0f19"},{"id":"chg_01a19a9a-d780-72ae-a214-a79b8aa2b142","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-irail/pipeworx-mcp-irail#chg-chg_01a19a9a-d780-72ae-a214-a79b8aa2b142"},{"id":"chg_01a18b8a-6d3b-7b76-8147-effff98684f0","kind":"check.reverified","summary":"Security disclosure (unverified → fail)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-10-30","url":"https://verifymcp.io/servers/pipeworx-io-irail/pipeworx-mcp-irail#chg-chg_01a18b8a-6d3b-7b76-8147-effff98684f0"},{"id":"chg_01a186aa-641f-7072-bbf6-8c1ad6ec62a2","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-irail/pipeworx-mcp-irail#chg-chg_01a186aa-641f-7072-bbf6-8c1ad6ec62a2"}],"truncated":false,"feedUrl":"https://verifymcp.io/servers/pipeworx-io-irail/pipeworx-mcp-irail/changelog.json"},"links":{"html":"https://verifymcp.io/servers/pipeworx-io-irail/pipeworx-mcp-irail","markdown":"https://verifymcp.io/servers/pipeworx-io-irail/pipeworx-mcp-irail.md","changelogJson":"https://verifymcp.io/servers/pipeworx-io-irail/pipeworx-mcp-irail/changelog.json","changelogRss":"https://verifymcp.io/servers/pipeworx-io-irail/pipeworx-mcp-irail.xml","external":[{"label":"npm package","href":"https://www.npmjs.com/package/@pipeworx/mcp-irail"},{"label":"Socket report","href":"https://socket.dev/npm/package/@pipeworx/mcp-irail"},{"label":"Repository","href":"https://github.com/pipeworx-io/mcp-irail"},{"label":"Website","href":"https://pipeworx.io/packs/irail"}]}}