5 Commits

Author SHA1 Message Date
560a72eaf6 Add README with real API response examples
Every example uses actual NOAA data captured from the live API.
Larger responses linked as JSON files in examples/ directory.
2026-02-21 21:26:57 -07:00
58022cc8c4 Fix time_zone param: lst_lte -> lst_ldt
NOAA data API accepts gmt, lst, lst_ldt — not lst_lte.
Metadata API doesn't use this param, which masked the bug.
2026-02-21 21:15:18 -07:00
bb1d26332d Add extra=ignore to Station model for NOAA API resilience 2026-02-21 21:08:36 -07:00
20059b9476 Harden error handling and input validation
- Station ID validation (7-digit regex) prevents path traversal
- Stale cache fallback: serve expired data if refresh fails
- Resilient startup: server starts even if NOAA is down
- Contextual HTTP error messages with recovery hints
- Hours range validation (1-720)
- find_nearest limit/distance validation
- search() and find_nearest() now async with cache TTL checks
- Better error type info in conditions snapshot partial failures
2026-02-21 21:08:16 -07:00
6c244b3a63 Initial implementation: FastMCP 3.0 server wrapping NOAA CO-OPS API
7 tools: station search/nearest/info, tide predictions/observations,
meteorological data (Literal selector for 8 products), and parallel
marine conditions snapshot. 3 resources, 2 prompts, full test suite.
2026-02-21 21:04:03 -07:00