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.
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.
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.
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.
- 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
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.
Distribution name, import package, entry point script, MCP config,
and all internal references updated. Git tracks the directory rename
so file history is preserved.