Nasa
FreeNot checkedMCP server that fetches NASA's Astronomy Picture of the Day (APOD) for a given date, returning title, explanation, and image URLs.
About
MCP server that fetches NASA's Astronomy Picture of the Day (APOD) for a given date, returning title, explanation, and image URLs.
README
Production-style mini project with three parts:
- FastAPI backend that proxies NASA APOD.
- MCP stdio server exposing
nasa_apod_get. - Minimal responsive UI served by FastAPI.
Project Structure
app/
api/
models/
services/
static/
mcp_server/
tests/
Prerequisites
- Python 3.11+
Install
python3 -m venv .venv
source .venv/bin/activate
pip install -U pip
pip install -r requirements.txt
cp .env.example .env
Set NASA_API_KEY in .env for production. DEMO_KEY is fallback for local development only.
Run API
make run-api
# or
python -m uvicorn app.main:app --reload --host 0.0.0.0 --port 8000
Health check:
curl http://127.0.0.1:8000/health
APOD:
curl "http://127.0.0.1:8000/api/nasa/apod?date=2026-03-25"
UI:
- Open
http://127.0.0.1:8000/
Run MCP Server (stdio)
make run-mcp
# or
python -m mcp_server.server
Connect MCP in OpenCode
Use this snippet in OpenCode MCP config:
{
"mcpServers": {
"nasa-apod": {
"command": "python",
"args": ["-m", "mcp_server.server"],
"cwd": "/absolute/path/to/nasa-mcp-demo",
"env": {
"NASA_API_KEY": "DEMO_KEY"
}
}
}
}
Then invoke tool:
nasa_apod_get(date="2026-03-25")
Expected output format:
{
"date": "2026-03-25",
"title": "...",
"explanation": "...",
"url": "...",
"hdurl": "...",
"media_type": "image",
"copyright": "..."
}
Testing
make test
# or
pytest -q
Includes:
- Unit tests for date validation, normalization, and error mapping.
- API integration tests for health and APOD success/failure paths.
- MCP tests for tool registration and call behavior.
Optional Live NASA Test
Current tests use httpx.MockTransport for stability. Add live tests guarded by env flag if needed.
Troubleshooting
ModuleNotFoundError: ensure virtual environment is active and dependencies installed.502from/api/nasa/apod: verifyNASA_API_KEY, network, and NASA API status.504from/api/nasa/apod: upstream timeout; retry later or increaseNASA_TIMEOUT_SECONDS.- MCP tool not discoverable: confirm command runs in project root and MCP config
cwdis correct.
mcp-nasa
mcp-nasa
mcp-nasa
Installing Nasa
This server has no published package — it is built from source. Open the repository and follow its README.
▸ github.com/varun257/mcp-nasaFAQ
Is Nasa MCP free?
Yes, Nasa MCP is free — one-click install via Unyly at no cost.
Does Nasa need an API key?
No, Nasa runs without API keys or environment variables.
Is Nasa hosted or self-hosted?
A hosted option is available: Unyly runs the server in the cloud, no local setup required.
How do I install Nasa in Claude Desktop, Claude Code or Cursor?
Open Nasa on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
Omni Video
An MCP server that transforms LLM-enabled IDEs into professional video editors by pre-processing footage into text proxies, generating motion graphics via HTML/
by buildwithtazaARA
Generate images, video and audio from any AI agent — one connector.
by ARAYouTube
Transcripts, channel stats, search
by YouTubeEverArt
AI image generation using various models.
by modelcontextprotocolCompare Nasa with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All media MCPs
