Skip to content

Releases: cyanheads/earthquake-mcp-server

v0.1.16: Source-consistent time window, nullable magnitude, enrichment fixes

Choose a tag to compare

@cyanheads cyanheads released this 02 Jul 13:06
v0.1.16
f1c3962

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.

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

Choose a tag to compare

@cyanheads cyanheads released this 20 Jun 11:09
v0.1.15
f4ce1e0

mcp-ts-core ^0.10.9 maintenance

Dependency-adoption pass; no server behavior change.

Changed:

  • Adopt @cyanheads/mcp-ts-core ^0.10.9 — adds a floating-specifier devcheck guard (rejects latest/*/dist-tags in package.json + bun.lock workspaces) and plugin-marketplace manifest validation, fresh-scaffold skips for the git-dependent and changelog devcheck steps, the DuckdbProvider.describe() ambiguous-column fix, biome 2.4.16 → 2.5.0, and the new ctx.content image/audio collector.
  • Enable the plugin-marketplace checks via devcheck.config.json packaging.pluginManifests.
  • Re-sync 14 agent skills and 6 devcheck scripts to the framework.

Dependency bumps:

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

186 tests pass; bun run devcheck clean.

v0.1.14: Server instructions and unscoped plugin identity

Choose a tag to compare

@cyanheads cyanheads released this 16 Jun 00:38
v0.1.14
ebdda5f

Server instructions and unscoped plugin identity

Adds a server-level instructions block to createApp() and aligns the plugin/codex manifests to the unscoped earthquake-mcp-server identity.

Added:

  • createApp() instructions — client guidance on feed vs search vs count, event-ID flow into earthquake_get_event, and EMSC catalog caveats

Changed:

  • Plugin identity unscoped to earthquake-mcp-server across .claude-plugin/plugin.json, .codex-plugin/plugin.json, and .codex-plugin/mcp.json; install args stay @cyanheads/earthquake-mcp-server

Dependency bumps:

  • @biomejs/biome ^2.4.16 → ^2.5.0
  • vitest ^4.1.8 → ^4.1.9

186 tests pass; bun run devcheck clean.

v0.1.13: mcp-ts-core ^0.10.6, MCPB bundle hygiene, Docker healthcheck

Choose a tag to compare

@cyanheads cyanheads released this 12 Jun 07:22
v0.1.13
33994e0

mcp-ts-core ^0.10.6, MCPB bundle hygiene, Docker healthcheck

Maintenance release: framework adoption, dependency refresh, MCPB bundle agent-doc stripping, and a Docker healthcheck.

Added:

  • createApp() sets explicit name/title 'earthquake-mcp-server' so the hyphenated repo name is the displayed identity
  • scripts/clean-mcpb.ts strips dependency-shipped agent docs (node_modules/** skills/, .claude/, .agents/, SKILL.md) from MCPB bundles after pack
  • lint-packaging bundle-content guards: reject unanchored .mcpbignore patterns and patterns stripping critical runtime paths; assert built dist/*.mcpb ships zero agent-doc entries
  • check-framework-antipatterns flags z.coerce.boolean() on env flags (recommends z.stringbool())
  • Dockerfile HEALTHCHECK (bun-native fetch on /healthz) and org.opencontainers.image.version label from APP_VERSION

Changed:

  • .mcpbignore patterns root-anchored; added /.agents/ and /skills/
  • techniques skill added; vendored skills synced to ^0.10.6

Dependency bumps:

  • @cyanheads/mcp-ts-core ^0.9.21 → ^0.10.6
  • @types/node ^25.9.1 → ^25.9.3

186 tests pass; bun run devcheck clean.

v0.1.12: Error classification fixes and typed error contracts

Choose a tag to compare

@cyanheads cyanheads released this 04 Jun 08:06
v0.1.12
d2514bc

Error classification fixes and typed error contracts

Fix three error-classification bugs where error codes and data.reason
were not reaching clients as declared in the tool/resource contracts.

Fixed:

  • earthquake-feed resource: invalid tier/window params now throw validationError (-32007) instead of notFound (-32001) (#9)
  • earthquake_search tool: source_unavailable contract wired via ctx.fail(); data.reason populated on ServiceUnavailable (#10)
  • earthquake_search tool: query_too_broad contract wired via ctx.fail(); plain Error data.reason no longer silently discarded (#8)
  • earthquake_count tool: source_unavailable contract wired via ctx.fail(); data.reason populated on ServiceUnavailable (#10)

186 tests pass; bun run devcheck clean.

v0.1.11: mcp-ts-core ^0.9.21 — per-request log context, secret scrubbing, withRetry fail-fast

Choose a tag to compare

@cyanheads cyanheads released this 02 Jun 14:12
v0.1.11
fceba07

mcp-ts-core ^0.9.21 — per-request log context, secret scrubbing, withRetry fail-fast

Adopts @cyanheads/mcp-ts-core ^0.9.21. Adds release:github script and syncs 8 skills plus new api-mirror and orchestrations skills.

Changed:

  • @cyanheads/mcp-ts-core ^0.9.16 → ^0.9.21 — HTTP transport per-request log context fix (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.
  • vitest ^4.1.7 → ^4.1.8 (dev).
  • README client-config server key renamed to full package name (earthquake-mcp-server).
  • Plugin manifests (.claude-plugin, .codex-plugin) args simplified.

Added:

  • scripts/release-github.ts — one-command GitHub Release creation with .mcpb attachment.
  • scripts/check-skill-versions.ts — framework-sourced maintenance script.
  • skills/api-mirror, skills/orchestrations — new skills from framework ^0.9.21 sync.

180 tests pass; bun run devcheck clean.

v0.1.10: enrichment adoption on search and feed tools

Choose a tag to compare

@cyanheads cyanheads released this 30 May 08:59
v0.1.10
1af99b0

enrichment adoption on search and feed tools

earthquake_search and earthquake_get_feed now surface result totals,
truncation flags, and empty-result recovery guidance via a typed enrichment
block that reaches both structuredContent JSON and content[] markdown trailer.

Changed:

  • earthquake_search: totalCount, truncated, and notice moved from output to enrichment block; total_count key renamed totalCount
  • earthquake_get_feed: enrichment.notice added for empty-feed windows

Dependency bumps:

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

51 tests pass; bun run devcheck clean.

v0.1.9: mcp-ts-core ^0.9.9 to ^0.9.13, invalid_radius reclassification

Choose a tag to compare

@cyanheads cyanheads released this 29 May 05:02
v0.1.9
97d5f1f

mcp-ts-core ^0.9.9 to ^0.9.13, invalid_radius reclassification

Adopts framework 0.9.10-0.9.13 and corrects two error codes.

Changed:

  • invalid_radius error code reclassified from InvalidParams (-32602) to ValidationError (-32007) in earthquake_count and earthquake_search — client-observable; update error-code handling if matching on -32602 for this condition.
  • landing.requireAuth set to false explicitly — required by 0.9.13 which gates landing-page inventory behind auth for jwt/oauth deployments.

Dependency bumps:

  • @cyanheads/mcp-ts-core ^0.9.9 to ^0.9.13 (HTTP 413 body cap via MCP_HTTP_MAX_BODY_BYTES, session-init gate rejects uninitialized requests with HTTP 400, client-error logs at warning level, GET /mcp surfaces package.json keywords)
  • @biomejs/biome ^2.4.15 to ^2.4.16

45 tests pass; bun run devcheck clean.

v0.1.8: Code simplification and dependency bump

Choose a tag to compare

@cyanheads cyanheads released this 24 May 22:04
v0.1.8
75704d6

Code simplification and dependency bump

Extracts makeReqCtx helper (4 inline blocks → 1 per service), adds isTier/isWindow type predicates replacing manual casts, and replaces a manual EarthquakeEventOutput type declaration with z.infer.

Changed:

  • makeReqCtx helper extracted in usgs-service.ts and emsc-service.ts
  • isTier / isWindow type predicates in earthquake-feed.resource.ts
  • EarthquakeEventOutput: manual type → z.infer
  • query_too_broad error code: InvalidParams (-32602) → ValidationError (-32007)
  • git-wrapup skill added; release-and-publish skill updated to v2.6
  • CLAUDE.md: framework reference updated, ctx.fail and notify methods documented

Dependency bumps:

  • @cyanheads/mcp-ts-core ^0.9.7 → ^0.9.9 (fuzz-engine pre-parse fix, ZodArray minLength, ctx.elicit example correction)
  • @hono/node-server ^2.0.3 → ^2.0.4 (via mcp-ts-core)

45 tests pass; bun run devcheck clean.

v0.1.7: Null depth_km fix and description corrections

Choose a tag to compare

@cyanheads cyanheads released this 24 May 12:09
v0.1.7
2998a8d

Null depth_km fix and description corrections

Patch fixes two issues found during field testing.

Fixed:

  • depth_km: Nullable across all type interfaces and Zod schemas. USGS historical events can omit depth — previously caused a type crash. Format renders null as 'unknown'.
  • descriptions: earthquake_get_event and earthquake-event resource descriptions no longer claim 'products metadata' is returned. Corrected to list the actual fields exposed.

45 tests pass; devcheck clean (excluding bun outdated: mcp-ts-core 0.9.7 → 0.9.9, separate maintenance task).