NASA PDS Registry MCP Server
OfficialProvides access to the NASA Planetary Data System (PDS) Registry API for searching and exploring missions, celestial bodies, spacecraft, instruments, data collections, and product relationships.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@NASA PDS Registry MCP ServerSearch for Mars rover Curiosity data products"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Agentic Search for the NASA Planetary Data System
An MCP server and reproducible evaluation of multistep natural-language search over the NASA Planetary Data System (PDS) Registry -- the digital data archive for all of NASA's planetary missions, flight and ground-based observations, and laboratory experiments from the 1960s to the present. With more than 1.85 petabytes from 70+ missions, 4,500 datasets, and 700 instruments all peer-reviewed by JPL and other research institutions.
Evaluation study · Results · Dataset · Data engine · Benchmark and reproducibility · MCP server · Development guide
https://github.com/user-attachments/assets/1d6b7035-c07a-4ca3-8bd2-9c19d68c3d5c
Abstract
The NASA Planetary Data System (PDS) serves as a high-quality, hand-curated data source for the whole community of planetary research. However, searching the PDS Registry is difficult, requiring knowledge of exact PDS4 ontology fields and context identifiers to manually construct queries for its public search APIs. The research chain of scientific question -> experimentation -> findings/results is thus bottlenecked by current PDS search capabilities.
We introduce PDS-MCP, an agentic search interface on top of the NASA PDS Registry. From natural language questions, our agent can iteratively resolve PDS entities, inspect relationships, construct valid filters, and retrieve matching products autonomously constructing PDS API queries with no manual human intervention. We evaluate this on our 300-question benchmark, constructed from our scalable data engine, with results achieving 98.02% macro F1 and 95.67% exact result-set match on our full system, compared with 12.29% and 8.33% for single-call MCP and 0.33% on both metrics without PDS access, demonstrating that it can reliably bridge natural-language questions and structured PDS retrieval.
By releasing PDS-MCP publically, we aim to support the researchers of the Planetary Data Science community by making it easier to access NASA PDS data. Our goal is to provide enhanced search capabilities that enable more effective data exploration and improve accessibility for future research endeavors.
Related MCP server: NASA MCP Server
Evaluation study
Research question
Can a language-model agent reliably translate natural-language planetary-data requests into complete PDS Registry result sets, and does multistep MCP search outperform the same model with one or zero PDS tool calls?
Benchmark
The benchmark dataset contains 300 independent questions:
Dimension | Coverage |
Multihop questions with two or three context constraints | 225 |
Single-constraint controls | 75 |
Archive-collection retrieval questions | 294 |
Context lookups | 6 |
Target result-set size | 1–98 PDS identifiers |
Data Engine
The complete benchmark data engine and its dataset documentation are included in this repository.
Ground truth was constructed as follows:
Select compatible PDS context objects → Build a PDS API query → Compile and execute it against the live PDS API → Save search results as target → Derive a natural-language questions as inputs
For each benchmark item,
input: the natural-language question
target: the desired search results (from the intermediary PDS query)
Thus, the job of the agent run on the benchmark is to use the NLQ to build a PDS API query (without knowledge of the original one used in the data engine) and get the target search results.
Conditions
Condition | Model | PDS access | Purpose |
Baseline | GPT-5.6 Luna | None | The same LLM without PDS-MCP or access to the PDS search interface. |
Single-call MCP | GPT-5.6 Luna | At most one live MCP call | Tests whether tool availability without iterative search is sufficient. |
Multistep MCP (ours) | GPT-5.6 Luna | Iterative live MCP calls | Tests entity resolution, refinement, and collection retrieval. |
Results

