CCM
/MCP
SkillsMCPMarketplacesDigestToolsAdvertise

This week in Claude

Every Monday: Claude Code, Agent SDK, MCP, and the Anthropic platform moves worth your time.

Skills by Category
Frontend DevelopmentBackend & APIsTesting & QASecurityDevOps & CI/CDGit & Pull RequestsDocumentationCode Review & QualityAI & Agent BuildingSkill Development
MCP Servers by Category
Sales & MarketingWeb & Browser AutomationDatabasesAI & LLM ToolsCloud & InfrastructureCommunication & MessagingDeveloper ToolsDesign & CreativeDocuments & KnowledgeSearch & Web Crawling
Marketplaces by Category
AI Agents & OrchestrationLLM IntegrationDevelopment ToolsFrontend & UIBackend & APIsDatabasesTesting & Code QualityDevOps & CloudSecurity & ComplianceGit & Version Control

Claude Code Marketplaces

Discover Claude Code plugins, extensions, and tools. Automatically updated directory of Anthropic Claude AI marketplaces with development tools, productivity plugins, and integrations.

Resources

  • Browse Skills
  • Browse MCP Servers
  • Browse Marketplaces
  • Skill index
  • MCP index
  • Marketplace index
  • Plugins Reference

Community

  • About
  • Tools
  • Feedback
  • Privacy Policy
  • Advertise

Built for the Claude Code community with Claude Code by mertbuilds.com

Independent project, not affiliated with Anthropic
cyanheads avatar

Earthquake Mcp Server

cyanheads/earthquake-mcp-server
1STDIO, HTTPregistry active
Summary

Connects Claude to live earthquake data from USGS ComCat and EMSC SeismicPortal. You get four tools: pull pre-computed USGS feeds by magnitude tier and time window, run filtered searches across both catalogs with parameters like location radius and PAGER alert level, count matching events without fetching full records, and retrieve complete detail for specific events by ID. Two resources let you inject feed data or event detail directly as context. Useful when you need real-time seismic awareness in an agent workflow, want to cross-reference catalogs for verification, or need to filter quakes by felt reports and impact scores. No API keys required for either source.

CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
inference shell
inference shell
create and run specialised agents in minutes
build now →
MCP-ready Email SendingMCP-ready Email Sending
MCP-ready Email Sending
Plug Mailtrap into your AI workflow and let it handle the email.
Connect Mailtrap MCP →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Capacitor - Shared memory for your team’s coding agents.
Capacitor - Shared memory for your team’s coding agents.
Make coding agent sessions - Searchable, Shareable, Vendor-neutral & Scored.
Try For Free →
CodeScene MCP ServerCodeScene MCP Server
CodeScene MCP Server
Your agent targets a perfect 10 Code Health score. Deterministic. Every commit.
Try For Free →
Give your AI the whole web as clean markdownGive your AI the whole web as clean markdown
Give your AI the whole web as clean markdown
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
belt - the only tool your agent needs
belt - the only tool your agent needs
belt cli automatically finds the best tools and skills for your agent. image, video, music, tts...
one prompt install →
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
inference shell
inference shell
create and run specialised agents in minutes
build now →
MCP-ready Email SendingMCP-ready Email Sending
MCP-ready Email Sending
Plug Mailtrap into your AI workflow and let it handle the email.
Connect Mailtrap MCP →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Capacitor - Shared memory for your team’s coding agents.
Capacitor - Shared memory for your team’s coding agents.
Make coding agent sessions - Searchable, Shareable, Vendor-neutral & Scored.
Try For Free →
CodeScene MCP ServerCodeScene MCP Server
CodeScene MCP Server
Your agent targets a perfect 10 Code Health score. Deterministic. Every commit.
Try For Free →
Give your AI the whole web as clean markdownGive your AI the whole web as clean markdown
Give your AI the whole web as clean markdown
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
belt - the only tool your agent needs
belt - the only tool your agent needs
belt cli automatically finds the best tools and skills for your agent. image, video, music, tts...
one prompt install →

