# Bts Ontime (npm · @pipeworx/mcp-bts-ontime)

bts-ontime -- US airline on-time performance and delay causes (fleet #2953).

- Trust score: 82/100 (high trust)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- remote · `gateway.pipeworx.io`: 77/100, [markdown](https://verifymcp.io/servers/pipeworx-io-bts-ontime/bts-ontime-mcp.md), [page](https://verifymcp.io/servers/pipeworx-io-bts-ontime/bts-ontime-mcp)
- npm · `@pipeworx/mcp-bts-ontime`: 82/100 (this document), [markdown](https://verifymcp.io/servers/pipeworx-io-bts-ontime/pipeworx-mcp-bts-ontime.md), [page](https://verifymcp.io/servers/pipeworx-io-bts-ontime/pipeworx-mcp-bts-ontime)

## Channel facts

- Registry: `npm`
- Package: `@pipeworx/mcp-bts-ontime`
- Version: `0.2.1`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-05.

- **Supply Chain Security**: 100/100
  - 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.
- **Provenance & Transparency**: 97/100
  - 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.
- **Schema Quality & AI Usability**: 65/100
  - 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.
- **Stability & Change Management**: 20/100
  - Stability observed for 6 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Tool Safety**: 100/100
  - 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.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### How do I install the Bts Ontime MCP server?

Bts Ontime runs locally as an npm package, launched with npx -y @pipeworx/mcp-bts-ontime. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add pipeworx-io-bts-ontime -- npx -y @pipeworx/mcp-bts-ontime
```

### Cursor

```json
{
  "mcpServers": {
    "pipeworx-io-bts-ontime": {
      "command": "npx",
      "args": [
        "-y",
        "@pipeworx/mcp-bts-ontime"
      ]
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "pipeworx-io-bts-ontime": {
      "command": "npx",
      "args": [
        "-y",
        "@pipeworx/mcp-bts-ontime"
      ]
    }
  }
}
```

### Codex

```bash
codex mcp add pipeworx-io-bts-ontime -- npx -y @pipeworx/mcp-bts-ontime
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "pipeworx-io-bts-ontime": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@pipeworx/mcp-bts-ontime"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add pipeworx-io-bts-ontime --command npx --arg -y --arg @pipeworx/mcp-bts-ontime
```

### Hermes

```yaml
mcp_servers:
  pipeworx-io-bts-ontime:
    command: "npx"
    args: ["-y", "@pipeworx/mcp-bts-ontime"]
```

### Netclaw

```json
{
  "McpServers": {
    "pipeworx-io-bts-ontime": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "@pipeworx/mcp-bts-ontime"
      ]
    }
  }
}
```

### Vellum

```bash
assistant mcp add pipeworx-io-bts-ontime -t stdio -c npx -a -y @pipeworx/mcp-bts-ontime
```

### Other

```json
{
  "mcpServers": {
    "pipeworx-io-bts-ontime": {
      "command": "npx",
      "args": [
        "-y",
        "@pipeworx/mcp-bts-ontime"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-11-05 (score 82, +1)

No change was recorded against any check on this day. Stability & Change Management went from 17 to 20. That category is still filling its 30-day observation window: 5 days of observed history at the previous scan, 6 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-11-02 (score 81, +1)

No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-11-01 (score 80, 0)

- [functional regression] Security disclosure: unverified → fail

### 2026-10-31 (score 80, +1)

- [functional improvement] Stability: unverified → 0.03
- [functional] Package version: 0.2.0 → 0.2.1

### 2026-10-30 (score 79)

First indexed and scored.

## MCP tools (5)

### `route_ontime` (~278 tokens)

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.

Input parameters:

- `carrier` (string): Optional: 2-letter carrier code ("DL") or common name ("Delta") to scope to one airline.
- `dest` (string, required): Destination airport code, e.g. "LAX".
- `months` (number): How many of the most recently loaded months to return, most recent first. Default 12.
- `origin` (string, required): Origin airport code, e.g. "JFK".

### `carrier_ontime` (~205 tokens)

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.

Input parameters:

- `airport` (string): Optional: scope to flights where this airport is the origin or destination.
- `carrier` (string, required): 2-letter carrier code ("WN") or common name ("Southwest").
- `months` (number): How many of the most recently loaded months to return, most recent first. Default 12.

### `bts_airport_delays` (~261 tokens)

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.

Input parameters:

- `airport` (string, required): Airport code, e.g. "ORD".
- `limit` (number): Max rows to return, 1-200. Default 50. A truncated response carries truncated:true and total_matching.
- `month` (number): 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).
- `offset` (number): Pagination offset. Default 0.
- `year` (number): Optional: scope to one calendar year.

### `delay_causes` (~260 tokens)

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.

Input parameters:

- `airport` (string): Optional: arrival-airport code, e.g. "DFW".
- `carrier` (string): Optional: 2-letter carrier code ("AA") or common name ("American").
- `limit` (number): Max rows to return, 1-200. Default 50. A truncated response carries truncated:true and total_matching.
- `offset` (number): Pagination offset. Default 0.
- `year` (number, required): Calendar year, e.g. 2026.

### `list_coverage` (~72 tokens)

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.

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/pipeworx-io-bts-ontime/pipeworx-mcp-bts-ontime#diagnostics

## Score history

- 2026-11-05: 82
- 2026-11-04: 81
- 2026-11-03: 81
- 2026-11-02: 81
- 2026-11-01: 80
- 2026-10-31: 80
- 2026-10-30: 79

## Common questions

### What is the Bts Ontime MCP server?

Bts Ontime is an MCP server listed in the public MCP registry as io.github.pipeworx-io/bts-ontime. bts-ontime -- US airline on-time performance and delay causes (fleet #2953). This page covers its npm package (@pipeworx/mcp-bts-ontime).

### Is the Bts Ontime MCP server safe to use?

Bts Ontime scores 82 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 5 November 2026. It declares no install or post-install scripts. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the Bts Ontime MCP server expose?

Bts Ontime exposes 5 tools: route_ontime, carrier_ontime, bts_airport_delays, delay_causes, list_coverage. Their descriptions and schemas cost roughly 1,076 tokens of context every time the server is loaded.

### Is the Bts Ontime MCP server still maintained?

Bts Ontime is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

### What licence is the Bts Ontime MCP server under?

Bts Ontime declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.

## Links

- npm package: https://www.npmjs.com/package/@pipeworx/mcp-bts-ontime
- Socket report: https://socket.dev/npm/package/@pipeworx/mcp-bts-ontime
- Repository: https://github.com/pipeworx-io/mcp-bts-ontime
- Website: https://pipeworx.io/packs/bts-ontime
- Changelog RSS feed: https://verifymcp.io/servers/pipeworx-io-bts-ontime/pipeworx-mcp-bts-ontime.xml
- Changelog JSON feed: https://verifymcp.io/servers/pipeworx-io-bts-ontime/pipeworx-mcp-bts-ontime.json
- HTML version of this page: https://verifymcp.io/servers/pipeworx-io-bts-ontime/pipeworx-mcp-bts-ontime
