MCP server with UI for NASA images
Valid MCP server (5 strong, 4 medium validity signals). 11 known CVEs in dependencies (0 critical, 5 high severity) Package registry verified. Imported from the Official MCP Registry.
11 files analyzed ยท 12 issues found
Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.
This plugin requests these system permissions. Most are normal for its category.
Unverified package source
We couldn't verify that the installable package matches the reviewed source code. Proceed with caution.
Set these up before or after installing:
Environment variable: NASA_API_KEY
Add this to your MCP configuration file:
{
"mcpServers": {
"io-github-kaitoy-nasa-images": {
"env": {
"NASA_API_KEY": "your-nasa-api-key-here"
},
"args": [
"-y",
"@kaitoy/nasa-images-mcp-server"
],
"command": "npx"
}
}
}From the project's GitHub README.
A project to search NASA's image library using an MCP server and display images in an interactive UI.
๐ Features:

cd nasa-images-mcp-server
npm install
cp .env.example .env
Edit the .env file to configure your NASA API key:
NASA_API_KEY=your_api_key_here
PORT=3000
npm run build
.env fileRate Limits:
In stdio mode, the server communicates via stdin/stdout โ no HTTP server is started. Logs are written to stderr.
npx @kaitoy/nasa-images-mcp-server --stdio
Pass the --stdio flag to use stdio transport:
node build/index.js --stdio
Using npx (recommended):
{
"mcpServers": {
"nasa-images": {
"command": "npx",
"args": ["-y", "@kaitoy/nasa-images-mcp-server", "--stdio"],
"env": {
"NASA_API_KEY": "your_api_key_here"
}
}
}
}
Using local build:
{
"mcpServers": {
"nasa-images": {
"command": "node",
"args": ["/path/to/nasa-images-mcp-server/build/index.js", "--stdio"],
"env": {
"NASA_API_KEY": "your_api_key_here"
}
}
}
}
npm start
The server will start at http://localhost:3000.
PORT=3001 npm start
Suitable for local MCP clients (e.g., Claude Desktop) that launch the server as a subprocess.
The latest MCP HTTP transport protocol, suitable for remote or multi-client scenarios.
Key Features:
You can test the server using MCP Inspector:
npx @modelcontextprotocol/inspector http://localhost:3000/mcp
npx @modelcontextprotocol/inspector node /path/to/nasa-images-mcp-server/build/index.js --stdio
Steps to connect from a custom client:
curl -X POST http://localhost:3000/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "initialize",
"params": {
"protocolVersion": "2024-11-05",
"capabilities": {},
"clientInfo": {
"name": "my-client",
"version": "1.0.0"
}
}
}'
The response headers will include mcp-session-id.
curl -X POST http://localhost:3000/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "mcp-session-id: <your-session-id>" \
-d '{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/list"
}'
curl -X GET "http://localhost:3000/mcp" \
-H "mcp-session-id: <your-session-id>" \
-H "Accept: text/event-stream"
| Endpoint | Method | Description |
|---|---|---|
/ | GET | Server information and endpoint list |
/health | GET | Health check (includes active session count) |
/mcp | POST | JSON-RPC requests (initialization, tool calls, etc.) |
/mcp | GET | SSE stream (for server notifications) |
/mcp | DELETE | Close session |
search_nasa_imagesSearch NASA's image library.
Parameters:
query (string, required): Search query (e.g., "apollo 11", "mars rover")Usage Example (JSON-RPC):
{
"jsonrpc": "2.0",
"id": 3,
"method": "tools/call",
"params": {
"name": "search_nasa_images",
"arguments": {
"query": "apollo 11 moon landing"
}
}
}
get_next_imageDisplay the next image from the current search results.
Parameters: None
Usage Example (JSON-RPC):
{
"jsonrpc": "2.0",
"id": 4,
"method": "tools/call",
"params": {
"name": "get_next_image",
"arguments": {}
}
}
nasa-image://currentGet the URL of the currently displayed image.
MIME Type: text/uri-list
ui://nasa-images/viewerHTML UI resource for the image viewer.
MIME Type: text/html;profile=mcp-app
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ MCP Client (Claude Desktop, etc.) โ
โ โ stdin/stdout โ
โโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ NASA Images MCP Server โ
โ โโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ StdioServerTransport โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ McpServer (MCP Apps Pattern) โ โ
โ โ - registerAppTool(search_nasa...) โ โ
โ โ - registerAppTool(get_next_image) โ โ
โ โ - registerAppResource(viewer UI) โ โ
โ โ - registerResource(image URL) โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ Session Manager โ โ
โ โ - Manage search state per user โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ NASA API Client โ โ
โ โ - Image search โ โ
โ โ - Image URL retrieval โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ HTTPS
โโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ NASA Images API โ
โ https://images-api.nasa.gov/search โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ MCP Client (Inspector, Custom App) โ
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ HTTP Client โ โ
โ โ - POST /mcp (JSON-RPC requests) โ โ
โ โ - GET /mcp (SSE stream) โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ โ
โโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ HTTP/SSE
โโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ NASA Images MCP Server (Express) โ
โ โโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ StreamableHTTPServerTransport โ โ
โ โ - Session management โ โ
โ โ - JSON-RPC over HTTP โ โ
โ โ - SSE for notifications โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ McpServer (MCP Apps Pattern) โ โ
โ โ - registerAppTool(search_nasa...) โ โ
โ โ - registerAppTool(get_next_image) โ โ
โ โ - registerAppResource(viewer UI) โ โ
โ โ - registerResource(image URL) โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ Session Manager โ โ
โ โ - Manage search state per user โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ NASA API Client โ โ
โ โ - Image search โ โ
โ โ - Image URL retrieval โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ HTTPS
โโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ NASA Images API โ
โ https://images-api.nasa.gov/search โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
npm run watch
Automatically rebuilds when files change.
npm run dev
Builds and immediately starts the server.
Error: listen EADDRINUSE: address already in use
Solution: Specify a different port:
PORT=3001 npm start
Run:
npm run build
to compile TypeScript.
DEMO_KEY, obtain your own API key from api.nasa.govThe client must accept both MIME types:
application/jsontext/event-streamcurl -H "Accept: application/json, text/event-stream" ...
Save the mcp-session-id header returned after the initialization request and send it as the mcp-session-id header in subsequent requests.
MIT
Pull requests are welcome! Bug reports and feature requests are accepted via Issues.
If you encounter issues, please create an Issue or refer to the NASA API support page.
Be the first to review this server!
by Modelcontextprotocol ยท Developer Tools
Read, search, and manipulate Git repositories programmatically
by Toleno ยท Developer Tools
Toleno Network MCP Server โ Manage your Toleno mining account with Claude AI using natural language.
by mcp-marketplace ยท Developer Tools
Create, build, and publish Python MCP servers to PyPI โ conversationally.
by Microsoft ยท Content & Media
Convert files (PDF, Word, Excel, images, audio) to Markdown for LLM consumption
by mcp-marketplace ยท Developer Tools
Scaffold, build, and publish TypeScript MCP servers to npm โ conversationally
by mcp-marketplace ยท Finance
Free stock data and market news for any MCP-compatible AI assistant.