From 48aed51f724a1dad3d48ef097b21826b9be25f90 Mon Sep 17 00:00:00 2001 From: ProgramComputer <22284856+ProgramComputer@users.noreply.github.com> Date: Wed, 30 Sep 2026 13:12:07 +0000 Subject: [PATCH 1/2] Remove README content for retired NASA APIs and missing scripts Checked live on 2026-09-30 before removing: - Mars Rover Photos: api.nasa.gov/mars-photos returns HTTP 404 "No such app" (also through nasa_mars_rover), while NeoWs on the same host and key returns 200. Dropped from the API list, the API Methods and client examples, the sample log line and the .env.example comment. - NASA Sounds: api.nasa.gov/planetary/sounds returns HTTP 404. Dropped from the API list. Also replaced two commands that do not exist: scripts/test-with-inspector.sh was never committed, so the Inspector section now runs the official MCP Inspector against dist/index.js, and npm run dev becomes npm start. InSight weather and TLE still respond upstream, so they stay listed. --- .env.example | 2 +- README.md | 41 ++++++----------------------------------- 2 files changed, 7 insertions(+), 36 deletions(-) diff --git a/.env.example b/.env.example index 55ab39e..a8963f5 100644 --- a/.env.example +++ b/.env.example @@ -1,6 +1,6 @@ # Copy to .env (never commit .env). Values here are placeholders. -# api.nasa.gov key for APOD, NEO, DONKI and Mars Rover Photos. +# api.nasa.gov key for APOD, NEO and DONKI. # Get one at https://api.nasa.gov/ (DEMO_KEY works for light use). NASA_API_KEY=YOUR_NASA_API_KEY diff --git a/README.md b/README.md index 969bfd4..30faf3a 100644 --- a/README.md +++ b/README.md @@ -105,13 +105,11 @@ This MCP server integrates the following NASA APIs: - EPIC (Earth Polychromatic Imaging Camera) - DONKI (Space Weather Database Of Notifications, Knowledge, Information) - Insight (Mars Weather Service) - - Mars Rover Photos - NEO (Near Earth Object Web Service) - EONET (Earth Observatory Natural Event Tracker) - TLE (Two-Line Element) - NASA Image and Video Library - Exoplanet Archive - - NASA Sounds API (Beta) - POWER (Prediction Of Worldwide Energy Resources) 2. **JPL Solar System Dynamics API** (ssd-api.jpl.nasa.gov): @@ -143,20 +141,6 @@ Each NASA API is exposed through standardized MCP methods: } ``` -### Mars Rover Photos - -```json -{ - "method": "nasa/mars-rover", - "params": { - "rover": "curiosity", // Required: "curiosity", "opportunity", or "spirit" - "sol": 1000, // Either sol or earth_date is required - "earth_date": "2023-01-01", // YYYY-MM-DD format - "camera": "FHAZ" // Optional: Filter by camera type - } -} -``` - ### Near Earth Objects ```json @@ -254,7 +238,6 @@ Example log messages: ``` [INFO] NASA MCP Server initialized successfully [INFO] Processing APOD request for date: 2023-01-01 -[INFO] Fetching Mars Rover data for Curiosity, sol 1000 [WARNING] Rate limit threshold reached (80%) [ERROR] Invalid parameter: 'date' must be in YYYY-MM-DD format ``` @@ -285,8 +268,8 @@ cp .env.example .env # Build the TypeScript code npm run build -# Start the development server -npm run dev +# Start the server +npm start # Run tests npm test @@ -294,17 +277,14 @@ npm test ## Testing with MCP Inspector -The NASA MCP Server includes a script to help you test the APIs using the MCP Inspector: +To test the tools interactively, build the project and start the official [MCP Inspector](https://github.com/modelcontextprotocol/inspector) with the server: ```bash -# Run the provided test script -./scripts/test-with-inspector.sh +npm run build +npx @modelcontextprotocol/inspector node dist/index.js ``` -This will: -1. Build the project to ensure the latest changes are included -2. Start the MCP Inspector with the NASA MCP server running -3. Allow you to interactively test all the NASA APIs +The server reads `NASA_API_KEY` and `FIRMS_MAP_KEY` from a `.env` file in the working directory (see Development above). The Inspector prints a local URL; open it to list and call the tools. ### Example Test Requests @@ -346,15 +326,6 @@ const apodResult = await client.request({ } }, CallToolResultSchema); -// Example: Get Mars Rover photos -const marsRoverResult = await client.request({ - method: "tools/call", - params: { - name: "nasa/mars-rover", - arguments: { rover: "curiosity", sol: 1000 } - } -}, CallToolResultSchema); - // Example: Search for Near Earth Objects const neoResults = await client.request({ method: "tools/call", From dff2f26cc08b804020ecd7271834c2c7ddfe962c Mon Sep 17 00:00:00 2001 From: ProgramComputer <22284856+ProgramComputer@users.noreply.github.com> Date: Wed, 30 Sep 2026 13:12:07 +0000 Subject: [PATCH 2/2] Keep the stdio transport note client-neutral --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 30faf3a..56b9964 100644 --- a/README.md +++ b/README.md @@ -82,7 +82,7 @@ The server can be configured with the following environment variables: ## Transport Modes -By default, the server runs over stdio for local MCP clients such as Cursor and Claude Desktop. +By default, the server runs over stdio for local MCP clients such as Cursor. To run the optional Streamable HTTP transport: