Releases: cyanheads/earthquake-mcp-server
Release list
v0.1.16: Source-consistent time window, nullable magnitude, enrichment fixes
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
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 (rejectslatest/*/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.jsonpackaging.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
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
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
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
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);fetchWithTimeoutstrips query-string secrets (e.g.?api_key=) from error messages and logs;withRetryfails fast on non-retryable errors;ctx.failauto-populates theretryableflag.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.mcpbattachment.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
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
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
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
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_eventandearthquake-eventresource 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).