@cyanheads/earthquake-mcp-server

Search USGS and EMSC seismic data — real-time feeds, event queries, and earthquake counts via MCP. STDIO or Streamable HTTP.

4 Tools • 2 Resources

Version License Docker MCP SDK npm TypeScript Bun

Install in Claude Desktop Install in Cursor Install in VS Code

Framework

Public Hosted Server: https://earthquake.caseyjhand.com/mcp


Tools

4 tools for querying global earthquake data from USGS and EMSC:

ToolDescription
earthquake_get_feedFetch a USGS pre-computed real-time earthquake feed by magnitude tier and time window
earthquake_searchSearch earthquakes by time range, magnitude, depth, location radius, PAGER alert level, or felt reports
earthquake_countCount earthquakes matching filters without fetching full records
earthquake_get_eventFetch complete detail for a specific earthquake by USGS event ID

earthquake_get_feed

Fetch a USGS pre-computed real-time earthquake feed by magnitude tier and time window.

  • CDN-cached by USGS — faster and more available than the FDSN query API
  • Five magnitude tiers: all (microseisms), 1.0, 2.5, 4.5, and significant (USGS-curated by magnitude, felt reports, and PAGER impact)
  • Four time windows: hour, day, week, month
  • Returns event list with counts and the source feed URL
  • Paged with an opaque cursor: limit bounds a page (default 100, max 1000), totalCount reports the whole feed, and nextCursor retrieves the rest — the broad tiers run past 10,000 events for month
  • The cursor is opaque because these feeds have no upstream paging parameter and USGS regenerates them about once a minute; a numeric offset across two calls would skip or repeat events
  • Best for real-time "what's happening now" queries; use earthquake_search for historical or filtered queries

earthquake_search

Search earthquakes by time range, magnitude, depth, location radius, PAGER alert level, or felt reports.

  • Dual-source: USGS (global, richer metadata) or EMSC (an independent global catalog from the European-Mediterranean Seismological Centre, for cross-verification anywhere)
  • Full FDSN ComCat query API parameters: time range, magnitude, depth, location radius
  • USGS-specific filters: PAGER alert level (green/yellow/orange/red), DYFI felt reports count, significance score, event type
  • Every event carries an event_type in one vocabulary whichever source served it — the QuakeML names USGS publishes (earthquake, quarry blast, explosion, ice quake); EMSC's two-character code is decoded to the same names, with how sure EMSC was kept beside it in event_certainty — and the event_type filter narrows to one of them on USGS
  • Location-based queries: provide latitude, longitude, and radius_km together
  • Rectangular study areas: min_latitude, max_latitude, min_longitude, max_longitude, each independently optional and forwarded to both sources; combining a box with the radius circle intersects the two. Longitude accepts up to ±360 so a box can cross the antimeridian
  • Sort by time (newest first) or magnitude (largest first), ascending or descending
  • One call returns at most 20,000 events; page beyond that with offset, forwarded straight to the upstream FDSN offset parameter on both sources
  • offset counts from 1, matching both upstream APIs — a capped result carries totalCount and the nextOffset to pass on the following call, and says so with countUnavailable when the follow-up count query failed rather than leaving the total silently absent
  • Use earthquake_count first to gauge result size
  • USGS-specific filters are not supported by EMSC — when source=emsc they are dropped and named in ignoredFilters, so an unconstrained result set is never mistaken for a filtered one

earthquake_count

Count earthquakes matching filters without fetching full records.

  • Lightweight alternative to earthquake_search for statistical queries ("how many M5+ events in 2025?")
  • Same filter surface as earthquake_search: time, magnitude, depth, location radius, bounding box, PAGER, DYFI, significance, event type
  • A radius over a mining region counts quarry blasts alongside earthquakes — pass event_type="earthquake" on USGS to exclude them
  • Returns exceeds_limit flag when count exceeds 20,000 — signals a full search needs paging
  • Echoes the effective query back as queryEcho, including the resolved time window — omitting start_time counts only the last 30 days
  • USGS returns the max_allowed cap (20,000); EMSC count endpoint does not expose this field (max_allowed will be null)
  • USGS-specific filters are dropped and named in ignoredFilters when source=emsc, the same as on earthquake_search

