Reported issues for transitland-mcp-server
Pod holds 6 of 6 problems reported by people outside the maintainer team. Issues filed by the project's own owners, members and collaborators are excluded entirely — a maintainer's release checklist is not a warning to a prospective user.
Back to transitland-mcp-server.
Most discussed
chore(Dockerfile): drop unused MirrorService .cache/.mirror directories
The production stage creates and chowns /usr/src/app/.cache and /usr/src/app/.mirror for "on-disk SQLite stores (catalog index / observations mirror)" — that's the framework's MirrorService, a Tier 3 opt-in feature. This server doesn't use it: transitland-service.ts is a thin HTTP client with no SQLite/mirror usage anywhere in src/.
Proposal
Drop the .cache/.mirror mkdir/chown step from the Dockerfile (or gate it behind a comment matching the already-conditional "Mirror CLI
Read the thread · 2026-08-22 · closed · 1 comment
feat(config): default MCP_SESSION_MODE to stateless across env, Docker, and src
Dockerfile sets ENV MCP_SESSION_MODE="stateless", but .env.example carries a commented # MCP_SESSION_MODE=stateful, whose comment documents the value set as stateful | stateless (default: stateful). The container and the same code run via bunx, npm start, or from source therefore resolve to different session modes — stateless in Docker, stateful everywhere else, since the framework schema defaults to auto and auto resolves to stateful.
Related: cyanheads/mcp-ts-core#376
Read the thread · 2026-08-22 · open · 0 comments
bug(test:coverage): script fails — coverage below the framework's inherited 94/87 thresholds
Server version
0.1.1
mcp-ts-core version
0.12.3
Runtime
Bun
Runtime version
Bun 1.4.0
Transport
N/A (dev tooling)
Description
bun run test:coverage (added in 0.1.1) always exits non-zero. The framework's shared vitest.config sets global coverage thresholds of 94% lines/functions/statements and 87% branches, and this server's vitest.config.ts inherits them without a local override. Actual coverage is well under that floor.
Steps to reproduce
- `bun
Read the thread · 2026-08-22 · open · 0 comments
feat(transitland-service): map extended GTFS route types (100–1799) to human modes
Use case
ROUTE_TYPE_MODES in src/services/transitland/transitland-service.ts only maps the basic GTFS route_type values 0–12. The extended GTFS route types (100–1799) all fall through to the type N placeholder, so the human mode label is unhelpful for the many feeds — common across Europe and beyond — that use them. This server has global coverage, so it surfaces these feeds constantly.
**Verified live (
Read the thread · 2026-06-30 · open · 0 comments
docs(find_stops): search is a working standalone filter but omitted from the description and no_filter guidance
transitland_find_stops accepts search alone as a sufficient filter — the handler guard includes !!input.search (find-stops.tool.ts:185), and /stops?search=… filters correctly upstream (verified live: search=Powell returns only Powell-named stops) — but the tool description and the no_filter error both omit search from the "provide at least one of" list:
- Description: "Provide at least one of: lat+lon, bbox, onestop_id, or served_by_onestop_ids."
no_filterwhen: *"No coo
Read the thread · 2026-06-30 · open · 0 comments
bug(transitland-service): normalization fabricates (0,0) coordinates and "bus" mode for missing upstream fields
Server version
0.1.0
mcp-ts-core version
0.10.6
Runtime
Bun
Runtime version
Bun 1.3.11
Transport
stdio
Description
The normalization layer substitutes fabricated defaults for missing upstream fields instead of preserving "unknown" — which the server elsewhere (license fields) is careful to do. Two spots in src/services/transitland/transitland-service.ts:
normalizeStopfabricates(0, 0)coordinates. Whengeometryis null/absent,lat/lonfall
Read the thread · 2026-06-30 · open · 0 comments
Most recent
The remaining reports are on the project's issue tracker.