Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .env.example
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
# Copy to .env (never commit .env). Values here are placeholders.

# api.nasa.gov key for APOD, NEO and DONKI.
# api.nasa.gov key for NEO and InSight weather.
# Get one at https://api.nasa.gov/ (DEMO_KEY works for light use).
# APOD, DONKI, TLE, SSC, TechPort, TechTransfer, Trek and the JPL tools need no key.
NASA_API_KEY=YOUR_NASA_API_KEY

# FIRMS MAP_KEY for nasa_firms (separate from NASA_API_KEY).
Expand Down
26 changes: 26 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,31 @@
# Changelog

## Unreleased

### Breaking changes and migration

- **`nasa_apod` uses the NASA Science APOD API** (`science.nasa.gov/wp-json/wp/v2/apod-basic`). The api.nasa.gov `/planetary/apod` endpoint returns HTTP 503/504 and the api.nasa.gov catalog says the legacy API goes offline on 2026-12-01. The new API needs no key, so `nasa_apod`, the `nasa://apod/image` resource template and the APOD prompts work without `NASA_API_KEY`.
- `count` (random pictures) and `thumbs` are retired: the new API has no random mode or thumbnail option. Calls that pass them get a migration message.
- `date` defaults to the latest published picture. Dates before 1995-06-16 or in the future are rejected before any request, and a day without a picture reports HTTP 404 clearly.
- Titles, credits and explanations are plain text (the new API returns HTML). Video entries report the video URL and a still frame. Embedded images are 1024-pixel-wide renditions when the image host offers them.
- The `nasa://apod/image` resource returns one entry object, without the upstream `basic_html` page.
- The `nasa/get-astronomy-picture` and `apod-daily` prompts no longer take `count` or `thumbs`.
- **`nasa_donki` uses the NASA CCMC DONKI API** (`ccmc.gsfc.nasa.gov/DONKI-API/get`). CCMC moved the public API there on 2026-09-30, and `api.nasa.gov/DONKI/*` now redirects to a CCMC news page instead of returning data. CCMC kept the parameters and response formats. The new API needs no key, so `nasa_donki` works without `NASA_API_KEY`.

### New tools

- `nasa_insight_weather`: InSight Mars weather. Historical data only: the feed is frozen at sols 675-681 (October 2020). Needs `NASA_API_KEY`.
- `nasa_tle`: satellite two-line element sets by NORAD catalog number or name search (tle.ivanstanojevic.me, with CelesTrak data).
- `nasa_ssc_observatories` and `nasa_ssc_locations`: the Satellite Situation Center observatory list and spacecraft positions in GEO, GM, GSE, GSM, SM and GEI coordinates. Long ranges are thinned automatically to keep the output bounded.
- `nasa_techport`: TechPort project search and project details. These endpoints need no token.
- `nasa_techtransfer`: NASA patents, issued patents, software and spinoffs from technology.nasa.gov (the api.nasa.gov `/techtransfer` route only serves a help page).
- `nasa_trek_layers` and `nasa_trek_tile`: Mars, Moon and Vesta Trek layer search and WMTS tiles, addressed by zoom/row/column or by latitude/longitude.
- `jpl_mission_design`: the JPL Small-Body Mission Design API in object mode and accessible-targets mode. Porkchop-plot maps (mode M) and mission-extension searches (mode T) are not exposed: their responses are too large or too slow for a tool call.

### Fixes

- Upstream error messages include the `{"response":{"message":...}}` bodies returned by the TLE API.

## 1.1.0

A reliability and CMR release. It is published as a minor version, but **default responses, parameter validation and runtime support changed in ways existing clients can notice**. Anyone depending on `^1.0.x` (or `@latest`) will receive these changes, so review the list below before upgrading, or pin `1.0.14`.
Expand Down
50 changes: 36 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@ Big thanks to the MCP community for their support and guidance!

Ask your MCP client things like:

