Sections A–D landed in commits 4bba5ac → de5a5c6 (2026-05-20). Section E remains open.
| Item | Status |
|---|---|
A1. Fix TDXError.rateLimited wording |
✅ |
A2. Document window_min limitation in CLAUDE.md |
✅ |
A3. Parallelise 8-system fetch in rail_search_stations (with stable sort) |
✅ |
| A4. Cache LRU size cap (default 1000 entries, eviction tests) | ✅ |
| Item | Status |
|---|---|
| ToolRegistry actor + Server.swift refactor | ✅ |
bus_search_routes / bus_search_stops / bus_find_routes / bus_status_arrivals / bus_status_positions |
✅ (5 tools) |
bike_search_stations / bike_stations_nearby / bike_status_station |
✅ (3 tools) |
Decision recap: Bus + Parking tools require city (not optional) because 22-way parallel fan-out would breach TDX 50/min, and ambiguous queries like "中山路" exist in multiple cities anyway. bike_stations_nearby uses haversine + radius clamp [50, 3000] m.
| Mode | Tools | Status |
|---|---|---|
| Air | air_list_airports / air_find_flights / air_status_flights |
✅ |
| Maritime | maritime_list_routes / maritime_status_schedule |
✅ |
| Traffic | traffic_freeway_live / traffic_incidents / traffic_cctv |
✅ |
| Parking | parking_list_lots / parking_status |
✅ |
Note on maritime_status_schedule: per-operator schedule schemas vary too much for a single Codable model, so the tool returns raw TDX JSON wrapped in {route_id, raw}. The LLM gets the data; downstream consumers can post-process.
| Item | Status |
|---|---|
mcpb/manifest.json with all 23 tools |
✅ |
scripts/build-mcpb.sh (ad-hoc OR Developer ID + notarize + pack) |
✅ |
Makefile targets release, release-signed, verify-release-ready, install |
✅ |
.gitignore covers build artefacts |
✅ |
AppVersion.version = "0.2.0" (forward-looking) |
✅ |
Remaining maintainer steps (interactive, user-only):
- Move CHANGELOG
[Unreleased]content under[0.2.0] — 2026-MM-DD git tag v0.2.0 && git push --tagsexport DEVELOPER_ID=... NOTARY_PROFILE=che-mcps-notary && make release-signed- Upload
mcpb/che-transport-mcp-0.2.0.mcpb+.sha256to GitHub release - (Optional) sync
psychquant-claude-pluginsmarketplace via/plugin-tools:plugin-update
Lower-priority items that don't block any release.
- MCP
tools/callargument validation — centralise schema validation before each executor - Telemetry hook — log tool invocations (tool name, success/fail, latency) for debugging
- Schema drift detection — periodic contract test against live TDX to catch breaking changes
- Per-endpoint rate limit awareness — TDX may enforce per-endpoint limits, not just global 50/min
- Negative test cases for
rail_find_trains— invalid station IDs, past dates,system=TRTC(rejected guard) - Format docs for
rail_status_traintrain_no — TRA numeric strings vs THSR distinct format
Pick on demand. No external dependency.
cd /Users/che/Developer/che-mcps/che-transport-mcp
swift test # confirm 50 unit + 1 integration local PASS, 2 integration SKIP
# Then either:
# (a) cut v0.2.0 release per Section D maintainer steps above
# (b) pick a Section E item
# (c) start v0.3 brainstorm (?) — design spec doesn't define v0.3 explicitly