MCP.Market

tfl-ts MCP server

by ghcpuman902·io.github.ghcpuman902/tfl-ts·v2.15.2·2 stars

Read-only Transport for London data: line status, arrivals, journeys, stop lookup.

B83/100grade B
What users say
No reviews yet
Be the first
Safety scan
B83/100

full report

Adoption
Growing

2 stars132 downloads/wk

Reviews

Write one

Nobody has reviewed tfl-ts yet.

If you have run it, two minutes of your experience saves the next person an afternoon.

tfl-ts tools (7)

write = sends, deletes, buys or posts

Read from the package source without running it. The installed server may list more.

  • docs

    Read tfl-ts bundled agent docs offline (same catalogue as `tfl docs`). No TfL API call, no credentials. Prefer list → find → read; use grep to locate symbols across docs. Large files are paginated by line.

  • get_arrivals

    Get compact live arrivals for one stop ID: line, towards, minutes, platform. Optional lineIds filter. Cached 15s.

  • get_line_status

    Get compact live line status (id, name, status, optional reason). Provide lineIds or modes (at least one). Set issuesOnly=true to hide Good Service lines. Cached 60s.

  • get_supported_modes

    List transport modes bundled with tfl-ts. Static metadata only — no TfL API call.

  • plan_journey

    Plan a journey and return a compact summary (duration, fare, natural-language legs). Cached 2 minutes.

  • resolve_line_id

    Resolve a line name to canonical lowercase TfL line IDs. Exact matches rank first. Static metadata only — no TfL API call. Prefer this before get_line_status.

  • resolve_stop_id

    Search TfL for a stop name or NaPTAN / SMS code and return compact stop matches. Cached 24h. For modes: ["bus"] this expands 490G… hubs so a street name returns boarding stops, not two raw search hits. Use the returned id with get_arrivals.

Public scan report

scanner v0.1.10 · 2026-10-16 · same rubric, same numbers if you re-run it

no findings
  • Code scan366 source files scanned25/25
  • –Live reliabilityno gateway calls yet and no remote to proben/a
  • –Tool poisoningtools not inspected (local package is not executed); not countedn/a
  • Auth qualitystatic API keys via environment variables6/15
  • Maintenancelast push 0 days ago15/15
  • Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
Overall 83/100. Components that don't apply are left out of the denominator. Any critical finding is an F.RubricAppeal a findingJSON

How tfl-ts compares

Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.

Safety score
83/100
higher than 65% of 48,255 servers
Tools
7
the typical server has 7
Tools that change things
0%
typical: 0%. Fewer write tools means less an agent can break
GitHub stars
2
more than 75% of 28,688 servers
Downloads a week
132
more than 69% of 12,191 servers with a package

What its tools let an agent do: 7 read

Install tfl-ts in Claude Code, Cursor or VS Code

Runs npx -y tfl-ts on your machine. Read the scan report first; the gateway never runs local packages.

claude mcp add tfl-ts -- npx -y tfl-ts
Add to Cursor

What the publisher says

From the tfl-ts repository's README, as published. We do not edit it. Read it on GitHub

TfL API TypeScript Client

Typed TfL client: friendly wrappers, 84 raw REST endpoints, and offline station topology for 20 rail lines.

Built with tfl-ts → Board

How this compares

Counts use the 84 operations in the committed OpenAPI snapshot (ENDPOINT_COUNT in src/generated/endpoints.ts, pathCount in src/generated/openapi/spec.meta.json). Checked against each repo's source and the package.json published to npm on 16 October 2026.

tfl-ts publishes .d.ts files. Runtime dependencies: none. typescript is a peer dependency, for people compiling against the types. Station order and hubs ship in tfl-ts/meta, with no network call. tfl mcp is the local MCP server.

tfl-unified-api 2.0.2 is JavaScript, with no types field. It depends on moment, request, and request-promise-native. The Line module calls ten of the 84 paths: meta modes, severity, disruption categories, service types, route sequence, route by id, lines by mode, status by id, status over a date range, and status by mode. getRoutesByServiceType builds /Line/Route/{types}, which sits outside those 84 paths. db/lineColors.json is line colours, not stations.

tfl-journey-planner 1.1.2 is LiveScript compiled to JavaScript, with no types field. It depends on request and querystring. The module calls GET /Journey/JourneyResults/{from}/to/{to} only.

@daanrongen/tfl-mcp 1.4.3 is written in TypeScript. The published tarball is dist/main.js, package.json, and README.md, and package.json has no types field. It depends on @modelcontextprotocol/sdk, effect, and zod. Its tools call 59 of the 84 paths. They also call /Road/all/Disruption (the snapshot path is /Road/all/Disruption/{disruptionIds}), /Vehicle/EmissionSurcharge, and /Vehicle/UlezCompliance.

@pipeworx/mcp-tfl 0.1.2 sets "types": "src/index.ts", and that file is in the tarball. It depends on @modelcontextprotocol/sdk and tsx. Six tools call 8 of the 84 paths.

Station order ships with tfl-ts, in tfl-ts/meta.

Install and first call

Get a Primary key from the TfL API Portal. Subscribe to "500 Requests per min", then Profile → Show.

Shortened. The full README is on GitHub.

Nothing above is checked by us. What we check is on the safety report.

tfl-ts: common questions

Is tfl-ts MCP server safe?
Mostly: it is graded B (83/100). Read the tfl-ts safety report
How do I install tfl-ts?
It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
Does tfl-ts need an API key?
Yes. The registry entry asks for TFL_APP_KEY.
Is tfl-ts maintained?
The last commit was 19 days ago (2026-10-16). The latest release is v2.15.2.
How does tfl-ts compare with other MCP servers?
safety score 83/100 (higher than 65% of 48,255 servers); tools 7 (the typical server has 7); tools that change things 0% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.