Skip to content

Releases: cyanheads/wsdot-mcp-server

v0.1.13: ferry date, ferry_routes docs, vessel coordinate parity

Choose a tag to compare

@cyanheads cyanheads released this 12 Jul 02:56
v0.1.13
0cb7295

ferry date, ferry_routes docs, vessel coordinate parity

Correctness fixes to the ferry trip-date default, vessel-location coordinate rendering, and the wsdot_get_ferry_routes documentation.

Fixed:

  • Ferry default trip date tracks the Washington/Pacific service date (America/Los_Angeles), not the UTC date that rolled to the next day in the Pacific evening (#16)
  • wsdot_get_vessel_locations content[] renders coordinates at full precision, matching structuredContent (#21)
  • wsdot_get_ferry_routes docs corrected to its real output — route ID, abbreviation, description (not terminal ID pairs / crossing times) (#19)

245 tests pass; bun run devcheck clean.

CHANGELOG v0.1.13

v0.1.12: mcp-ts-core ^0.10.14 maintenance and camera route/pagination fixes

Choose a tag to compare

@cyanheads cyanheads released this 12 Jul 02:20
v0.1.12
02674d1

mcp-ts-core ^0.10.14 maintenance and camera route/pagination fixes

Camera and alert route filtering, camera pagination, and empty-result content, on a framework refresh with Socket supply-chain scanning.

Added:

  • wsdot_search_cameras gains offset/limit paging with nextOffset/hasMore output (#20)

Fixed:

  • stateRoute matches a canonical route number via shared normalizeRoute() — natural forms resolve and "90" no longer hits SR 290 (#17)
  • wsdot_search_cameras renders No cameras found. in content[] on an empty result (#18)
  • wsdot_search_cameras content[] and structuredContent carry the identical page (#20)

Dependencies:

  • @cyanheads/mcp-ts-core ^0.10.9 → ^0.10.14
  • @socketsecurity/bun-security-scanner ^1.1.2 added — Socket install scanning + 3-day minimumReleaseAge guard
  • @types/node ^26.0.0 → ^26.1.1
  • Bun pinned 1.3.14; @biomejs/biome 2.5.0 → 2.5.3, tsc-alias 1.8.17 → 1.9.0, vitest 4.1.9 → 4.1.10

243 tests pass; bun run devcheck clean.

CHANGELOG v0.1.12

v0.1.11: mcp-ts-core ^0.10.9 maintenance

Choose a tag to compare

@cyanheads cyanheads released this 20 Jun 18:47
v0.1.11
765ca22

mcp-ts-core ^0.10.9 maintenance

Framework dependency refresh — no source or behavior changes.

Added:

  • scripts/check-dependency-specifiers.ts devcheck step rejecting floating specifiers (latest, *, pre-release dist-tags) in package.json deps and bun.lock workspaces (cyanheads/mcp-ts-core#246)

Changed:

  • devcheck packaging.pluginManifests guard enabled
  • Vendored framework scripts and agent skills re-synced to ^0.10.9

Dependency bumps:

  • @cyanheads/mcp-ts-core ^0.10.6 → ^0.10.9
  • @types/node ^25.9.3 → ^26.0.0
  • vitest ^4.1.8 → ^4.1.9

232 tests pass; bun run devcheck clean.

v0.1.10: mcp-ts-core ^0.10.6 adoption, hyphenated display identity, MCPB bundle cleaner

Choose a tag to compare

@cyanheads cyanheads released this 13 Jun 04:36
v0.1.10
1008e98

mcp-ts-core ^0.10.6 adoption, hyphenated display identity, MCPB bundle cleaner

Maintenance release: framework adoption, display-identity hardening, and Docker/bundle tooling. No tool-surface changes.

Added:

  • scripts/clean-mcpb.ts post-pack cleaner — mcpb clean plus a strip of agent-doc trees (skills/, .claude/, .agents/, SKILL.md) nested under node_modules/ that root-anchored .mcpbignore patterns cannot reach
  • Dockerfile HEALTHCHECK against /healthz (bun -e fetch, no curl/wget) and an org.opencontainers.image.version OCI label

Changed:

  • Display identity set to the hyphenated repo name — createApp() name/title and codex displayName are 'wsdot-mcp-server'
  • .mcpbignore patterns root-anchored; .agents/ and skills/ excluded
  • lint:packaging gains bundle-content guards (dev-dir exclusion, anchored patterns, post-bundle agent-doc assertion)
  • Vendored agent skills re-synced to the installed framework version

Dependency bumps:

  • @cyanheads/mcp-ts-core ^0.9.21 → ^0.10.6
  • @biomejs/biome ^2.4.16 → ^2.5.0
  • @types/node ^25.9.2 → ^25.9.3

232 tests pass; bun run devcheck clean.

v0.1.9: Traffic WCF dates, mountain-pass elevation/restrictions, ferry 4xx handling, schema descriptions

Choose a tag to compare

@cyanheads cyanheads released this 09 Jun 00:22
v0.1.9
cb1efb4

Traffic WCF dates, mountain-pass elevation/restrictions, ferry 4xx handling, schema descriptions

Fixes data fidelity gaps and client-error handling across both services, with description
accuracy improvements throughout.

Fixed:

  • WCF /Date(ms±offset)/ timestamps now decode to ISO 8601 across all traffic tools; .NET DateTime.MinValue emits as null. New shared decodeWcfDate/wcfDateField util used by both services. (#11)
  • mountain_passes elevation and restriction fields were silently dropped due to wrong upstream field names (Elevation/TravelRestrictionComment vs ElevationInFeet/RestrictionText/TravelDirection). (#12)
  • Ferry 4xx responses no longer retried; toFerryDate now rejects non-YYYY-MM-DD locally; terminal-pair 400 maps to clear invalid_terminal_pair error. (#13)
  • border_waits crossing descriptions corrected to route codes (I5, SR543, SR539, SR9) with human names via location.description; -1 sentinel documented. ferry_alerts/ferry_routes cross-reference clarified for San Juan interisland and Sidney B.C. route IDs. (#14)

Changed:

  • Direction code legend added to all direction .describe() fields: cameras (B, N/S/E/W, O), alerts (A=alternating, B, N/S/E/W), travel times (N/S/E/W), border waits (N/S/E/W), toll rates travelDirection (N/S/E/W). (#15)

232 tests pass; bun run devcheck clean.

v0.1.8: Traffic data fixes — toll amounts, active-feed filters for alerts and cameras

Choose a tag to compare

@cyanheads cyanheads released this 08 Jun 12:28
v0.1.8
ef8d672

Traffic data fixes — toll amounts, active-feed filters for alerts and cameras

Three bugs in the traffic service corrected against live API validation.

Fixed:

  • wsdot_get_toll_rates — RawTollRate field names corrected (CurrentToll, CurrentMessage, TravelDirection, StartLatitude/Longitude, EndLatitude/Longitude); tollRateInDollars now CurrentToll/100. Previously all 84 toll objects returned 0 amount (#8).
  • wsdot_search_alerts — filtered calls now query GetAlertsAsJson (active feed) and filter client-side instead of routing to the historical SearchAlertsAsJson archive (up to 28 s / 2.5 MB). Region input normalized (Northwest → NW, etc.) (#9).
  • wsdot_search_cameras — CameraLocation nested object unpacked for roadName, milePost, latitude, longitude, direction. Filtered calls now query GetCamerasAsJson (1,682 cameras) client-side; stateRoute previously returned 0 results (#10).

Changed:

  • devcheck.config.json: @cyanheads/mcp-ts-core added to outdated allowlist

Dependency bumps:

  • @types/node ^25.9.1 → ^25.9.2

214 tests pass; bun run devcheck clean.

v0.1.7: Ferry error handling and remainingOnly fix

Choose a tag to compare

@cyanheads cyanheads released this 04 Jun 08:21
v0.1.7
707b092

Ferry error handling and remainingOnly fix

Routes declared error contract reasons through ctx.fail so data.reason is
populated on the wire for machine consumers.

Fixed:

  • FerryApiService.getSchedule — remainingOnly=true with a future tripDate now returns the future date's full schedule instead of today's remaining sailings (#5)

Changed:

  • wsdot_get_ferry_routes / wsdot_get_ferry_schedule — invalid tripDate throws via ctx.fail('invalid_date') so data.reason is populated (#6)
  • wsdot_get_ferry_schedule — WSF API errors now surface as ctx.fail('invalid_terminal_pair') with a recovery hint (#6)

210 tests pass; bun run devcheck clean.

v0.1.6: mcp-ts-core 0.9.21 — per-request log context, secret scrubbing, fail-fast retries

Choose a tag to compare

@cyanheads cyanheads released this 02 Jun 15:12
v0.1.6
6c1bf14

mcp-ts-core 0.9.21 — per-request log context, secret scrubbing, fail-fast retries

Adopts @cyanheads/mcp-ts-core ^0.9.21 with three notable framework fixes; syncs scripts and skills from the 0.9.17–0.9.21 series.

Changed:

  • HTTP transport per-request logs and traces now carry fresh request + trace/span IDs instead of the frozen boot context
  • fetchWithTimeout strips query-string secrets (e.g. ?api_key=) from error messages and logs
  • withRetry fails fast on non-retryable errors; ctx.fail auto-populates the retryable flag
  • New api-mirror and orchestrations skills added; add-tool, add-service, api-canvas, api-context, api-linter, api-utils, design-mcp-server, release-and-publish skills updated

Dependencies:

  • @cyanheads/mcp-ts-core ^0.9.16 -> ^0.9.21
  • vitest ^4.1.7 -> ^4.1.8

205 tests pass; bun run devcheck clean.

v0.1.5: Enrichment adoption across all twelve tools

Choose a tag to compare

@cyanheads cyanheads released this 30 May 10:13
v0.1.5
5786615

Enrichment adoption across all twelve tools

All collection tools now surface totalCount, appliedFilters (where applicable), and empty-result guidance in a typed enrichment block reaching both the structuredContent JSON and content[] markdown trailer.

Changed:

  • All twelve tools: enrichment block with totalCount, appliedFilters, and contextual notice
  • structuredContent field moves: totalCount (and tripDate on wsdot_get_ferry_routes, note on wsdot_search_cameras) moved from output to enrichment
  • wsdot_search_cameras: output.note renamed to enrichment.notice

Dependency bumps:

  • @cyanheads/mcp-ts-core ^0.9.13 → ^0.9.16

89 tests pass; bun run devcheck clean.

v0.1.4: mcp-ts-core ^0.9.7 → ^0.9.13, dep refresh, error code corrections

Choose a tag to compare

@cyanheads cyanheads released this 29 May 05:50
v0.1.4
8072352

mcp-ts-core ^0.9.7 → ^0.9.13, dep refresh, error code corrections

Adopts framework 0.9.8–0.9.13 and refreshes dev dependencies.

Changed:

  • @cyanheads/mcp-ts-core ^0.9.7 → ^0.9.13 — HTTP session-init gate (HTTP 400 on missing Mcp-Session-Id), configurable request-body cap (MCP_HTTP_MAX_BODY_BYTES, default 1 MiB, 413 on oversize), quieter 401/403/400/404 logging (warning level, no stack traces), GET /mcp surfaces package.json keywords.
  • landing.requireAuth: false added to createApp() — public catalog inventory on the hosted server.
  • invalidParamsvalidationError in ferry-service.ts and two ferry tool error contracts.

Dependency bumps:

  • @biomejs/biome ^2.4.7 → ^2.4.16
  • @types/node ^25.6.0 → ^25.9.1
  • tsc-alias ^1.8.16 → ^1.8.17
  • typescript ^5.9.3 → ^6.0.3
  • vitest ^4.1.0 → ^4.1.7

64 tests pass; bun run devcheck clean.