earthquake_get_event

Fetch complete detail for a specific earthquake by USGS event ID.

  • Returns the normalized event a search result already carries, plus detail — a projection of the analysis products only the single-event response holds
  • detail groups: PAGER alert and report link, ShakeMap peak MMI/PGA/PGV and intensity map, DYFI response count and max CDI, moment-tensor scalar moment and nodal planes, landslide and liquefaction alerts, origin quality (azimuthal gap, station count, location and depth uncertainty), finite-fault rupture length and width
  • A group is omitted when USGS produced no such product — a small automatic event usually has none, a large reviewed one has most of them
  • Event IDs appear in the id field of earthquake_get_feed and earthquake_search results (e.g. us6000sznj, hv74966427)
  • USGS-only — EMSC events have no per-event detail endpoint

Resources

TypeURI patternDescription
Resourceearthquake://feed/{magnitude_tier}/{time_window}USGS real-time earthquake feed as injectable context — returns the whole feed, so use the earthquake_get_feed tool for the broad tiers
Resourceearthquake://event/{event_id}Full USGS earthquake event detail by ID as injectable context, including the same detail product projection as earthquake_get_event

Features

Built on @cyanheads/mcp-ts-core:

  • Declarative tool definitions — single file per tool, framework handles registration and validation
  • Unified error handling across all tools
  • Pluggable auth (none, jwt, oauth)
  • Swappable storage backends: in-memory, filesystem, Supabase, Cloudflare KV/R2/D1
  • Structured logging with optional OpenTelemetry tracing
  • Runs locally (stdio/HTTP) or on Cloudflare Workers from the same codebase

Earthquake-specific:

  • Two independent global data sources: USGS ComCat (full metadata) and EMSC SeismicPortal (an independent catalog from the European-Mediterranean Seismological Centre, with no PAGER/DYFI/ShakeMap metadata and station coverage densest around Europe and the Mediterranean)
  • USGS real-time GeoJSON feeds (CDN-cached, fast availability) plus FDSN event query API
  • EMSC FDSN-WS event and count endpoints
  • No API key required — both USGS and EMSC are fully public

Agent-friendly output:

  • Source attribution on every response (usgs / emsc) so agents can reason about data provenance
  • exceeds_limit flag on count responses surfaces truncation risk before a full search
  • Fields a source does not publish come back null, never as a fabricated zero — tsunami and status are null on EMSC events, and the rendered text says "not published by source" rather than "no tsunami" or "reviewed"
  • source_catalog and auth carry provenance (which catalog and which authoritative agency produced a solution) so agents can weigh two sources against each other
  • USGS-only filters dropped for an EMSC query are named in ignoredFilters on both earthquake_search and earthquake_count
  • An upstream rejection surfaces the service's own explanation (the offending parameter and its accepted format) in the error message, not just a status code; when the service explains nothing, the error says so under its own reason rather than passing the raw upstream body through
  • event_type travels with every event, so a quarry blast or explosion is never silently read as an earthquake, and event_certainty keeps a suspected one from reading as confirmed

Getting started

Public Hosted Instance

A public instance is available at https://earthquake.caseyjhand.com/mcp — no installation required. Point any MCP client at it via Streamable HTTP:

{
  "mcpServers": {
    "earthquake-mcp-server": {
      "type": "streamable-http",
      "url": "https://earthquake.caseyjhand.com/mcp"
    }
  }
}

Self-Hosted / Local

Add the following to your MCP client configuration file.

{
  "mcpServers": {
    "earthquake-mcp-server": {
      "type": "stdio",
      "command": "bunx",
      "args": ["@cyanheads/earthquake-mcp-server@latest"],
      "env": {
        "MCP_TRANSPORT_TYPE": "stdio",
        "MCP_LOG_LEVEL": "info"
      }
    }
  }
}

