# Space Weather, Rocket Launch & Earthquake MCP Server (`mrbridge/space-earth-mcp`) Actor

MCP server for space and Earth data in Claude, ChatGPT, Cursor and VS Code. 18 read-only tools cover rocket launches, people in space, the ISS position, satellite orbits, asteroids, space weather, aurora forecasts and earthquakes. Launches come from The Space Devs, earthquakes from the USGS.

- **URL**: https://apify.com/mrbridge/space-earth-mcp.md
- **Developed by:** [MrBridge](https://apify.com/mrbridge) (community)
- **Categories:** MCP servers, AI, Education
- **Stats:** 1 total users, 0 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 read operations

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## 🛰️ Space Weather, Rocket Launch & Earthquake MCP Server

Space Weather, Rocket Launch & Earthquake MCP Server is an MCP server that gives Claude, ChatGPT, Cursor, VS Code and other MCP clients public space and Earth science data from ten sources. Its 18 read-only tools cover rocket launches and the people in space, the ISS position and satellite orbits, asteroid approaches and impact risk, space weather and aurora forecasts, earthquakes and natural events, plus astronomy pictures and a space media library. Every answer names its source and carries the credits that source asks for.

Ask Claude "What are my chances of seeing the northern lights from Tromsø tonight?" It calls `space_get_aurora_forecast` with latitude 69.65 and longitude 18.96, and answers with the aurora probability at the nearest forecast grid point for the next hour or so, the highest value within about 500 km, the current Kp index and the Kp forecast for the next 24 hours. Clouds and daylight are not part of the forecast, so check the sky before you drive out.

### What this server exposes

This server gives an AI client 18 read-only tools over public space and Earth science data. From NASA it reads the Astronomy Picture of the Day, the NASA Image and Video Library, near-Earth asteroid approaches (NeoWs) and the natural events tracked by EONET. From NASA/JPL it reads the Small-Body Database, the close-approach tables and the Sentry impact risk list. NOAA's Space Weather Prediction Center gives the current space weather, its alerts and the aurora forecast. The USGS catalog covers earthquakes, Launch Library 2 from The Space Devs covers launches and the people in space, CelesTrak gives satellite orbits, whole constellations and the elements from which the server computes where the ISS is, and Open Notify adds, when its crew list names the same person, the spacecraft they are on. No account is needed: asteroid approaches use the Actor owner's NASA API key. Every answer names its source and carries the rights notices that source asks for. This server is not affiliated with or endorsed by NASA, JPL, NOAA, the USGS, The Space Devs, CelesTrak or Open Notify.

### Tools

| Tool | What it answers | Billed event |
|---|---|---|
| `space_get_astronomy_picture` | Get the Astronomy Picture of the Day | `tool-read` |
| `space_search_media_library` | Search the space image and video library | `tool-read` |
| `space_get_media_files` | Get the files of a media library item | `tool-read` |
| `space_list_asteroid_approaches` | List asteroid close approaches to Earth | `tool-read` |
| `space_get_asteroid` | Get an asteroid or comet profile | `tool-read` |
| `space_get_impact_risk` | Get asteroid impact risk (Sentry) | `tool-read` |
| `space_get_space_weather` | Get current space weather | `tool-action` |
| `space_list_space_weather_alerts` | List space weather alerts and warnings | `tool-read` |
| `space_get_aurora_forecast` | Get the aurora forecast for a place | `tool-action` |
| `space_list_launches` | List upcoming or past rocket launches | `tool-read` |
| `space_get_launch` | Get one rocket launch in detail | `tool-read` |
| `space_list_people_in_space` | List the people in space right now | `tool-read` |
| `space_get_iss_position` | Get the current ISS position | `tool-read` |
| `space_get_satellite_orbit` | Get the orbit of a satellite | `tool-read` |
| `space_list_satellite_group` | List the satellites of a group or constellation | `tool-read` |
| `space_search_earthquakes` | Search recent or past earthquakes | `tool-read` |
| `space_get_earthquake` | Get one earthquake in detail | `tool-read` |
| `space_list_natural_events` | List natural events tracked by EONET | `tool-read` |

#### `space_get_astronomy_picture`: Get the Astronomy Picture of the Day

Use this when you need the Astronomy Picture of the Day (APOD): the latest one, the one of a given date, or every picture of a short date range, with its explanation, image link, credit and copyright. Each picture carries a rights notice, because many APOD images are copyrighted by their authors. Do not use for searching agency photo archives by subject (use space_search_media_library). Parameters: `date` (optional YYYY-MM-DD from 1995-06-16, e.g. "2026-09-11"), or `start_date` and `end_date` together (YYYY-MM-DD, 25 days at most). Omit all three for the latest picture. `response_format`: "concise" trims explanations in ranges, "detailed" adds alt text and source links.

| Parameter | Type | Required | Example |
|---|---|---|---|
| `date` | string | no | `"2026-09-11"` |
| `start_date` | string | no | `"2026-09-01"` |
| `end_date` | string | no | `"2026-09-07"` |
| `response_format` | "concise" or "detailed" | no | `"concise"` |

Returns `{ mode, pictures[], count, notes[], attribution }`. Upstream: NASA APOD. Cache: daily (1 day). Read-only.

#### `space_search_media_library`: Search the space image and video library

Use this when you need photos, videos or audio from the NASA Image and Video Library by subject, mission, place or person, for example "apollo 11" or "hubble nebula". Returns media ids, titles, dates, NASA centers, credits and preview links, page by page. Get the downloadable files of one result with space_get_media_files. Do not use for the Astronomy Picture of the Day (use space_get_astronomy_picture). Parameters: `query` (2 to 200 characters, e.g. "apollo 11 moon landing"), `media_type` (optional: image, video, audio), `year_start` and `year_end` (optional YYYY, e.g. 1969), `center` (optional NASA center code, e.g. "JSC", "KSC", "GSFC", "JPL"), `limit` (1 to 50, default 10), `offset` (default 0), `response_format` ("detailed" adds keywords and location).

| Parameter | Type | Required | Example |
|---|---|---|---|
| `query` | string | yes | `"apollo 11 moon landing"` |
| `media_type` | "image" or "video" or "audio" | no | `"image"` |
| `year_start` | integer | no | `1969` |
| `year_end` | integer | no | `1972` |
| `center` | string | no | `"JSC"` |
| `limit` | integer | no | `10` |
| `offset` | integer | no | `0` |
| `response_format` | "concise" or "detailed" | no | `"concise"` |

Returns `{ query, total_results, items[], pagination, attribution }`. Upstream: NASA Image Library. Cache: daily (1 day). Read-only.

#### `space_get_media_files`: Get the files of a media library item

Use this when you have a media id from space_search_media_library and need its downloadable files (original, large, medium, small, thumbnail, captions) with the full title, description, date, NASA center and credits. The answer carries the NASA media usage notice: factual use without implied endorsement, care with identifiable persons and third-party credits. Do not use for searching (use space_search_media_library) or for the Astronomy Picture of the Day. Parameters: `nasa_id` (required, e.g. "as11-40-5874"), `response_format` ("concise" lists the main renditions, "detailed" every file and the full description).

| Parameter | Type | Required | Example |
|---|---|---|---|
| `nasa_id` | string | yes | `"as11-40-5874"` |
| `response_format` | "concise" or "detailed" | no | `"concise"` |

Returns `{ nasa_id, title, media_type, date_created, center, description, description_trimmed, keywords[], photographer, secondary_creator, location, page_url, files[], file_count, notes[], attribution }`. Upstream: NASA Image Library. Cache: daily (1 day). Read-only.

#### `space_list_asteroid_approaches`: List asteroid close approaches to Earth

Use this when you need the asteroids and comets passing close to Earth in a window of up to 7 days: approach time, miss distance in km and lunar distances, speed, estimated size and the potentially hazardous flag. Source: NASA NeoWs, with JPL close-approach data as the fallback when NeoWs is unavailable (the answer names its source). Do not use for one object in depth (use space_get_asteroid) or for impact probabilities (use space_get_impact_risk). Parameters: `start_date` (optional YYYY-MM-DD, default today UTC, e.g. "2026-10-01"), `days` (1 to 7, default 7), `max_distance_ld` (optional, in lunar distances, e.g. 10), `hazardous_only` (default false), `sort` ("date", "distance" or "size", default "date"), `limit` (1 to 50, default 20), `offset` (default 0), `response_format` ("detailed" adds absolute magnitude, Sentry flag and links).

| Parameter | Type | Required | Example |
|---|---|---|---|
| `start_date` | string | no | `"2026-10-01"` |
| `days` | integer | no | `7` |
| `max_distance_ld` | number | no | `10` |
| `hazardous_only` | boolean | no | `false` |
| `sort` | "date" or "distance" or "size" | no | `"distance"` |
| `limit` | integer | no | `20` |
| `offset` | integer | no | `0` |
| `response_format` | "concise" or "detailed" | no | `"concise"` |

Returns `{ window, source, approaches[], pagination, notes[], attribution }`. Upstream: NASA NeoWs, JPL SSD/CNEOS API. Cache: daily (1 day). Read-only.

#### `space_get_asteroid`: Get an asteroid or comet profile

Use this when you need the profile of one asteroid or comet from the JPL Small-Body Database: identity, near-Earth and potentially hazardous flags, orbit class, size, key orbital elements, Earth minimum orbit intersection distance and the next close approaches to Earth. Do not use for the list of objects passing this week (use space_list_asteroid_approaches) or for impact probabilities (use space_get_impact_risk). Parameters: `asteroid` (required: a name "Apophis", an IAU number "99942", a provisional designation "2024 YR4", a comet designation "1P", or an SPK-ID "2099942"), `response_format` ("detailed" adds every orbital element with its uncertainty, every physical parameter and past approaches).

| Parameter | Type | Required | Example |
|---|---|---|---|
| `asteroid` | string | yes | `"Apophis"` |
| `response_format` | "concise" or "detailed" | no | `"concise"` |

Returns `{ name, designation, spk_id, kind, near_earth_object, potentially_hazardous, orbit_class, absolute_magnitude_h, diameter_km, diameter_note, albedo, rotation_period_h, orbit, observations, next_earth_approaches[], past_earth_approaches[], elements[], physical_parameters[], sbdb_url, notes[], attribution }`. Upstream: JPL SSD/CNEOS API. Cache: daily (1 day). Read-only.

#### `space_get_impact_risk`: Get asteroid impact risk (Sentry)

Use this when you need Earth impact risk assessments from the JPL Sentry system: the list of monitored objects ranked by the Palermo scale, or the potential impact dates and probabilities of one object. Probabilities come with the Sentry caveat that they can be inaccurate by a factor of a few. Do not use for this week's close approaches (use space_list_asteroid_approaches) or for orbits and sizes (use space_get_asteroid). Parameters: `asteroid` (optional designation or name, e.g. "2024 YR4" or "Apophis", omit for the ranked list), `min_probability` (optional, e.g. 0.000001), `min_palermo` (optional, e.g. -6), `limit` (1 to 50, default 10), `offset` (default 0), `response_format` ("detailed" adds observation arcs and velocities).

| Parameter | Type | Required | Example |
|---|---|---|---|
| `asteroid` | string | no | `"2024 YR4"` |
| `min_probability` | number | no | `0.000001` |
| `min_palermo` | number | no | `-6` |
| `limit` | integer | no | `10` |
| `offset` | integer | no | `0` |
| `response_format` | "concise" or "detailed" | no | `"concise"` |

Returns `{ mode, objects[], object, potential_impacts[], pagination, notes[], attribution }`. Upstream: JPL SSD/CNEOS API. Cache: daily (1 day). Read-only.

#### `space_get_space_weather`: Get current space weather

Use this when you need the current space weather from NOAA SWPC: the NOAA scales for radio blackouts (R), solar radiation storms (S) and geomagnetic storms (G), the 3-day outlook, the current estimated Kp index, and the solar wind speed, density and magnetic field (Bz, Bt) at L1. Do not use for issued alerts and warnings (use space_list_space_weather_alerts) or for aurora chances at a place (use space_get_aurora_forecast). Parameter: `response_format` ("detailed" adds the previous day's maximum scales and the last hour of Kp estimates).

| Parameter | Type | Required | Example |
|---|---|---|---|
| `response_format` | "concise" or "detailed" | no | `"concise"` |

Returns `{ observed_at, scales_now, scales_previous_day, outlook[], kp, kp_last_hour[], solar_wind, summary, notes[], attribution }`. Upstream: NOAA SWPC. Cache: intraday (5 minutes). Read-only.

#### `space_list_space_weather_alerts`: List space weather alerts and warnings

Use this when you need the alerts, warnings, watches and summaries issued by NOAA SWPC (geomagnetic storms, solar flares and radio blackouts, proton events, radio bursts), newest first, with their headline and text. Do not use for the current conditions and the outlook (use space_get_space_weather). Parameters: `type` ("all", "alert", "warning", "watch" or "summary", default "all"), `hours` (look-back window, 1 to 720, default 72), `limit` (1 to 50, default 10), `offset` (default 0), `response_format` ("concise" shortens each message to 300 characters, "detailed" to 1,000).

| Parameter | Type | Required | Example |
|---|---|---|---|
| `type` | "all" or "alert" or "warning" or "watch" or "summary" | no | `"warning"` |
| `hours` | integer | no | `24` |
| `limit` | integer | no | `10` |
| `offset` | integer | no | `0` |
| `response_format` | "concise" or "detailed" | no | `"concise"` |

Returns `{ alerts[], pagination, attribution }`. Upstream: NOAA SWPC. Cache: intraday (5 minutes). Read-only.

#### `space_get_aurora_forecast`: Get the aurora forecast for a place

Use this when you need the chance of seeing the aurora (northern or southern lights) from a place in the next hour or so: the NOAA SWPC OVATION probability at the nearest grid point and the best value within about 500 km, the current Kp and the Kp forecast for the next 24 hours. The aurora is visible only in darkness under clear skies, which this tool does not check. Do not use for global conditions without a place (use space_get_space_weather). Parameters: `latitude` (-90 to 90, e.g. 69.65), `longitude` (-180 to 180, e.g. 18.96), `response_format` ("detailed" adds the 3-day Kp forecast).

| Parameter | Type | Required | Example |
|---|---|---|---|
| `latitude` | number | yes | `69.65` |
| `longitude` | number | yes | `18.96` |
| `response_format` | "concise" or "detailed" | no | `"concise"` |

Returns `{ location, observation_time, forecast_time, aurora_probability_percent, chance, best_nearby, current_kp, kp_forecast[], notes[], attribution }`. Upstream: NOAA SWPC. Cache: intraday (5 minutes). Read-only.

#### `space_list_launches`: List upcoming or past rocket launches

Use this when you need the rocket launch schedule or recent launch results from Launch Library 2 (The Space Devs): orbital launches and notable suborbital ones, with status, NET time, provider, rocket, mission, orbit, pad and country. Upcoming launches come from the next 100 launches, past launches from the last 100 unless `search` asks for older ones. Do not use for one launch in depth, crew or webcasts (use space_get_launch with an id from this list). Parameters: `when` ("upcoming" or "previous", default "upcoming"), `search` (optional words matched in provider, rocket, mission, pad, country, e.g. "SpaceX Starlink" or "Ariane"), `limit` (1 to 50, default 10), `offset` (default 0), `response_format` ("detailed" adds the launch window, probability, webcast flag and image).

| Parameter | Type | Required | Example |
|---|---|---|---|
| `when` | "upcoming" or "previous" | no | `"upcoming"` |
| `search` | string | no | `"SpaceX Starlink"` |
| `limit` | integer | no | `10` |
| `offset` | integer | no | `0` |
| `response_format` | "concise" or "detailed" | no | `"concise"` |

Returns `{ when, launches[], pagination, notes[], attribution }`. Upstream: Launch Library 2. Cache: hourly (1 hour). Read-only.

#### `space_get_launch`: Get one rocket launch in detail

Use this when you have a launch id from space_list_launches and need the details of that launch: status and its description, NET time and window, provider, rocket, mission and orbit, pad with coordinates, crew, and official webcasts. Do not use for browsing the schedule (use space_list_launches). Parameters: `launch_id` (required UUID from space_list_launches, e.g. "e3df2ecd-c239-472f-95e4-2b89b4f75800"), `response_format` ("detailed" adds info links, booster landings and programs).

| Parameter | Type | Required | Example |
|---|---|---|---|
| `launch_id` | string | yes | `"e3df2ecd-c239-472f-95e4-2b89b4f75800"` |
| `response_format` | "concise" or "detailed" | no | `"concise"` |

Returns `{ launch, crew[], webcasts[], info_links[], booster_landings[], programs[], notes[], attribution }`. Upstream: Launch Library 2. Cache: hourly (1 hour). Read-only.

#### `space_list_people_in_space`: List the people in space right now

Use this when you need how many people are in space right now, who they are, their agency and nationality, and on which spacecraft or station when it is known. Source: the Launch Library 2 astronaut list (The Space Devs), with the spacecraft taken from Open Notify for the people its hand-maintained list also names, and Open Notify alone as the fallback. The answer names its source. Do not use for the ISS position (use space_get_iss_position) or for upcoming crewed launches (use space_list_launches). Parameter: `response_format` ("concise" or "detailed").

| Parameter | Type | Required | Example |
|---|---|---|---|
| `response_format` | "concise" or "detailed" | no | `"concise"` |

Returns `{ count, people[], by_craft[], source, notes[], attribution }`. Upstream: Launch Library 2, Open Notify. Cache: hourly (1 hour). Read-only.

#### `space_get_iss_position`: Get the current ISS position

Use this when you need where the International Space Station is now: the latitude and longitude of the point below it, with the time of that position. The position is computed for the request time with SGP4 from CelesTrak orbital elements, the supplemental set fitted to NASA's ISS trajectory first, then the general set, accurate to a few km. Open Notify is the last resort. The answer names its source and the age of the elements. With an observer position, the answer adds the great-circle distance from the observer to that point. Do not use for other satellites or orbital elements (use space_get_satellite_orbit) or for the crew (use space_list_people_in_space). Parameters: `observer_latitude` and `observer_longitude` (optional pair in decimal degrees, e.g. 48.85 and 2.35), `response_format` ("concise" or "detailed").

| Parameter | Type | Required | Example |
|---|---|---|---|
| `observer_latitude` | number | no | `48.85` |
| `observer_longitude` | number | no | `2.35` |
| `response_format` | "concise" or "detailed" | no | `"concise"` |

Returns `{ latitude, longitude, position_time, age_seconds, observer, source, elements_epoch, elements_age_hours, notes[], attribution }`. Upstream: CelesTrak, Open Notify. Cache: daily (1 day). Read-only.

#### `space_get_satellite_orbit`: Get the orbit of a satellite

Use this when you need the current orbital elements of a satellite or tracked object by NORAD catalogue number or name, from CelesTrak GP data: epoch and age of the elements, orbit class, period, inclination, eccentricity, apogee and perigee. Apogee, perigee and period are computed from the mean elements. No live position is computed (use space_get_iss_position for the ISS). Do not use for a whole constellation or group (use space_list_satellite_group). Parameters: `satellite` (required NORAD number or name, e.g. "25544", "HST" or "ISS (ZARYA)"), `limit` (1 to 10 name matches, default 3), `response_format` ("detailed" adds RAAN, argument of perigee, mean anomaly, BSTAR and revolution number).

| Parameter | Type | Required | Example |
|---|---|---|---|
| `satellite` | string | yes | `"25544"` |
| `limit` | integer | no | `3` |
| `response_format` | "concise" or "detailed" | no | `"concise"` |

Returns `{ query, matches_total, satellites[], dataset, notes[], attribution }`. Upstream: CelesTrak. Cache: daily (1 day). Read-only.

#### `space_list_satellite_group`: List the satellites of a group or constellation

Use this when you need the satellites of a CelesTrak group, for example a constellation (Starlink, OneWeb, Kuiper), a navigation system (GPS, Galileo, Beidou), space stations, weather satellites or a debris cloud: how many objects it holds, how they split by orbit class, and a page of members with period, inclination, apogee and perigee. Do not use for one satellite in depth (use space_get_satellite_orbit). Parameters: `group` (required, one of stations, visual, active, last-30-days, weather, resource, sarsat, geo, intelsat, ses, eutelsat, starlink and more, e.g. "starlink"), `search` (optional name filter, e.g. "GALILEO"), `sort` ("name", "norad_id" or "altitude", default "name"), `limit` (1 to 100, default 25), `offset` (default 0), `response_format` ("detailed" adds RAAN, argument of perigee, mean anomaly and BSTAR).

| Parameter | Type | Required | Example |
|---|---|---|---|
| `group` | "stations" or "visual" or "active" or "last-30-days" or "weather" or "resource" or "sarsat" or "geo" or "intelsat" or "ses" or "eutelsat" or "starlink" or "oneweb" or "kuiper" or "qianfan" or "iridium-NEXT" or "globalstar" or "orbcomm" or "amateur" or "gnss" or "gps-ops" or "glo-ops" or "galileo" or "beidou" or "sbas" or "science" or "geodetic" or "cubesat" or "military" or "fengyun-1c-debris" or "iridium-33-debris" or "cosmos-2251-debris" | yes | `"starlink"` |
| `search` | string | no | `"GALILEO"` |
| `sort` | "name" or "norad_id" or "altitude" | no | `"altitude"` |
| `limit` | integer | no | `25` |
| `offset` | integer | no | `0` |
| `response_format` | "concise" or "detailed" | no | `"concise"` |

Returns `{ group, total_in_group, by_orbit_class[], satellites[], pagination, notes[], attribution }`. Upstream: CelesTrak. Cache: daily (1 day). Read-only.

#### `space_search_earthquakes`: Search recent or past earthquakes

Use this when you need earthquakes from the USGS catalog: the latest hour, day, week or month, or a date range, filtered by minimum magnitude, significance or distance from a point, with magnitude, place, time, depth, PAGER alert and tsunami flag. Recent periods use the USGS real-time feeds, updated every minute. Do not use for one event in depth (use space_get_earthquake) or for other natural hazards (use space_list_natural_events). Parameters: `period` ("hour", "day", "week" or "month", default "day"), or `start_date` (YYYY-MM-DD) with optional `end_date`, `min_magnitude` (-1 to 10, default 2.5), `significant_only` (default false), `latitude`, `longitude` and `radius_km` (optional point, radius 1 to 20,000 km, default 300, e.g. 35.68, 139.69, 500), `order` ("time" or "magnitude", default "time"), `limit` (1 to 100, default 20), `offset`, `response_format` ("detailed" adds felt reports, intensities, significance and status).

| Parameter | Type | Required | Example |
|---|---|---|---|
| `period` | "hour" or "day" or "week" or "month" | no | `"week"` |
| `start_date` | string | no | `"2026-01-01"` |
| `end_date` | string | no | `"2026-01-31"` |
| `min_magnitude` | number | no | `5` |
| `significant_only` | boolean | no | `false` |
| `latitude` | number | no | `35.68` |
| `longitude` | number | no | `139.69` |
| `radius_km` | number | no | `500` |
| `order` | "time" or "magnitude" | no | `"magnitude"` |
| `limit` | integer | no | `20` |
| `offset` | integer | no | `0` |
| `response_format` | "concise" or "detailed" | no | `"concise"` |

Returns `{ source, window, earthquakes[], pagination, notes[], attribution }`. Upstream: USGS Earthquakes. Cache: intraday (5 minutes). Read-only.

#### `space_get_earthquake`: Get one earthquake in detail

Use this when you have a USGS event id (from space_search_earthquakes) and need the details of that earthquake: magnitude and type, place, time, depth, PAGER impact alert, ShakeMap maximum intensity, Did You Feel It reports, tsunami flag, review status and the list of scientific products. Do not use for searching events (use space_search_earthquakes). Parameters: `event_id` (required, e.g. "us7000abcd"), `response_format` ("detailed" adds origin quality and the moment tensor summary).

| Parameter | Type | Required | Example |
|---|---|---|---|
| `event_id` | string | yes | `"us7000abcd"` |
| `response_format` | "concise" or "detailed" | no | `"concise"` |

Returns `{ event, title, updated, pager_alert_level, shakemap_max_mmi, dyfi, review_status, product_types[], origin_quality, moment_tensor, event_page_url, notes[], attribution }`. Upstream: USGS Earthquakes. Cache: intraday (5 minutes). Read-only.

#### `space_list_natural_events`: List natural events tracked by EONET

Use this when you need natural events tracked by the NASA Earth Observatory Natural Event Tracker: wildfires, severe storms, volcanoes, floods, sea and lake ice, dust, drought and more, open or closed, worldwide or in a bounding box, with their latest position and sources. Positions are approximations for general information, not official extents. Do not use for earthquakes with magnitudes and alerts (use space_search_earthquakes). Parameters: `category` (optional: drought, dustHaze, earthquakes, floods, landslides, manmade, seaLakeIce, severeStorms, snow, tempExtremes, volcanoes, waterColor, wildfires), `status` ("open", "closed" or "all", default "open"), `days` (1 to 365, default 30), `min_latitude`, `max_latitude`, `min_longitude`, `max_longitude` (optional box, all four together, e.g. 32, 42, -125, -114 for California), `limit` (1 to 50, default 20), `offset`, `response_format` ("detailed" adds the last 10 track points, description and link, 25 events per page at most).

| Parameter | Type | Required | Example |
|---|---|---|---|
| `category` | "drought" or "dustHaze" or "earthquakes" or "floods" or "landslides" or "manmade" or "seaLakeIce" or "severeStorms" or "snow" or "tempExtremes" or "volcanoes" or "waterColor" or "wildfires" | no | `"wildfires"` |
| `status` | "open" or "closed" or "all" | no | `"open"` |
| `days` | integer | no | `30` |
| `min_latitude` | number | no | `32` |
| `max_latitude` | number | no | `42` |
| `min_longitude` | number | no | `-125` |
| `max_longitude` | number | no | `-114` |
| `limit` | integer | no | `20` |
| `offset` | integer | no | `0` |
| `response_format` | "concise" or "detailed" | no | `"concise"` |

Returns `{ events[], by_category[], pagination, notes[], attribution }`. Upstream: NASA EONET. Cache: intraday (5 minutes). Read-only.

### Connect

Endpoint (Streamable HTTP): `https://mrbridge--space-earth-mcp.apify.actor/mcp`

Every client authenticates with your Apify API token, found in [Apify Console > Settings > API & Integrations](https://console.apify.com/settings/integrations?fpr=mrbridge). Clients that support custom headers send it as `Authorization: Bearer <token>`. The others use the `?token=` URL variant, which must be treated as a secret: keep it out of commits, screenshots and shared logs.

#### Claude Code

```bash
claude mcp add --transport http space-earth "https://mrbridge--space-earth-mcp.apify.actor/mcp" --header "Authorization: Bearer ${APIFY_TOKEN}"
```

#### Cursor, VS Code and other JSON configurations

```json
{
  "mcpServers": {
    "space-earth": {
      "type": "http",
      "url": "https://mrbridge--space-earth-mcp.apify.actor/mcp",
      "headers": {
        "Authorization": "Bearer ${APIFY_TOKEN}"
      }
    }
  }
}
```

#### claude.ai and Claude Desktop

Add a custom connector with the URL `https://mrbridge--space-earth-mcp.apify.actor/mcp?token=YOUR_APIFY_TOKEN` and no authentication. Prefilled link (replace the token placeholder before saving): [add Space Weather, Rocket Launch & Earthquake MCP Server to Claude](https://claude.ai/customize/connectors?modal=add-custom-connector\&connectorName=Space%20Weather%2C%20Rocket%20Launch%20%26%20Earthquake%20MCP%20Server\&connectorUrl=https%3A%2F%2Fmrbridge--space-earth-mcp.apify.actor%2Fmcp%3Ftoken%3DYOUR_APIFY_TOKEN).

#### ChatGPT (developer mode)

Settings > Apps > Create, URL `https://mrbridge--space-earth-mcp.apify.actor/mcp?token=YOUR_APIFY_TOKEN`, authentication "No authentication". ChatGPT snapshots the tool list: after a server update, an admin has to click Refresh on the app.

#### OpenAI Responses API

```json
{
  "type": "mcp",
  "server_label": "space_earth",
  "server_url": "https://mrbridge--space-earth-mcp.apify.actor/mcp",
  "headers": {
    "Authorization": "Bearer YOUR_APIFY_TOKEN"
  },
  "require_approval": "never"
}
```

Add `allowed_tools` to restrict the tool list. Tool calls must finish within about 60 seconds on this API, and every tool of this server answers in under 50 seconds.

#### Anthropic Messages API

```json
{
  "mcp_servers": [
    {
      "type": "url",
      "url": "https://mrbridge--space-earth-mcp.apify.actor/mcp",
      "name": "space-earth",
      "authorization_token": "YOUR_APIFY_TOKEN"
    }
  ],
  "tools": [
    {
      "type": "mcp_toolset",
      "mcp_server_name": "space-earth"
    }
  ]
}
```

Send the beta header `anthropic-beta: mcp-client-2025-11-20`.

#### One-click OAuth alternative

`https://mcp.apify.com/?tools=mrbridge/space-earth-mcp` connects through Apify OAuth without a token. It exposes the Actor as a single tool rather than the granular tools listed above.

#### Cost control

Each Standby run has a spending limit (`maxTotalChargeUsd`). When a call uses the last of it, the result is still returned, and later calls in that run answer `CHARGE_LIMIT_REACHED` until the limit is raised.

### Why use Space Weather, Rocket Launch & Earthquake MCP Server?

Space and Earth data is spread over many public services, each with its own format and its own quota. This server reads ten of them and gives your assistant one set of tools with consistent answers.

- **One connection, ten sources.** Launches and astronauts, the ISS and satellite orbits, asteroids and impact risk, space weather and aurora, earthquakes and natural events, pictures and media.
- **Fallbacks built in.** When the main asteroid feed is unavailable, close approaches come from JPL close-approach data, and the answer says which source answered.
- **An ISS position for the moment you ask.** The server computes it with the standard SGP4 model from CelesTrak orbital elements, accurate to a few km, and returns the age of the elements with it.
- **Lists that lead somewhere.** Launch, earthquake, asteroid and media lists return the id to pass to the matching detail tool.
- **Credits you can keep.** Each answer carries an attribution block that names the provider and links its terms, plus a rights notice where the source has one.
- 🔌 **Model Context Protocol over Streamable HTTP** at a single endpoint, `https://mrbridge--space-earth-mcp.apify.actor/mcp`, for Claude, ChatGPT, Cursor, VS Code and the OpenAI and Anthropic APIs.
- ⚡ **Apify Standby mode.** The first call after a quiet spell starts the server in about 5 seconds (measured on the platform on 2026-10-05). Later calls skip that wait until the server has been idle for 5 minutes.

### Pricing (Pay-per-Event)

| Event | Charged when | Price |
|---|---|---|
| `apify-actor-start` | run start (platform default) | see the Store page |
| `tool-read` (primary event) | each successful read tool call | see the Store page |
| `tool-action` | each successful call of a detailed or computed tool | see the Store page |

Never charged: initialize, tools/list, pings, readiness probes, and any call that ends in an error (invalid input, not found, upstream failure, timeout, spending limit).

Platform usage comes on top of these events. This server runs in Apify Standby mode, and you also pay the platform usage of your own Standby run, billed to your Apify account like any other run: the memory set for the Standby run, for as long as the server is up, idle time included, until the run stops at its idle timeout.
The [Apify pay-per-event documentation](https://docs.apify.com/actors/publishing/monetize/pay-per-event#platform-usage-costs) says so: "For runs in Standby mode, users always pay the platform usage costs in addition to the event charges."

### Limits, caveats and attribution

- **Attribution.** Every answer carries an `attribution` block with the provider, the credit line, the terms URL and any notice. Keep it when you reuse the data. Values this server computes (apogee and perigee, distances from a point, lunar-distance conversions, the aurora chance label) are labelled as such.
- **Images and media.** The server returns links and credit lines, never image files. Many Astronomy Picture of the Day images belong to their authors: public or commercial use needs the permission of the owner named in the credit line, and neither NASA nor APOD can grant it. NASA library media may be used in a factual way that does not suggest NASA endorsement. Media that show an identifiable person, or that are credited to someone else, may need extra permission for commercial use.
- **Asteroids.** Close approaches come from NASA NeoWs, called with the Actor owner's NASA API key, which allows 1,000 calls per hour (the server keeps to half). When NeoWs refuses the call or the quota runs out, the list comes from JPL close-approach data instead, and the answer says so. Sentry impact probabilities rest on assumptions that are hard to verify, and JPL warns they can be off by a factor of a few, sometimes by ten or more.
- **Launches.** The Space Devs allow 15 calls per hour per IP address without a paid key. Upcoming launches come from one list of the next 100, cached for an hour, so most questions cost no call at all, but launch times can be up to an hour old, and a few hours old when the budget is spent or the service fails. The data is curated by hand and The Space Devs do not guarantee its accuracy.
- **Satellites.** CelesTrak asks for one download per update (every 2 hours) and for clients to stop after any error. This server caches each CelesTrak file for a day, never retries a failed download, spaces its downloads by a few seconds, and pauses CelesTrak for 2 hours after an error, serving cached data in the meantime. A lookup by NORAD number downloads only that object when the full table of active satellites is not cached yet. Orbital elements are mean elements for the SGP4 model, with their epoch: no live position is computed, except for the ISS (`space_get_iss_position`, computed with SGP4, see below).
- **Space weather.** Data from NOAA SWPC is public domain U.S. government material, reshaped by this server, and is not official government material. After a failed call, the server leaves SWPC alone for a minute, as the NWS asks. The aurora probability does not account for clouds, daylight or moonlight.
- **Earthquakes and natural events.** The past hour, day and week come from the USGS real-time feeds, updated every minute. Date ranges use the USGS catalog query and return at most 500 events per search. EONET event positions are approximations for general information, not official extents.
- **People in space and the ISS.** The people in space come from the Launch Library 2 astronaut list, refreshed every hour. Open Notify, a small open-source project reached over plain HTTP, adds the spacecraft for the names its own crew list shares. That list is updated by hand and was two years out of date on 5 October 2026, so it answers alone only when Launch Library 2 cannot, and the answer then says so. The ISS position is computed for the moment you ask, with the standard SGP4 model (the open-source satellite.js library), from CelesTrak elements fitted to NASA's ISS trajectory, or from the general CelesTrak elements when those are missing. Expect an error of a few km. Open Notify answers only when CelesTrak cannot, and the answer names its source and the age of the elements.
- **Freshness.** The latest earthquakes are cached for 30 seconds, space weather, alerts and natural events for 5 minutes, upcoming launches, launch details and the astronauts in space for an hour, and pictures, asteroids, media, satellites, the ISS elements and past launches for a day. Sources with strict quotas (NASA NeoWs, JPL, Launch Library 2, CelesTrak, NOAA SWPC, Open Notify) are never retried within a call and are left alone for a while after a failure, with cached data served meanwhile.

### Data terms

By using this server you agree to use the data it returns in line with the terms of each source, and to keep the credit lines when you share it.

- NASA: [Images and Media Usage Guidelines](https://www.nasa.gov/nasa-brand-center/images-and-media/) and [Advertising Guidelines](https://www.nasa.gov/nasa-brand-center/advertising-guidelines/). Do not suggest NASA endorsement, do not use the NASA insignia, logotype or seal, and do not put "NASA" in a product or brand name.
- Astronomy Picture of the Day: [image permissions](https://apod.nasa.gov/apod/lib/about_apod.html). Ask the copyright owner named in the credit line before any public or commercial use of an image.
- NASA/JPL SSD and CNEOS: [fair use policy](https://ssd-api.jpl.nasa.gov/).
- NOAA SWPC: [NWS disclaimer](https://www.weather.gov/disclaimer). Do not present reshaped data as official government material or suggest NOAA endorsement.
- USGS: [copyrights and credits](https://www.usgs.gov/information-policies-and-instructions/copyrights-and-credits). Credit the U.S. Geological Survey.
- The Space Devs, Launch Library 2: [terms of use](https://github.com/TheSpaceDevs/Tutorials/blob/main/faqs/faq_TSD.md#terms-of-use). Credit The Space Devs, and do not pass the data on without adding value to it.
- CelesTrak: [usage policy](https://celestrak.org/usage-policy.php). Cite CelesTrak and the USSPACECOM data distributed through Space-Track.org. The ISS elements of the supplemental set come from NASA trajectory data ([Spot the Station](https://www.nasa.gov/spot-the-station/)).
- Open Notify: [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/). Credit Open Notify (http://open-notify.org).

The fee for this server pays for the service (hosting, caching, normalisation), not for a licence on the data.

### Use cases

**Aurora trips.** "Is a geomagnetic storm watch out this week, and what does the Kp forecast say?" The assistant reads the issued watches with `space_list_space_weather_alerts` (type `watch`) and the 3-day outlook with `space_get_space_weather`, then checks your destination with `space_get_aurora_forecast`.

**Launch calendars.** "Which SpaceX launches are coming up, and which ones have a webcast?" `space_list_launches` searches the next 100 launches by provider or mission, and `space_get_launch` adds the crew and the webcast links of one launch.

**Classrooms and curious kids.** "Who is in space right now, and where is the ISS compared with Paris?" `space_list_people_in_space` gives each name with its agency, and `space_get_iss_position` with the observer point 48.85, 2.35 returns the point below the station and its distance from Paris.

**Asteroid watch.** "Which asteroids pass within 10 lunar distances this week, closest first?" `space_list_asteroid_approaches` with `max_distance_ld` 10 and `sort` `distance` lists them with their estimated size and the potentially hazardous flag. For one object, `space_get_impact_risk` returns the Sentry assessment, whose probabilities JPL says can be off by a factor of a few.

**Newsroom briefings.** List the magnitude 5 and above earthquakes of the past week within 500 km of Tokyo with `space_search_earthquakes`, then the open wildfires in a California bounding box with `space_list_natural_events`, each with its source and time.

**Satellite counts.** "How many satellites are in the Starlink group, and how do they split by orbit class?" `space_list_satellite_group` answers from CelesTrak's group data, with the orbit of each member.

### Frequently asked questions

#### Do I need an API key from the data sources?

No. You need an Apify account and its API token, nothing else. The sources are public and the server handles their quotas and caching for you.

#### How much does it cost to query space and Earth data?

Two things are billed to your Apify account. First, the tool calls: $0.01 per successful call to `space_get_space_weather` or `space_get_aurora_forecast` (actions) and $0.005 per successful call to any other tool (reads). These are the prices on the Apify Free plan, and the discounts of paid plans lower them. Errors, invalid input, the spending-limit refusal and protocol traffic (initialize, tool lists, pings) are never charged. Second, the platform usage of your own Standby run, on top of the events: the memory set for the run (256 MB) for as long as the server is up, idle time included, until it stops 5 minutes after your last call, plus a small start event per new run. A 10-minute session of 20 calls, 2 of them actions, comes to $0.11 in tool calls on the Free plan plus 1 to 2 cents of platform usage. Live prices for your Apify plan are on the [Pricing tab](https://apify.com/mrbridge/space-earth-mcp/pricing?fpr=mrbridge), and `maxTotalChargeUsd` caps the event charges of one run.

#### How fresh is the data?

The latest earthquakes are cached for 30 seconds. Space weather, its alerts and natural events are cached for 5 minutes, upcoming launches, launch details and the people in space for an hour, and pictures, asteroids, media, satellite orbits, the ISS elements and past launches for a day. The ISS position is computed for the time of your request, from orbital elements up to a day old. Launch times can lag by an hour, or a few hours when the launch source has used up its hourly quota.

#### Can I use it for safety or navigation decisions?

No. Everything this server returns is given for information, the earthquake list and the computed ISS position included. Event positions are approximations, and impact probabilities rest on assumptions their authors call hard to verify. For warnings that affect people or operations, follow your national warning services.

#### Can I reuse the pictures and videos?

The server returns links and credit lines, never image files. Many astronomy pictures belong to their authors, and public or commercial use needs the permission of the owner named in the credit line. Space agency library media can be used in a factual way that does not suggest endorsement. The Data terms section above lists each source's rules.

#### Why are some calls slower than others?

After 5 idle minutes the server stops, and the next call waits about 5 seconds while Apify starts a new run. The two satellite tools take 6 to 9 seconds because they read a 2.5 MB orbit table. The first space weather or aurora call after its cache expires can take up to about 20 seconds while the source files download.

#### Is this server affiliated with NASA or the other sources?

No. It is an independent server that reads public data and cites its source in every answer. It is not affiliated with or endorsed by NASA, JPL, NOAA, the USGS, The Space Devs, CelesTrak or Open Notify, whose names belong to their owners.

#### Your feedback

Found a wrong value or a broken tool? Open an issue on the [Issues tab](https://apify.com/mrbridge/space-earth-mcp/issues/open?fpr=mrbridge) and it will be looked at. More MCP servers, scrapers and data studies from the same team are on [mr-bridge.com](https://mr-bridge.com).

### Changelog

- 0.1.5: Output, dataset and key-value store schemas, as Apify asks for publication: the Output tab of a run started from the Console shows the connection details and one row per tool.
- 0.1.4: the Input tab shows the endpoint and how to connect an AI client, and a run started from the Console outputs the connection details and the tool list
- 0.1.3: pricing events tool-read and tool-action. `space_get_space_weather` and `space_get_aurora_forecast` bill one `tool-action` event ($0.01 on the Apify Free plan), every other tool one `tool-read` event ($0.005), and paid plans pay less
- 0.1.2: server name aligned with the Store title
- 0.1.1: the README says the ISS position is computed with SGP4, not read from Open Notify, and that asteroid approaches use the owner's NASA API key, not the public DEMO_KEY
- 0.1.0: initial build (private, unpublished)

# Actor input Schema

## `mcpEndpoint` (type: `string`):

Paste this URL into your MCP client (Streamable HTTP). It is shown here for copying only: the server ignores this form, and every parameter goes in your questions.

## Actor input object example

```json
{
  "mcpEndpoint": "https://mrbridge--space-earth-mcp.apify.actor/mcp"
}
```

# Actor output Schema

## `connection` (type: `string`):

The item written by a run started from the Console: endpoint, token options, client recipes and the list of tools with the event each one bills.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "mcpEndpoint": "https://mrbridge--space-earth-mcp.apify.actor/mcp"
};

// Run the Actor and wait for it to finish
const run = await client.actor("mrbridge/space-earth-mcp").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "mcpEndpoint": "https://mrbridge--space-earth-mcp.apify.actor/mcp" }

# Run the Actor and wait for it to finish
run = client.actor("mrbridge/space-earth-mcp").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "mcpEndpoint": "https://mrbridge--space-earth-mcp.apify.actor/mcp"
}' |
apify call mrbridge/space-earth-mcp --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,mrbridge/space-earth-mcp"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/HduXqGYgss7eqTJPw/builds/8hVPk4ahH8G8sp0vK/openapi.json
