{"$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-05T19:28:51.977Z","url":"https://verifymcp.io/servers/pipeworx-io-bts-ontime/pipeworx-mcp-bts-ontime","markdownUrl":"https://verifymcp.io/servers/pipeworx-io-bts-ontime/pipeworx-mcp-bts-ontime.md","server":{"slug":"pipeworx-io-bts-ontime","name":"Bts Ontime","registryName":"io.github.pipeworx-io/bts-ontime","description":"bts-ontime -- US airline on-time performance and delay causes (fleet #2953).","registryStatus":"active","deletedAt":null,"statusMessage":null,"liveness":"live","publisher":{"class":"unknown","claimed":false}},"component":{"slug":"pipeworx-mcp-bts-ontime","type":"npm","identifier":"@pipeworx/mcp-bts-ontime","withdrawn":false,"url":"https://verifymcp.io/servers/pipeworx-io-bts-ontime/pipeworx-mcp-bts-ontime","version":"0.2.1","transport":"stdio","scoredAt":"2026-11-05T08:26:16.311Z"},"score":{"total":82,"tier":"high trust","status":"scored","weekDelta":null,"history":[{"date":"2026-11-05","total":82},{"date":"2026-11-04","total":81},{"date":"2026-11-03","total":81},{"date":"2026-11-02","total":81},{"date":"2026-11-01","total":80},{"date":"2026-10-31","total":80},{"date":"2026-10-30","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-bts-ontime).","Clear OSI-approved license (MIT).","Actively maintained (last published 5 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-bts-ontime"}},{"code":"license.osi","args":{"spdx":"MIT"}},{"code":"maintenance.recent","args":{"age_days":"5"}},{"code":"disclosure.absent","args":{}}]},{"name":"Schema Quality & AI Usability","score":65,"verdict":"fail","reasons":["AI-judged instruction clarity (excellent).","Context-footprint check failed: tool/resource definitions use about 1134 tokens (~226/item across 5 items; 5 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":"226","items":"5","tools":"5","tokens":"1134","resources":"0"}},{"code":"schema.examples_absent","args":{}}]},{"name":"Stability & Change Management","score":20,"verdict":"partial","reasons":["Stability observed for 6 of 30 days with no destabilising changes; credit accrues until the full window elapses."],"codes":[{"code":"stability.building_history","args":{"days":"6"}}]},{"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 5 captured tool definition(s), and no name or description among them implies an irreversible operation.","An AI judge read all 6 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":"5"}},{"code":"toolsafety.manipulation_clean","args":{"units":"6","judged":"6"}}]},{"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":"bts-ontime-mcp","type":"remote","identifier":"https://gateway.pipeworx.io/bts-ontime/mcp","withdrawn":false,"score":77,"current":false,"url":"https://verifymcp.io/servers/pipeworx-io-bts-ontime/bts-ontime-mcp","markdownUrl":"https://verifymcp.io/servers/pipeworx-io-bts-ontime/bts-ontime-mcp.md"},{"slug":"pipeworx-mcp-bts-ontime","type":"npm","identifier":"@pipeworx/mcp-bts-ontime","withdrawn":false,"score":82,"current":true,"url":"https://verifymcp.io/servers/pipeworx-io-bts-ontime/pipeworx-mcp-bts-ontime","markdownUrl":"https://verifymcp.io/servers/pipeworx-io-bts-ontime/pipeworx-mcp-bts-ontime.md"}],"facts":[{"label":"Registry","value":"npm"},{"label":"Package","value":"@pipeworx/mcp-bts-ontime"},{"label":"Version","value":"0.2.1"},{"label":"Transport","value":"stdio"}],"install":{"available":true,"bundleSha256":null},"tools":[{"name":"route_ontime","title":null,"description":"Monthly on-time performance for one US domestic flight route (origin airport -> destination airport), from BTS TranStats Reporting Carrier On-Time Performance. Returns, per month (and per carrier if more than one serves the route): flights, completed flights, on-time arrivals and on-time %, average arrival delay in minutes, cancellations, diversions, and delay minutes broken down by cause (carrier, weather, NAS/air-traffic-control, security, late aircraft). Pass carrier (2-letter code like \"DL\", or a common name like \"Delta\") to scope to one airline; omit it to see every carrier that flew the route. months caps how many of the most recently loaded months to return (default 12). Covers the most recent months loaded (see data_as_of and the earliest/latest fields), not full history. Unknown origin/destination airport codes are refused with a clear error, never an empty success.","inputs":[{"name":"carrier","type":"string","required":false,"description":"Optional: 2-letter carrier code (\"DL\") or common name (\"Delta\") to scope to one airline."},{"name":"dest","type":"string","required":true,"description":"Destination airport code, e.g. \"LAX\"."},{"name":"months","type":"number","required":false,"description":"How many of the most recently loaded months to return, most recent first. Default 12."},{"name":"origin","type":"string","required":true,"description":"Origin airport code, e.g. \"JFK\"."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":278},{"name":"carrier_ontime","title":null,"description":"Monthly on-time performance for one airline, aggregated across all its routes (or just the routes touching one airport), from BTS TranStats Reporting Carrier On-Time Performance. Pass carrier as a 2-letter code (\"WN\") or common name (\"Southwest\"). Pass airport to scope to flights where that airport is the origin or destination. Returns the same per-month shape as route_ontime (flights, on-time %, average arrival delay, cancellations, diversions, delay minutes by cause). months caps how many of the most recently loaded months to return (default 12). Unknown carrier codes are refused with a clear error, never an empty success.","inputs":[{"name":"airport","type":"string","required":false,"description":"Optional: scope to flights where this airport is the origin or destination."},{"name":"carrier","type":"string","required":true,"description":"2-letter carrier code (\"WN\") or common name (\"Southwest\")."},{"name":"months","type":"number","required":false,"description":"How many of the most recently loaded months to return, most recent first. Default 12."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":205},{"name":"bts_airport_delays","title":null,"description":"Delay-cause breakdown at one US airport (as the ARRIVAL airport), by carrier, from BTS TranStats on-time data: arriving flights, how many arrived 15+ minutes late, cancellations, diversions, and delay minutes attributed to carrier, weather, NAS (air-traffic-control/system), security, and late-aircraft causes. Pass year and/or month to scope to a specific period; omit both to get every loaded month, most recent first. Rows beyond `limit` are reported via truncated/total_matching rather than silently dropped -- narrow with year/month or page with limit/offset to see the rest. Unknown airport codes are refused with a clear error, never an empty success.","inputs":[{"name":"airport","type":"string","required":true,"description":"Airport code, e.g. \"ORD\"."},{"name":"limit","type":"number","required":false,"description":"Max rows to return, 1-200. Default 50. A truncated response carries truncated:true and total_matching."},{"name":"month","type":"number","required":false,"description":"Optional: scope to one month (1-12). Requires year to be meaningful alongside it, but works alone too (matches that month in any loaded year)."},{"name":"offset","type":"number","required":false,"description":"Pagination offset. Default 0."},{"name":"year","type":"number","required":false,"description":"Optional: scope to one calendar year."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":261},{"name":"delay_causes","title":null,"description":"Delay-cause rows for a given year, optionally scoped to one carrier and/or one (arrival) airport, from BTS TranStats on-time data. Same fields as bts_airport_delays (arriving flights, 15+ minute-late arrivals, cancellations, diversions, delay minutes by cause) but organized by year first rather than by airport first -- use this to scan a whole year across carriers/airports, or to compare one carrier's delay profile across the airports it serves. Rows beyond `limit` are reported via truncated/total_matching rather than silently dropped -- narrow with carrier/airport or page with limit/offset to see the rest. Unknown carrier or airport codes are refused with a clear error, never an empty success.","inputs":[{"name":"airport","type":"string","required":false,"description":"Optional: arrival-airport code, e.g. \"DFW\"."},{"name":"carrier","type":"string","required":false,"description":"Optional: 2-letter carrier code (\"AA\") or common name (\"American\")."},{"name":"limit","type":"number","required":false,"description":"Max rows to return, 1-200. Default 50. A truncated response carries truncated:true and total_matching."},{"name":"offset","type":"number","required":false,"description":"Pagination offset. Default 0."},{"name":"year","type":"number","required":true,"description":"Calendar year, e.g. 2026."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":260},{"name":"list_coverage","title":null,"description":"What this pack actually has loaded right now: the earliest and latest BTS month covered, how many months, and when it was last loaded. Call this before route_ontime/carrier_ontime/bts_airport_delays/delay_causes if you are not sure a given month or year is covered.","inputs":[],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":72}],"toolsTruncatedAtCapture":false,"diagnostics":{"capturedAt":"2026-11-05T08:26: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":0,"partial":false,"deprecated":null,"stale":null,"noRepo":null}},"mismatches":[],"changelog":{"trackingSince":"2026-10-30","recent":[{"id":"chg_01a1aad0-d985-7851-af87-a0f81cb9a01c","kind":"score.total_changed","summary":"Trust score (81 → 82)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/pipeworx-io-bts-ontime/pipeworx-mcp-bts-ontime#chg-chg_01a1aad0-d985-7851-af87-a0f81cb9a01c"},{"id":"chg_01a19b58-87b6-7017-aba2-d746d7413fc9","kind":"score.total_changed","summary":"Trust score (80 → 81)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/pipeworx-io-bts-ontime/pipeworx-mcp-bts-ontime#chg-chg_01a19b58-87b6-7017-aba2-d746d7413fc9"},{"id":"chg_01a1962c-42ff-7295-b6e0-f0c3f5ed7595","kind":"check.reverified","summary":"Security disclosure (unverified → fail)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/pipeworx-io-bts-ontime/pipeworx-mcp-bts-ontime#chg-chg_01a1962c-42ff-7295-b6e0-f0c3f5ed7595"},{"id":"chg_01a1900f-9ee8-7609-b7d0-fe975caff185","kind":"check.reverified","summary":"Stability (unverified → 0.03)","materiality":"functional","direction":"improvement","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/pipeworx-io-bts-ontime/pipeworx-mcp-bts-ontime#chg-chg_01a1900f-9ee8-7609-b7d0-fe975caff185"},{"id":"chg_01a1900f-9ef6-70d6-9c63-e54c298f4218","kind":"score.total_changed","summary":"Trust score (79 → 80)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/pipeworx-io-bts-ontime/pipeworx-mcp-bts-ontime#chg-chg_01a1900f-9ef6-70d6-9c63-e54c298f4218"},{"id":"chg_01a1900f-9ef0-7925-9fd2-1600354605f1","kind":"package.version_changed","summary":"Package version (0.2.0 → 0.2.1)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/pipeworx-io-bts-ontime/pipeworx-mcp-bts-ontime#chg-chg_01a1900f-9ef0-7925-9fd2-1600354605f1"},{"id":"chg_01a18c3a-2214-77c8-a498-e18c680fe018","kind":"score.first_scored","summary":"First indexed and scored","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-30","url":"https://verifymcp.io/servers/pipeworx-io-bts-ontime/pipeworx-mcp-bts-ontime#chg-chg_01a18c3a-2214-77c8-a498-e18c680fe018"}],"truncated":false,"feedUrl":"https://verifymcp.io/servers/pipeworx-io-bts-ontime/pipeworx-mcp-bts-ontime/changelog.json"},"links":{"html":"https://verifymcp.io/servers/pipeworx-io-bts-ontime/pipeworx-mcp-bts-ontime","markdown":"https://verifymcp.io/servers/pipeworx-io-bts-ontime/pipeworx-mcp-bts-ontime.md","changelogJson":"https://verifymcp.io/servers/pipeworx-io-bts-ontime/pipeworx-mcp-bts-ontime/changelog.json","changelogRss":"https://verifymcp.io/servers/pipeworx-io-bts-ontime/pipeworx-mcp-bts-ontime.xml","external":[{"label":"npm package","href":"https://www.npmjs.com/package/@pipeworx/mcp-bts-ontime"},{"label":"Socket report","href":"https://socket.dev/npm/package/@pipeworx/mcp-bts-ontime"},{"label":"Repository","href":"https://github.com/pipeworx-io/mcp-bts-ontime"},{"label":"Website","href":"https://pipeworx.io/packs/bts-ontime"}]}}