MCP Connector

Access NASA PDS Space Mission Data

Search NASA's Planetary Data System for missions, spacecraft, instruments, celestial bodies, and data collections via human-in-the-loop AI.

Works with github

Maintainer of this project? Claim this page to edit the listing.


91
Spark score
out of 100
Updated 9 months ago
Version 1.0.0
Models
universal

Add to Favorites

Why it matters

Intelligently search and explore NASA's vast collection of space mission data, instruments, spacecraft, and celestial bodies from the 1960s to the present day.

Outcomes

What it gets done

01

Search for missions, celestial bodies, spacecraft, and instruments.

02

Explore data collections and their relationships to missions and objects.

03

Retrieve detailed metadata and URN identifiers for PDS products.

04

Access reference data for filtering and enhanced search capabilities.

Install

Add it to your toolbox

Run in your project directory:

curl -fsSL https://spark.entire.vc/get/vb-nasa-planetary-data-system-pds-mcp-server | bash

Capabilities

Tools your agent gets

search_missions

Search space missions and research programs by keywords and mission types.

search_celestial_bodies

Search for planets, moons, asteroids, comets, and astronomical objects by name or type.

search_spacecraft

Find spacecraft, rovers, landers, telescopes, and scientific platforms.

search_instruments

Search for scientific instruments like cameras, spectrometers, and detectors used in space missions.

search_data_collections

Search and filter data collections by missions, objects, instruments, or spacecraft associations.

get_product_details

Get comprehensive metadata and details for specific PDS products using URN identifiers.

get_reference_data

Access categorized lists of object types, spacecraft types, instrument types, and mission types.

map_product_relationships

Discover relationships between missions, objects, instruments, and data products.

Overview

NASA Planetary Data System (PDS) MCP Server

NASA PDS MCP Server gives an AI assistant access to NASA's Planetary Data System Registry API for searching missions, celestial bodies, spacecraft, instruments, and data collections, with a human-in-the-loop design that keeps the user choosing each next step. Use it for controlled, conversational exploration of NASA PDS data. Not designed for fully autonomous multi-step search without user checkpoints - that's an intentional design constraint.

What it does

NASA PDS Registry MCP Server gives an AI assistant access to the NASA Planetary Data System (PDS) Registry API, enabling human-in-the-loop agentic search and exploration of PDS data products, bundles, and collections - missions, celestial bodies, spacecraft, instruments, and the relationships between them.

When to use - and when NOT to

Use it when researchers or students want to explore planetary science data conversationally - finding which missions studied a given celestial body, which instruments collected specific observations, or retrieving detailed metadata for a PDS product by its URN identifier. The project is explicitly designed as a human-in-the-loop search tool: the recommended client instructions restrict the assistant to one tool call per request, require URNs to be surfaced alongside results, and have it propose next steps for the user to choose - keeping the user in control of how they navigate the PDS Registry rather than letting the AI search autonomously end to end. Do not use it expecting fully autonomous multi-step search without user checkpoints - that conversational pattern is a deliberate design choice, not a limitation to work around.

Capabilities

  • Mission and project search, filterable by keywords and mission types.
  • Celestial body discovery - planets, moons, asteroids, comets, and other targets, by name or type.
  • Spacecraft and platform search - rovers, landers, telescopes, and other instrument-carrying platforms.
  • Scientific instrument lookup - cameras, spectrometers, detectors, and other instruments used in missions.
  • Data collection exploration, filterable by mission, target, instrument, or spacecraft relationships.
  • Product relationship mapping between missions, targets, instruments, and data products.
  • Detailed product metadata retrieval by URN identifier.
  • Reference data access - categorized lists of target types, spacecraft types, instrument types, and mission types for filtering.

Example queries: "Which instrument recorded seismic observations in the PDS?", "What is the identifier of the Moon in the PDS?", "What data is collected from instruments targeting the Moon?", "What missions produced these observations?"

How to install

Requires Python 3.13+:

git clone https://github.com/NASA-PDS/pds-mcp-server.git
cd pds-mcp-server
python3.13 -m venv {env-name}
source {env-name}/bin/activate
pip install -r requirements.txt

