Source-consistent time window, nullable magnitude, enrichment fixes
Both sources now honor the documented 30-day default window, and search enrichment reports what was actually sent upstream.
Added:
- queryEcho enrichment on earthquake_search — effective upstream params including the server-resolved start_time default; USGS-only filters omitted for source=emsc (#11)
Fixed:
- EMSC full-catalog default: omitting start_time now sends an explicit starttime of end_time − 30 days to both sources — EMSC previously queried its entire ~27-year catalog (#12)
- totalCount is now populated via a follow-up FDSN count sub-call when results truncate at the limit; the truncation notice carries the real match total (#11)
- Null upstream magnitude passes through as null instead of a fabricated 0; formatEvent renders unknown (#13)
- earthquake_get_feed wires its declared feed_unavailable error contract — ServiceUnavailable re-thrown via ctx.fail so data.reason and the recovery hint reach clients (#14)
Security:
- js-yaml 3.14.2 → 3.15.0 (transitive, lock re-resolve) — clears GHSA-h67p-54hq-rp68; bun audit clean
Dependency bumps:
@cyanheads/mcp-ts-core^0.10.9 → ^0.10.10@biomejs/biome^2.5.0 → ^2.5.2@types/node^26.0.0 → ^26.1.0
221 tests pass; bun run devcheck clean.