Condition | Macro precision | Macro recall | Macro F1 | Exact match | Mean calls | Mean latency |
Baseline | 0.33% | 0.33% | 0.33% | 0.33% | 0.00 | 8.00 s |
Single-call MCP | 13.62% | 11.71% | 12.29% | 8.33% | 1.01 | 29.86 s |
Multistep MCP (ours) | 98.18% | 97.97% | 98.02% | 95.67% | 5.28 | 47.24 s |
Diagnostic analyses
How multistep search works
A request such as:
Find PDS collections from the New Horizons Kuiper Belt Extended Mission 1, collected by the Radio Science Experiment, targeting Arrokoth.
requires the agent to resolve several ontology objects before retrieving data:
Resolve the KEM1 investigation identifier.
Resolve the New Horizons REX instrument identifier.
Resolve Arrokoth and its PDS target identifier.
Search collections using the compatible investigation, instrument, and target constraints.
Return the complete normalized collection-identifier set.
This mirrors the work a user would otherwise perform manually when discovering PDS4 context identifiers and exact Registry filters.
Benchmark and reproducibility
Readers interested in the benchmark can start with the
research/data guide. The underlying
pds_research data engine samples compatible PDS entities,
builds and validates typed query plans, executes live API requests, and writes
the resulting questions and target identifier sets.
Artifact | Description |
Dataset documentation and links to its construction pipeline. | |
Questions, typed query plans, API requests, ground-truth identifiers, difficulty labels, and provenance. | |
Benchmark-generation, validation, query-compilation, and evaluation code. | |
Raw baseline predictions from the LLM without PDS-MCP or PDS search access. | |
Raw single-call predictions. | |
Raw multistep predictions. | |
Graph-ready aggregate comparison. | |
Machine-readable metrics and resource measurements. | |
Multistep hop-count distribution and exact accuracy by call count. | |
Headline, difficulty, retrieval-error, and trajectory-length figures in PNG and SVG formats. | |
Dependency-free script that regenerates the supporting SVG figures from committed metrics. |
Recompute identifier-set metrics with:
pds-research score \
research/data/main-300-live.jsonl \
research/results/codex-live-main-300-gpt-5.6-luna.jsonlSee DEVELOPMENT.md for environment setup, server execution, MCP client configuration, and test commands.
MCP server
The FastMCP server in src/pds_mcp_server.py exposes
live PDS Registry operations for:
Investigation, target, instrument-host, and instrument search.
Context-product traversal.
Collection search by investigation, target, instrument, and host.
Detailed product retrieval by PDS identifier.
The server can be used from Claude Desktop, Cursor, Codex, or another MCP-compatible host. Setup instructions are in DEVELOPMENT.md.
Example research queries
Find Apollo 17 collections produced by the Lunar Surface Experiments Package Heat Flow Experiment and targeting the Moon.
Find InSight collections produced by the Auxiliary Payload Sensor Subsystem temperature and wind sensor and targeting Mars.
Find Cassini collections produced by the Imaging Science Subsystem Wide Angle camera and hosted on the Cassini Orbiter.
Find New Horizons KEM1 radio-science collections targeting Arrokoth.
These examples are drawn from the released benchmark; the complete set is
available in main-300-live.jsonl.
License
Code is released under the MIT License.
Support
PDS Registry API: contact
pds-operator@jpl.nasa.govor open an issue in the PDS API repository.This server and study: open an issue in this repository.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Public tools to understand Dynamik, discover datasets, and connect account-scoped capabilities.
NASA MCP — wraps NASA Open APIs (api.nasa.gov)
Gateway between LLM agents and world data through eight tools and a bundled endpoint catalog.
Search public Australian environmental evidence with provenance across authoritative catalogues.
Related MCP Servers
- AlicenseBqualityDmaintenanceProvides standardized access to 20+ NASA data sources including astronomy pictures, Mars rover photos, near-Earth objects, satellite imagery, space weather, and planetary data through a unified interface optimized for AI consumption.2318ISC
- AlicenseNot gradedqualityDmaintenanceProvides access to NASA's public APIs including Astronomy Picture of the Day, Mars Rover Images, and Near Earth Objects data, enabling users to query and retrieve space-related information through natural language.5MIT
- FlicenseNot gradedqualityDmaintenanceProvides access to NASA's open APIs including astronomy imagery, Mars rover photos, asteroid tracking, Earth observations, and media library through natural language interaction.9
- AlicenseNot gradedqualityBmaintenanceEnables querying of the Cassini-Huygens mission dataset with tools for listing, searching, counting, aggregating, and browsing activities.MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/NASA-PDS/pds-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server