Skip to content

Releases: cyanheads/noaa-climate-mcp-server

v0.2.0: Rename noaa-cdo → noaa-climate; noaa_climate_* tool prefix (#11)

22 Jun 04:24
v0.2.0
dc0a4a5

Choose a tag to compare

Rename noaa-cdo → noaa-climate; noaa_climate_* tool prefix (#11)

Breaking: new npm package name and tool ids. Name now describes the historical-climate workflow rather than one upstream API (CDO).

Changed:

  • Package @cyanheads/noaa-cdo-mcp-server@cyanheads/noaa-climate-mcp-server; repo, bin, MCP-registry name, GHCR image, and hosted endpoint follow
  • All 7 tools reprefixed noaa_*noaa_climate_* (e.g. noaa_fetch_datanoaa_climate_fetch_data); tool titles NOAA CDO …NOAA Climate …

Added:

  • tests/tool-naming.test.ts pinning the registered noaa_climate_* set

Migration:

  • Install @cyanheads/noaa-climate-mcp-server; the old package is deprecated. Prefix tool calls noaa_climate_. Unchanged: NOAA_CDO_TOKEN, noaa:// resource URIs, the CdoService layer

167 tests pass; bun run devcheck clean.

v0.1.15: mcp-ts-core ^0.10.9 maintenance

20 Jun 12:11
v0.1.15
f645b25

Choose a tag to compare

mcp-ts-core ^0.10.9 maintenance

Framework maintenance only — no tool, resource, or behavior changes.

Dependency bumps:

  • @cyanheads/mcp-ts-core ^0.10.6 → ^0.10.9
  • @types/node ^25.9.3 → ^26.0.0
  • vitest ^4.1.8 → ^4.1.9

Added:

  • check-dependency-specifiers devcheck step — fails on floating specifiers (latest/*/dist-tags) in package.json and bun.lock workspaces (cyanheads/mcp-ts-core#246)
  • lint:packaging plugin-manifest checks — descriptions, unscoped display name, full install-arg name (cyanheads/mcp-ts-core#240)

Changed:

  • Synced framework scripts + skills to the 0.10.7–0.10.9 deltas — fresh-scaffold devcheck guards, worktree-deletion guard, ctx.content and OTEL_SERVICE_NAME doc corrections

165 tests pass; bun run devcheck clean.

v0.1.14: mcp-ts-core 0.10.6 adoption

13 Jun 04:01
v0.1.14
b908144

Choose a tag to compare

mcp-ts-core 0.10.6 adoption

Adopts @cyanheads/mcp-ts-core ^0.10.6, pins the served identity to the unscoped repo name, and hardens MCPB bundling and the container image.

Added:

  • scripts/clean-mcpb.ts — post-pack cleaner: runs mcpb clean, then strips dependency-shipped agent docs (skills/, .claude/, .agents/, SKILL.md) nested under node_modules/ that root-anchored .mcpbignore cannot reach
  • lint:packaging — bundle-content + identity checks (root-anchored .mcpbignore dev-dir patterns, zero node_modules agent-doc entries in built bundles, name/title/display_name equal the unscoped package name)
  • check-framework-antipatterns rule 4 — flags z.coerce.boolean() env flags in favor of z.stringbool()
  • Dockerfile HEALTHCHECK on /healthz and org.opencontainers.image.version label

Changed:

  • createApp() sets explicit name/title noaa-cdo-mcp-server
  • .codex-plugin displayName de-scoped to noaa-cdo-mcp-server

Dependency bumps:

  • @cyanheads/mcp-ts-core ^0.9.21 → ^0.10.6
  • @biomejs/biome ^2.4.16 → ^2.5.0
  • @types/node ^25.9.2 → ^25.9.3

165 tests pass; bun run devcheck clean.

v0.1.13: Patch: datasetId validation, not_found recovery hint, corrected entity counts

08 Jun 12:29
v0.1.13
61e7a94

Choose a tag to compare

Patch: datasetId validation, not_found recovery hint, corrected entity counts

Three targeted fixes landed in this release.

Fixed:

  • noaa_fetch_data: unknown datasetId now surfaces validation_error with a recovery hint instead of a raw HTTP 500 — KNOWN_DATASETS set validated client-side before the request. (#13)
  • noaa_get_station: not_found error now carries a Recovery hint pointing to noaa_find_stations — hint was declared in the error contract but not forwarded at the throw site. (#14)
  • noaa_find_locations: ST location count corrected from ~52 to 51. (#16)
  • noaa_list_data_categories: category count corrected from ~41 to 42. (#16)

Dependency bumps:

  • @types/node ^25.9.1 → ^25.9.2

165 tests pass; bun run devcheck clean.

v0.1.12: HTTP 400 validation_error contract across all 6 tools

04 Jun 08:42
v0.1.12
9b0d5ec

Choose a tag to compare

HTTP 400 validation_error contract across all 6 tools

All six query tools now catch McpError(InvalidParams) from the CDO service
layer on HTTP 400 responses and re-throw via ctx.fail('validation_error', ...)
with tool-specific recovery hints. This populates data.reason for machine
consumers routing on structured error fields.

Fixed:

  • noaa_fetch_data and noaa_list_datasets: validation_error was declared but unreachable via ctx.fail (#8)
  • noaa_find_locations, noaa_find_stations, noaa_list_data_categories, noaa_list_data_types: added validation_error contract entries and catch blocks (#9)

157 tests pass; bun run devcheck clean.

v0.1.11: mcp-ts-core ^0.9.21 adoption

02 Jun 14:30
v0.1.11
718b4cd

Choose a tag to compare

mcp-ts-core ^0.9.21 adoption

Adopts @cyanheads/mcp-ts-core 0.9.21 with three framework-level fixes.

Changed:

  • Per-request log context fix — per-request logs and traces carry fresh request + trace/span IDs instead of the frozen boot context.
  • fetchWithTimeout strips query-string secrets (e.g. ?api_key=) from error messages and logs.
  • withRetry fails fast on non-retryable errors; ctx.fail auto-populates the retryable flag.
  • Re-synced skills to framework 0.9.21 (add-service, add-tool, api-canvas, api-context, api-linter, api-utils, design-mcp-server, release-and-publish); added api-mirror and orchestrations skills.
  • README client-config key renamed to full package name.

Dependency bumps:

  • @cyanheads/mcp-ts-core ^0.9.16 -> ^0.9.21
  • vitest ^4.1.7 -> ^4.1.8

145 tests pass; bun run devcheck clean.

v0.1.10: Enrichment adoption — query echoes, totals, empty-result guidance

30 May 09:54
v0.1.10
5a1d6b3

Choose a tag to compare

Enrichment adoption — query echoes, totals, empty-result guidance

Six search/list/fetch tools now surface a typed enrichment block in both
structuredContent and content[]: totalCount (true result count before the
page limit), effectiveQuery (noaa_fetch_data only), and optional notice
with actionable next steps when zero results are returned.

Changed:

  • noaa_list_datasets, noaa_list_data_categories: enrichment.totalCount, optional enrichment.notice
  • noaa_list_data_types, noaa_find_locations, noaa_find_stations: enrichment.totalCount, optional enrichment.notice with applied-filter echoes
  • noaa_fetch_data: enrichment.totalCount, enrichment.effectiveQuery (dataset/dates/units/filters), optional enrichment.notice
  • format script split into format and format:unsafe

Dependency bumps:

  • @cyanheads/mcp-ts-core ^0.9.13 → ^0.9.16

38 tests pass; bun run devcheck clean.

v0.1.9: mcp-ts-core ^0.9.9 → ^0.9.13: HTTP hardening and log-level improvements

29 May 05:14
v0.1.9
e90c117

Choose a tag to compare

mcp-ts-core ^0.9.9 → ^0.9.13: HTTP hardening and log-level improvements

Adopts framework ^0.9.13 from ^0.9.9, adding configurable request-body capping, an HTTP session-init guard, and quieter expected-error logging.

  • MCP_HTTP_MAX_BODY_BYTES — 413 rejection before SDK parsing; default 1 MiB.

  • HTTP session-init gate — stateful HTTP rejects non-initialize requests missing Mcp-Session-Id with 400.

  • httpErrorHandler log-level split — 401/403/400/404 use logger.warning, eliminating stack-trace noise for expected client errors.

  • landing.requireAuth: false set in createApp() to preserve public-catalog behavior after the framework default change.

  • GET /mcp keywords — package.json keywords now surfaced on the status endpoint.

  • @cyanheads/mcp-ts-core ^0.9.9 → ^0.9.13

  • @biomejs/biome ^2.4.15 → ^2.4.16

34 tests pass; bun run devcheck clean.

v0.1.8: code simplification, mcp-ts-core ^0.9.9, error code corrections

24 May 22:08
v0.1.8
769dc02

Choose a tag to compare

code simplification, mcp-ts-core ^0.9.9, error code corrections

Nullish coalescing and conditional spread cleanup across cdo-service and 5 tool files. Error codes corrected at 3 sites (InvalidParams → ValidationError). mcp-ts-core upgraded through 0.9.8 and 0.9.9 — fuzzTool Phase 1 pre-parse, ZodArray minLength, fast-check optional peer dep.

Changed:

  • Null coalescing and conditional spread normalization across cdo-service.ts and 5 tool files
  • Template literal for server instructions; duplicate qs.toString() call eliminated
  • Error codes: date_range_exceeded and invalid_params corrected to ValidationError at 3 sites
  • git-wrapup v1.0 skill added; release-and-publish updated to v2.6

Dependency bumps:

  • @cyanheads/mcp-ts-core ^0.9.7 → ^0.9.9

34 tests pass; bun run devcheck clean.

v0.1.7: pagination offset fix, dead error contract cleanup

24 May 12:16
v0.1.7
5af903a

Choose a tag to compare

pagination offset fix, dead error contract cleanup

Fixes two field-test findings: pagination sent 0-based offsets to a 1-based API, and 5 tools declared a no_results error contract their handlers never threw.

Fixed:

  • buildParams — converts 0-based client offset to 1-based before sending to NOAA CDO API
  • noaa_fetch_data, noaa_find_locations, noaa_find_stations, noaa_list_data_categories, noaa_list_data_types — removed unused no_results error contract entries

34 tests pass; bun run devcheck clean.