Skip to content

Commit d199c32

Browse files
Migrate APOD and DONKI to their new APIs and add InSight, TLE, SSC, TechPort, TechTransfer, Trek and Mission Design tools (#15)
1 parent 7b89699 commit d199c32

28 files changed

Lines changed: 2116 additions & 145 deletions

‎.env.example‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
# Copy to .env (never commit .env). Values here are placeholders.
22

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

78
# FIRMS MAP_KEY for nasa_firms (separate from NASA_API_KEY).

‎CHANGELOG.md‎

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,31 @@
11
# Changelog
22

3+
## Unreleased
4+
5+
### Breaking changes and migration
6+
7+
- **`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`.
8+
- `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.
9+
- `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.
10+
- 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.
11+
- The `nasa://apod/image` resource returns one entry object, without the upstream `basic_html` page.
12+
- The `nasa/get-astronomy-picture` and `apod-daily` prompts no longer take `count` or `thumbs`.
13+
- **`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`.
14+
15+
### New tools
16+
17+
- `nasa_insight_weather`: InSight Mars weather. Historical data only: the feed is frozen at sols 675-681 (October 2020). Needs `NASA_API_KEY`.
18+
- `nasa_tle`: satellite two-line element sets by NORAD catalog number or name search (tle.ivanstanojevic.me, with CelesTrak data).
19+
- `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.
20+
- `nasa_techport`: TechPort project search and project details. These endpoints need no token.
21+
- `nasa_techtransfer`: NASA patents, issued patents, software and spinoffs from technology.nasa.gov (the api.nasa.gov `/techtransfer` route only serves a help page).
22+
- `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.
23+
- `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.
24+
25+
### Fixes
26+
27+
- Upstream error messages include the `{"response":{"message":...}}` bodies returned by the TLE API.
28+
329
## 1.1.0
430

531
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`.

‎README.md‎

Lines changed: 36 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ Big thanks to the MCP community for their support and guidance!
2121

2222
Ask your MCP client things like:
2323

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

3443
## Disclaimer
3544

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

7382
| Variable | Description |
7483
|----------|-------------|
75-
| `NASA_API_KEY` | Your NASA API key (get at api.nasa.gov) |
84+
| `NASA_API_KEY` | Your NASA API key (get at api.nasa.gov); used by NEO and InSight weather |
7685
| `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` |
7786
| `NASA_MCP_CMR_URL` | Optional CMR search URL (default: `https://cmr.earthdata.nasa.gov/search`) |
7887
| `MCP_TRANSPORT` | Transport mode: `stdio` (default) or `http` for Streamable HTTP |
@@ -100,25 +109,37 @@ http://127.0.0.1:3000/mcp
100109

101110
This MCP server integrates the following NASA APIs:
102111

103-
1. **NASA Open API** (api.nasa.gov):
104-
- APOD (Astronomy Picture of the Day)
105-
- EPIC (Earth Polychromatic Imaging Camera)
106-
- DONKI (Space Weather Database Of Notifications, Knowledge, Information)
107-
- Insight (Mars Weather Service)
112+
1. **NASA Open API** (api.nasa.gov, needs `NASA_API_KEY`):
108113
- NEO (Near Earth Object Web Service)
114+
- InSight Mars Weather Service (historical: the feed stopped updating in October 2020)
115+
116+
2. **Other NASA APIs** (no key needed):
117+
- APOD (Astronomy Picture of the Day), from the NASA Science APOD API (science.nasa.gov)
118+
- DONKI (Space Weather Database Of Notifications, Knowledge, Information), from NASA CCMC (ccmc.gsfc.nasa.gov)
109119
- EONET (Earth Observatory Natural Event Tracker)
110-
- TLE (Two-Line Element)
120+
- TLE (Two-Line Element sets from CelesTrak, via tle.ivanstanojevic.me)
121+
- Satellite Situation Center (spacecraft locations)
122+
- TechPort (NASA technology projects)
123+
- Technology Transfer (patents, software and spinoffs)
124+
- Mars, Moon and Vesta Trek (WMTS map layers and tiles)
111125
- NASA Image and Video Library
112126
- Exoplanet Archive
127+
- Open Science Data Repository (OSDR) files
113128
- POWER (Prediction Of Worldwide Energy Resources)
114129

115-
2. **JPL Solar System Dynamics API** (ssd-api.jpl.nasa.gov):
130+
3. **JPL Solar System Dynamics API** (ssd-api.jpl.nasa.gov):
116131
- SBDB (Small-Body DataBase)
117132
- SBDB Close-Approach Data
118133
- Fireball Data
119-
- Scout API
120-
121-
3. **Earth Data APIs**:
134+
- Sentry (impact risk)
135+
- Scout (NEO Confirmation Page orbits)
136+
- NHATS (human-accessible NEOs)
137+
- Small-Body Mission Design
138+
- Horizons ephemerides
139+
- Periodic Orbits
140+
- Julian date converter
141+
142+
4. **Earth Data APIs**:
122143
- GIBS (Global Imagery Browse Services)
123144
- CMR (Common Metadata Repository) - Enhanced with advanced search capabilities
124145
- EPIC (Earth Polychromatic Imaging Camera)
@@ -134,13 +155,14 @@ Each NASA API is exposed through standardized MCP methods:
134155
{
135156
"method": "nasa/apod",
136157
"params": {
137-
"date": "2023-01-01", // Optional: YYYY-MM-DD format
138-
"count": 5, // Optional: Return a specified number of random images
139-
"thumbs": true // Optional: Return URL of video thumbnail
158+
"date": "2023-01-01", // Optional: YYYY-MM-DD (1995-06-16 or later); defaults to the latest picture
159+
"max_images": 1 // Optional: how many pictures to embed (0-5)
140160
}
141161
}
142162
```
143163

164+
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.
165+
144166
### Near Earth Objects
145167

146168
```json

0 commit comments

Comments
 (0)