Or with npx (no Bun required):

{
  "mcpServers": {
    "earthquake-mcp-server": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@cyanheads/earthquake-mcp-server@latest"],
      "env": {
        "MCP_TRANSPORT_TYPE": "stdio",
        "MCP_LOG_LEVEL": "info"
      }
    }
  }
}

Or with Docker:

{
  "mcpServers": {
    "earthquake-mcp-server": {
      "type": "stdio",
      "command": "docker",
      "args": ["run", "-i", "--rm", "-e", "MCP_TRANSPORT_TYPE=stdio", "ghcr.io/cyanheads/earthquake-mcp-server:latest"]
    }
  }
}

For Streamable HTTP, set the transport and start the server:

MCP_TRANSPORT_TYPE=http MCP_HTTP_PORT=3010 bun run start:http
# Server listens at http://localhost:3010/mcp

Prerequisites

  • Bun v1.3.0 or higher.
  • No API keys required — USGS and EMSC data is fully public.

Installation

  1. Clone the repository:
git clone https://github.com/cyanheads/earthquake-mcp-server.git
  1. Navigate into the directory:
cd earthquake-mcp-server
  1. Install dependencies:
bun install

Configuration

All configuration is validated at startup via Zod schemas in src/config/server-config.ts. Key environment variables:

VariableDescriptionDefault
MCP_TRANSPORT_TYPETransport: stdio or httpstdio
MCP_HTTP_PORTHTTP server port3010
MCP_HTTP_ENDPOINT_PATHHTTP endpoint path where the MCP server is mounted/mcp
MCP_PUBLIC_URLPublic origin override for TLS-terminating reverse-proxy deploymentsnone
MCP_SESSION_MODEHTTP session handling: stateful, stateless, or auto. The Docker image and .env.example ship stateless.auto (resolves to stateful)
MCP_AUTH_MODEAuthentication: none, jwt, or oauthnone
MCP_LOG_LEVELLog level (debug, info, warning, error, etc.)info
MCP_GC_PRESSURE_INTERVAL_MSOpt-in Bun-only forced-GC pressure loop (ms). Try 60000 if heap growth is observed under sustained HTTP load.0 (disabled)
LOGS_DIRDirectory for log files (Node.js only)<project-root>/logs
STORAGE_PROVIDER_TYPEStorage backend: in-memory, filesystem, supabase, cloudflare-kv/r2/d1in-memory
USGS_BASE_URLUSGS API base URL. Override for testing or mirroring.https://earthquake.usgs.gov
EMSC_BASE_URLEMSC API base URL. Override for testing or mirroring.https://www.seismicportal.eu
DEFAULT_LIMITDefault result limit for earthquake_search100
REQUEST_TIMEOUT_MSHTTP timeout in milliseconds for upstream API calls10000
OTEL_ENABLEDEnable OpenTelemetryfalse

Running the server

Local development

  • Build and run the production version:

    # One-time build
    bun run rebuild
    
    # Run the built server
    bun run start:http
    # or
    bun run start:stdio
    
  • Run checks and tests:

    bun run devcheck  # Lints, formats, type-checks, and more
    bun run test      # Runs the test suite
    

Project structure

DirectoryPurpose
src/mcp-server/toolsTool definitions (*.tool.ts). Four tools across USGS and EMSC.
src/mcp-server/resourcesResource definitions. Feed and event resources.
src/services/usgsUSGS ComCat service — GeoJSON feed fetcher and FDSN query API client.
src/services/emscEMSC SeismicPortal service — FDSN event search and count endpoints.
src/configServer-specific environment variable parsing and validation with Zod.
tests/Unit and integration tests, mirroring the src/ structure.

Development guide

See CLAUDE.md for development guidelines and architectural rules. The short version:

  • Handlers throw, framework catches — no try/catch in tool logic
  • Use ctx.log for logging, ctx.state for storage
  • Register new tools and resources in the createApp() arrays

Contributing

Issues and pull requests are welcome. Run checks and tests before submitting:

