---
summary: "Adds limitExceeded truncation signaling to six collection tools plus find_routes bounding-box search (#18), enforces geographic and positive-count input bounds on four tools (#19), and fixes content[] to preserve exact numeric values and explicit null/empty state across the tool surface (#21)."
breaking: false
security: false
---

# 0.1.13 — 2026-07-12

## Added

- **`limitExceeded: boolean` added to six collection tools' output** — `onebusaway_list_agencies`, `onebusaway_find_routes`, `onebusaway_search_stops`, `onebusaway_search_routes`, `onebusaway_list_routes_for_agency`, and `onebusaway_get_vehicles` now surface the upstream truncation flag the service previously discarded, mirroring `onebusaway_find_stops`'s existing shape; each fires an `enrichment.notice` and a `format()` truncation line when true. ([#18](https://github.com/cyanheads/onebusaway-mcp-server/issues/18))
- **`onebusaway_find_routes` gains optional `latSpan`/`lonSpan` inputs** — an alternative bounding-box search that takes effect only when both are set, replacing `radius` for that call. ([#18](https://github.com/cyanheads/onebusaway-mcp-server/issues/18))

## Fixed

- **Geographic and count bounds enforced on four tools' inputs** — `onebusaway_find_stops`/`onebusaway_find_routes`: `lat` ∈ [-90, 90], `lon` ∈ [-180, 180], `radius` positive and capped at 1600m; `onebusaway_search_stops`/`onebusaway_search_routes`: `maxCount` a positive integer capped at 100. All four previously accepted unbounded or negative values that reached the upstream API and returned misleading empty results. ([#19](https://github.com/cyanheads/onebusaway-mcp-server/issues/19))
- **`content[]` now preserves exact numeric values instead of rounding** — coordinates in `onebusaway_get_stop`, `onebusaway_find_stops`, `onebusaway_search_stops`, `onebusaway_get_arrivals`, `onebusaway_get_trip`, `onebusaway_get_vehicles`, and `onebusaway_list_agencies` no longer go through `toFixed()`, and `onebusaway_get_trip`'s `distanceAlongTripMeters` no longer goes through `Math.round()`. A new shared `format-helpers.ts` (`coords`, `coordsOrNone`) renders both paths verbatim. ([#21](https://github.com/cyanheads/onebusaway-mcp-server/issues/21))
- **Null and empty fields now render explicitly instead of being silently omitted** — `format()` across `onebusaway_get_alert`, `onebusaway_get_route`, `onebusaway_find_routes`, `onebusaway_search_routes`, `onebusaway_list_routes_for_agency`, `onebusaway_get_arrivals`, `onebusaway_get_block`, `onebusaway_get_trip`, `onebusaway_get_vehicles`, and `onebusaway_list_agencies` now renders an explicit `none` for absent optional fields via the same `format-helpers.ts` (`orNone`, `listOrNone`), so a client reading only `content[]` can tell "no data" from a dropped line. ([#21](https://github.com/cyanheads/onebusaway-mcp-server/issues/21))