* "Show me today's Astronomy Picture of the Day and explain what it shows."
* "Were there any solar storms in September 2026: strong flares, Earth-directed CMEs or geomagnetic storms?"
* "Which asteroids fly past Earth today, and which one comes closest?"
* "Will any asteroid pass closer to Earth than the Moon in the next 90 days?"
* "What are the odds that Bennu hits Earth, according to JPL Sentry?"
Expand All @@ -30,6 +32,13 @@ Ask your MCP client things like:
* "Find cloud-hosted sea ice concentration datasets in NASA Earthdata."
* "What were the daily highs, lows and solar energy in Denver during the first week of July 2025?"
* "List the nearest roughly Earth-sized, temperate exoplanets discovered since 2020."
* "Where was the ISS over the Earth between 00:00 and 00:10 UTC on 2026-09-29?"
* "Get the latest two-line orbital elements for the ISS."
* "Show me a Mars Trek map tile of Olympus Mons."
* "What was the weather like at NASA's InSight lander during its last reported week on Mars?"
* "Which near-Earth asteroids need the least delta-v for a mission launched in 2030?"
* "Which NASA technology projects have worked on solar sails?"
* "Find NASA patents about solar panels that companies can license."

## Disclaimer

Expand Down Expand Up @@ -72,7 +81,7 @@ The server can be configured with the following environment variables:

| Variable | Description |
|----------|-------------|
| `NASA_API_KEY` | Your NASA API key (get at api.nasa.gov) |
| `NASA_API_KEY` | Your NASA API key (get at api.nasa.gov); used by NEO and InSight weather |
| `FIRMS_MAP_KEY` | Your FIRMS MAP_KEY for fire data (get at firms.modaps.eosdis.nasa.gov/api/map_key); separate from `NASA_API_KEY` |
| `NASA_MCP_CMR_URL` | Optional CMR search URL (default: `https://cmr.earthdata.nasa.gov/search`) |
| `MCP_TRANSPORT` | Transport mode: `stdio` (default) or `http` for Streamable HTTP |
Expand Down Expand Up @@ -100,25 +109,37 @@ http://127.0.0.1:3000/mcp

This MCP server integrates the following NASA APIs:

1. **NASA Open API** (api.nasa.gov):
- APOD (Astronomy Picture of the Day)
- EPIC (Earth Polychromatic Imaging Camera)
- DONKI (Space Weather Database Of Notifications, Knowledge, Information)
- Insight (Mars Weather Service)
1. **NASA Open API** (api.nasa.gov, needs `NASA_API_KEY`):
- NEO (Near Earth Object Web Service)
- InSight Mars Weather Service (historical: the feed stopped updating in October 2020)

2. **Other NASA APIs** (no key needed):
- APOD (Astronomy Picture of the Day), from the NASA Science APOD API (science.nasa.gov)
- DONKI (Space Weather Database Of Notifications, Knowledge, Information), from NASA CCMC (ccmc.gsfc.nasa.gov)
- EONET (Earth Observatory Natural Event Tracker)
- TLE (Two-Line Element)
- TLE (Two-Line Element sets from CelesTrak, via tle.ivanstanojevic.me)
- Satellite Situation Center (spacecraft locations)
- TechPort (NASA technology projects)
- Technology Transfer (patents, software and spinoffs)
- Mars, Moon and Vesta Trek (WMTS map layers and tiles)
- NASA Image and Video Library
- Exoplanet Archive
- Open Science Data Repository (OSDR) files
- POWER (Prediction Of Worldwide Energy Resources)

2. **JPL Solar System Dynamics API** (ssd-api.jpl.nasa.gov):
3. **JPL Solar System Dynamics API** (ssd-api.jpl.nasa.gov):
- SBDB (Small-Body DataBase)
- SBDB Close-Approach Data
- Fireball Data
- Scout API

3. **Earth Data APIs**:
- Sentry (impact risk)
- Scout (NEO Confirmation Page orbits)
- NHATS (human-accessible NEOs)
- Small-Body Mission Design
- Horizons ephemerides
- Periodic Orbits
- Julian date converter

4. **Earth Data APIs**:
- GIBS (Global Imagery Browse Services)
- CMR (Common Metadata Repository) - Enhanced with advanced search capabilities
- EPIC (Earth Polychromatic Imaging Camera)
Expand All @@ -134,13 +155,14 @@ Each NASA API is exposed through standardized MCP methods:
{
"method": "nasa/apod",
"params": {
"date": "2023-01-01", // Optional: YYYY-MM-DD format
"count": 5, // Optional: Return a specified number of random images
"thumbs": true // Optional: Return URL of video thumbnail
"date": "2023-01-01", // Optional: YYYY-MM-DD (1995-06-16 or later); defaults to the latest picture
"max_images": 1 // Optional: how many pictures to embed (0-5)
}
}
```

For a range, send `start_date` and `end_date` (up to 100 days) instead of `date`. APOD now comes from the NASA Science APOD API, which needs no key and has no random `count` or `thumbs` option.

### Near Earth Objects

```json
Expand Down
Loading
Loading