bun run devcheck
bun run test

License

This project is licensed under the Apache 2.0 License. See the LICENSE file for details.

Featured
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
inference shell
inference shell
create and run specialised agents in minutes
build now →
MCP-ready Email SendingMCP-ready Email Sending
MCP-ready Email Sending
Plug Mailtrap into your AI workflow and let it handle the email.
Connect Mailtrap MCP →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Capacitor - Shared memory for your team’s coding agents.
Capacitor - Shared memory for your team’s coding agents.
Make coding agent sessions - Searchable, Shareable, Vendor-neutral & Scored.
Try For Free →
CodeScene MCP ServerCodeScene MCP Server
CodeScene MCP Server
Your agent targets a perfect 10 Code Health score. Deterministic. Every commit.
Try For Free →
Give your AI the whole web as clean markdownGive your AI the whole web as clean markdown
Give your AI the whole web as clean markdown
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
belt - the only tool your agent needs
belt - the only tool your agent needs
belt cli automatically finds the best tools and skills for your agent. image, video, music, tts...
one prompt install →

Configuration

MCP_LOG_LEVELdefault: info

Sets the minimum log level for output (e.g., 'debug', 'info', 'warn').

MCP_HTTP_HOSTdefault: 127.0.0.1

The hostname for the HTTP server.

MCP_HTTP_PORTdefault: 3010

The port to run the HTTP server on.

MCP_HTTP_ENDPOINT_PATHdefault: /mcp

The endpoint path for the MCP server.

MCP_AUTH_MODEdefault: none

Authentication mode to use: 'none', 'jwt', or 'oauth'.

Categories
Search & Web CrawlingData & Analytics
Registryactive
Package@cyanheads/earthquake-mcp-server
TransportSTDIO, HTTP
UpdatedJun 4, 2026
View on GitHub

More from cyanheads

  • Eia Energy Mcp Server1
  • Eurostat Mcp Server1
  • Fcc Broadband Mcp Server1
  • Gdelt Mcp Server1
  • Onebusaway Mcp Server1
  • Openfda Mcp Server1
  • Openfec Mcp Server1
  • Openfoodfacts Mcp Server1
  • Openlibrary Mcp Server1
  • Openstates Mcp Server1
  • Orcid Mcp Server1
  • Reliefweb Mcp Server1
  • Smithsonian Mcp Server1
  • Wikidata Mcp Server1
  • Wsdot Mcp Server1
  • Noaa Cdo Mcp Server2
  • Pubchem Mcp Server9
  • Gbif Biodiversity Mcp Server1
  • Osv Advisory Mcp Server1
  • Pentest Mcp Server1
  • Socrata Mcp Server1
  • Who Gho Mcp Server1
  • Aviation Weather Mcp Server
  • Cyanheads Mcp Server

Related Search & Web Crawling MCP Servers

View all →
cyanheads avatar
Eurostat Mcp Server

cyanheads/eurostat-mcp-server

Search and query 8,933 Eurostat datasets — EU economy, demography, trade, and NUTS regional data.
1
cyanheads avatar
Gbif Biodiversity Mcp Server

cyanheads/gbif-biodiversity-mcp-server

Search GBIF species taxonomy, occurrence records, datasets, and publishers.
1
cyanheads avatar
Gbif Mcp Server

cyanheads/gbif-mcp-server

Search GBIF species taxonomy, occurrence records, datasets, and publishers.
1
cyanheads avatar
Gdelt Mcp Server

cyanheads/gdelt-mcp-server

Search and analyze global news coverage and US TV transcripts via the GDELT Project APIs.
1
cyanheads avatar
Guardian Mcp Server

cyanheads/guardian-mcp-server

Guardian Open Platform — search and retrieve full article text from The Guardian archive.
1
cyanheads avatar
Nhtsa Vehicle Safety Mcp Server

cyanheads/nhtsa-vehicle-safety-mcp-server

Decode VINs, search recalls, complaints, crash ratings, and investigations.
1