Run standalone with python3.13 pds_mcp_server.py, or configure an MCP client (Claude Desktop, Cursor):

{
  "mcpServers": {
    "pds-registry": {
      "command": "/path/to/{env-name}/bin/python3.13",
      "args": ["/path/to/pds_mcp_server.py"],
      "env": {}
    }
  }
}

A custom MCP host built on Gradio, HuggingFace smolagents, and the OpenAI SDK is also provided for use beyond third-party MCP hosts. Debug with npx @modelcontextprotocol/inspector python src/main.py.

Who it's for

Planetary science researchers and students who want a controlled, conversational way to search NASA's PDS Registry for missions, instruments, and data products, staying in the driver's seat of the search rather than delegating it fully to the AI.

Source README

NASA PDS Registry MCP Server

A Model Context Protocol (MCP) server that provides access to the NASA Planetary Data System (PDS) Registry API using FastMCP.

https://github.com/user-attachments/assets/1d6b7035-c07a-4ca3-8bd2-9c19d68c3d5c

Overview

The NASA PDS MCP server enables human-in-the-loop agentic search and exploration of NASA PDS data products, bundles, and collections through a simple interface, directly integrating with the NASA PDS Registry API.

By open-sourcing this MCP server, we aim to support the researchers of the Planetary Data Science community enabling easy access to NASA PDS data for their future research endeavors.

image

Features

  • Mission & Project Search: Find space missions, investigations, and research projects with filtering by keywords and mission types
  • Celestial Body Discovery: Search for planets, moons, asteroids, comets, and other astronomical targets by name or type
  • Spacecraft & Platform Search: Locate spacecraft, rovers, landers, telescopes, and other instrument-carrying platforms
  • Scientific Instrument Lookup: Find cameras, spectrometers, detectors, and other scientific instruments used in space missions
  • Data Collection Exploration: Search and filter data collections by mission, target, instrument, or spacecraft relationships
  • Product Relationship Mapping: Discover connections between missions, targets, instruments, and data products
  • Detailed Product Information: Retrieve comprehensive metadata and details for specific PDS products using URN identifiers
  • Reference Data Access: Access categorized lists of target types, spacecraft types, instrument types, and mission types for filtering and discovery

Example Conversation

  1. Which instrument do seismic observations in the PDS?
  2. What is the identifier of the moon in the PDS?
  3. What data is collected from these instruments are targeting the Moon? (include URNs if need be)?
  4. What missions produced these observations?

Installation

  1. Clone this repository:
git clone https://github.com/NASA-PDS/pds-mcp-server.git
cd pds-mcp-server
  1. Install dependencies:

Requires Python 3.13+.

python3.13 -m venv {env-name}
source {env-name}/bin/activate
pip install -r requirements.txt

Usage

Running the Server Standalone

If you need to expose the MCP tools as a server, you can run it, standalone, as follows:

python3.13 pds_mcp_server.py

MCP Client Configuration (Claude Desktop, Cursor, or Custom MCP client)

{
  "mcpServers": {
    "pds-registry": {
      "command": "/path/to/{env-name}/bin/python3.13",
      "args": ["/path/to/pds_mcp_server.py"],
      "env": {}
    }
  }
}

Suggested Instructions

We recommend using these instructions in your MCP Client:

You are only allowed to make one tool call per request. In the returned search results, output the URNs (identifiers) as additional information alongside the result. After each message, you will propose to the user what next steps they can take and ask them to choose.

This creates a human-in-the-loop agentic search conversation: allowing the user to control how they want to search through the NASA Planetary Data System.

Example on how to set up in Claude Desktop.

Custom MCP Hosts

To go beyond 3rd party MCP Hosts (Cursor, Claude Desktop, etc.), we have an example of a custom MCP Host built on Gradio UI, HuggingFace smolagents, and the OpenAI SDK. More here.

Development

MCP Inspector (Debugging)

npx @modelcontextprotocol/inspector python src/main.py

More on MCP Inspector here.

Dependencies

Requires Python 3.13+. Library dependencies listed in requirements.txt.

Other Resources

FAQ

Common questions

Discussion

Questions & comments · 0

Sign In Sign in to leave a comment.