9 Commits

Author SHA1 Message Date
ad17d72894 Return HTML charts as EmbeddedResource instead of server-side files
HTML charts were being written to the server filesystem and returning
a path the client couldn't access. Now returns the HTML content
inline as an MCP EmbeddedResource with text/html MIME type, so the
client receives the full interactive chart over the wire.
2026-02-23 19:50:36 -07:00
89cdeb0967 Fix HTML chart output path for nobody container user
Use MCNOAA_CHARTS_DIR env var (defaults to artifacts/charts/ for
local dev) so the container's nobody user can write HTML charts
to /tmp/charts instead of the read-only /app working directory.
2026-02-23 19:46:29 -07:00
5649d0004a Fix double image/ prefix in chart MIME type
FastMCP's Image class prepends "image/" to the format string, so
passing "image/png" produced "image/image/png". Use bare "png".
2026-02-23 19:44:01 -07:00
77ad2a6bd1 Fix MCP endpoint for Claude.ai connector (serve at root path)
FastMCP defaults to /mcp but Claude.ai sends requests to /.
Add MCP_PATH env var to configure the endpoint path, set to /
in docker-compose for the connector subdomain.
2026-02-23 18:25:14 -07:00
2443d0687a Add tool annotations, structured logging, sampling summaries, and client diagnostics
- ToolAnnotations (readOnlyHint, openWorldHint) on all 14 tools
- ctx.info/warning/debug logging for data quality, fetch status, assessments
- ctx.sample() summaries in conditions snapshot, deployment briefing, anomaly detection
- New test_client_capabilities diagnostic tool for MCP feature discovery
2026-02-23 15:01:07 -07:00
fb574d26b8 Add MCP progress reporting to all multi-fetch tools
ctx.report_progress() gives clients real-time visibility into
long-running tool calls. Per-fetch counters for parallel gather
calls, stage-based milestones for linear pipelines. No-op when
client doesn't send a progressToken.
2026-02-23 13:28:56 -07:00
a02d660764 Add Starlight docs site and MCP HTTP transport
- Starlight documentation with 12 Diátaxis-organized pages covering
  getting started, how-to guides, reference, and architecture
- Docker Compose with two services: docs (Starlight/Caddy) and
  mcp (FastMCP streamable-http), both behind caddy-docker-proxy
- Env-based transport selection in server.py — stdio default preserved,
  MCP_TRANSPORT=streamable-http activates HTTP mode for Docker
- Ocean/maritime theme with dark mode default
2026-02-22 19:05:12 -07:00
c7320e599b Add SmartPot tidal intelligence tools
4 new tools (tidal_phase, deployment_briefing, catch_tidal_context,
water_level_anomaly) and 2 prompts (smartpot_deployment, crab_pot_analysis)
for autonomous crab pot deployment planning and catch correlation.

Pure tidal phase classification in tidal.py with no MCP dependencies.
65 tests passing, lint clean.
2026-02-22 18:31:03 -07:00
9f6d7bb4ac Rename package from noaa-tides to mcnoaa-tides
Distribution name, import package, entry point script, MCP config,
and all internal references updated. Git tracks the directory rename
so file history is preserved.
2026-02-22 16:53:56 -07:00