Is the Nasa Earthdata MCP server down?

mcp-registry/io.github.nasa/earthdata-mcp · vdev

healthy
Last checked 2026-10-19 16:13 UTC · handshake 132ms

As of 2026-10-19 16:13 UTC, the Nasa Earthdata MCP server is up with a Glimind reliability score of 82/100 (grade B). Over the last 30 days it answered 99.8% of Glimind's liveness checks. It had 9 outages in 90 days, with a median recovery of 7 minutes.

uptime (30d checks)
99.8%
checks observed
3,868
outages (90d)
9
tools
7

Discover, verify, and access NASA Earth science datasets via the Common Metadata Repository (CMR)

Install Nasa Earthdata MCP server

Add to Cursor Add to VS Code

Claude Code

claude mcp add --transport http nasa-earthdata-mcp-server https://cmr.earthdata.nasa.gov/mcp/v1

Claude Desktop · Windsurf · Cline (mcpServers JSON)

{
  "mcpServers": {
    "nasa-earthdata-mcp-server": {
      "type": "http",
      "url": "https://cmr.earthdata.nasa.gov/mcp/v1"
    }
  }
}

Third-party server, listed as discovered. Review its source before installing.

Agent-readiness: C (76/100)

C (76/100): 0 error(s), 3 warning(s) across 7 tool(s); ~4,841 tokens of tool definitions.
Scores higher than 13% of 15,350 MCP servers Glimind has audited.
Its tool list costs an agent ~4,841 tokens per session — more than 60% of servers.
76 → 76 since 2026-10-17
no tool-poisoning patterns
Schemas100
Descriptions30
Safety hints60
Token cost83
Client compatibility100
Protocol100
Reliability85
Stability100

What to fix (4)

1 tool definition(s) exceed ~1,200 tokens each (largest: get_collections, ~1,542).

Move long reference material out of descriptions (link a doc or expose a resource), drop repeated examples, and collapse large enums. Trimming these to ~600 tokens saves ~942 tokens every session. How to fix →

Tools: get_collections · saves ~942 tokens/session

22 parameter(s) across 7 tool(s) have no description.

Add a "description" to each parameter with its format and an example ("ISO 8601 date, e.g. 2026-10-17"). This is the commonest cause of wrong arguments on the first call. How to fix →

Tools: get_citations, get_collections, get_granules, get_keywords, get_services and 2 more

Handshake + tools/list takes ~1,602 ms.

Serve tools/list from memory, keep the process warm, and host close to your users. Every new agent session pays this before its first call.

3 of 7 tool(s) carry no readOnlyHint/destructiveHint annotations.

Annotate read-only tools with {"readOnlyHint": true}. Agents and gateways can then run them without a confirmation prompt, and route around destructive ones. How to fix →

Tools: get_citations, get_keywords, get_variables

Auto-fix: 3 corrected tool definitions

Paste-ready definitions with the problems above fixed. Changes marked verify need a human look. 7 tool(s) still need parameter descriptions written by someone who knows the API. All of them as JSON: /v1/readiness/mcp-registry%2Fio.github.nasa%2Fearthdata-mcp/fixes

get_citations 1 change
{
  "name": "get_citations",
  "description": "Discover citation records directly associated with a collection, or look up a citation by identifier (e.g. DOI). Use this tool to evaluate citation relevance for a collection.\n\nKey fields in each returned item:\n- concept_id: CMR citation concept ID\n- name: The title or name of the citation\n- identifier: The primary DOI or identifier\n- abstract: Abstract text\n- citation_metadata: Nested metadata including Year, Publisher, and Author list",
  "inputSchema": {
    "type": "object",
    "properties": {
      "limit": {
        "type": "integer",
        "default": 10,
        "description": "Maximum number of results to return (default 10, max 50). Keep this small to avoid context window bloat. When using limit > 10, always specify the fields parameter."
      },
      "cursor": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "default": null,
        "description": "Pagination token for the next page of results. Pass the exact next_cursor string returned by the previous tool call. Cursors are query-scoped: they lock in the original search parameters and cannot be reused across different tools or different queries. If you need to change any search parameter, start a new search without a cursor."
      },
      "fields": {
        "anyOf": [
          {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          {
            "type": "null"
          }
        ],
        "default": null
      },
      "provider": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "default": null
      },
      "identifier": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "default": null
      },
      "collection_concept_id": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "default": null
      }
    },
    "additionalProperties": false
  },
  "annotations": {
    "readOnlyHint": true
  }
}
get_keywords 1 change
{
  "name": "get_keywords",
  "description": "Discover official Earthdata vocabulary (like 'ATMOSPHERIC WATER VAPOR') directly from NASA's Keyword Management System (KMS). Use this to find the exact preferred labels to construct successful get_collections searches.\n\nKey fields in each returned item:\n- prefLabel: The preferred label to use in searches\n- uuid: The KMS concept UUID\n- definition: Context and expanded acronyms\n- scheme: The vocabulary scheme (e.g. sciencekeywords, platforms)",
  "inputSchema": {
    "type": "object",
    "required": [
      "query"
    ],
    "properties": {
      "limit": {
        "type": "integer",
        "default": 10,
        "description": "Maximum number of results to return (default 10, max 50). Keep this small to avoid context window bloat. When using limit > 10, always specify the fields parameter."
      },
      "query": {
        "type": "string"
      },
      "cursor": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "default": null,
        "description": "Pagination token for the next page of results. Pass the exact next_cursor string returned by the previous tool call. Cursors are query-scoped: they lock in the original search parameters and cannot be reused across different tools or different queries. If you need to change any search parameter, start a new search without a cursor."
      },
      "fields": {
        "anyOf": [
          {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          {
            "type": "null"
          }
        ],
        "default": null
      },
      "scheme": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "default": null
      }
    },
    "additionalProperties": false
  },
  "annotations": {
    "readOnlyHint": true
  }
}
get_variables 1 change
{
  "name": "get_variables",
  "description": "Discover scientific variables and measurements associated with a collection, or look up variables by keyword. Use this tool to understand dataset variables, dimensions, and data processing parameters (such as scale, offset, and fill values) before downloading or analyzing data.\n\nKey fields in each returned item:\n- concept_id: CMR variable concept ID\n- name: Variable short name\n- long_name: Variable long name\n- definition: Variable definition\n- data_type: Data type of the variable\n- units: Units ",
  "inputSchema": {
    "type": "object",
    "properties": {
      "limit": {
        "type": "integer",
        "default": 10,
        "description": "Maximum number of results to return (default 10, max 50). Keep this small to avoid context window bloat. When using limit > 10, always specify the fields parameter."
      },
      "cursor": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "default": null,
        "description": "Pagination token for the next page of results. Pass the exact next_cursor string returned by the previous tool call. Cursors are query-scoped: they lock in the original search parameters and cannot be reused across different tools or different queries. If you need to change any search parameter, start a new search without a cursor."
      },
      "fields": {
        "anyOf": [
          {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          {
            "type": "null"
          }
        ],
        "default": null
      },
      "keyword": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "default": null
      },
      "collection_concept_id": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "default": null
      }
    },
    "additionalProperties": false
  },
  "annotations": {
    "readOnlyHint": true
  }
}

Get alerted

Get an email or webhook when this server's readiness drops by 10+ points, tool-poisoning text appears, or a tool breaks:

curl -X POST https://glimind.com/v1/subscriptions -H 'content-type: application/json' -d '{"tools":["mcp-registry/io.github.nasa/earthdata-mcp"],"email":"[email protected]"}'

Agents: watch_tool({"toolId": "mcp-registry/io.github.nasa/earthdata-mcp"}) over MCP.

Passed

Largest tool definitions

Static checks of the advertised tools/list (schema, descriptions, annotations, tool-poisoning patterns, names, size) plus observed protocol, uptime, latency and contract changes. Read-only: no tool is ever called. Weights: schema 15, docs 20, safety 15, efficiency 15, compatibility 15, protocol 5, reliability 10, stability 5. Token counts are estimates (~3.6 characters per token).

Operator? Fix these, then re-check live. Embed the readiness badge:

Markdown
[![MCP agent-readiness](https://glimind.com/v1/readiness/badge/mcp-registry%2Fio.github.nasa%2Fearthdata-mcp.svg)](https://glimind.com/server/mcp-registry%2Fio.github.nasa%2Fearthdata-mcp?ref=badge)
HTML
<a href="https://glimind.com/server/mcp-registry%2Fio.github.nasa%2Fearthdata-mcp?ref=badge"><img src="https://glimind.com/v1/readiness/badge/mcp-registry%2Fio.github.nasa%2Fearthdata-mcp.svg" alt="MCP agent-readiness"></a>
reStructuredText
.. image:: https://glimind.com/v1/readiness/badge/mcp-registry%2Fio.github.nasa%2Fearthdata-mcp.svg
   :target: https://glimind.com/server/mcp-registry%2Fio.github.nasa%2Fearthdata-mcp?ref=badge
   :alt: MCP agent-readiness

Tool-definition log

Glimind records every version of this server's tool definitions in a signed, append-only transparency log. Current manifest sha256:2a8cd151ee4aea10…, first seen 2026-10-17, included at leaf 10069 of 27,557. Version history · verify what your client received.

Tools (7)

Compare: most reliable retrieval servers · most reliable search servers · most reliable data servers

Know before your agent calls it

Glimind tells agents whether a server is up right now and how to call it, then fails over to a live alternative when it isn't.

Add Glimind — free, no signup:

Add to Cursor Add to VS Code

Claude Code

claude mcp add --transport http glimind https://glimind.com/mcp

Claude Desktop · Windsurf · Cline (mcpServers JSON)

{
  "mcpServers": {
    "glimind": {
      "type": "http",
      "url": "https://glimind.com/mcp"
    }
  }
}

FAQ

Is the Nasa Earthdata MCP server down right now?

As of 2026-10-19 16:13 UTC, the Nasa Earthdata MCP server is up with a Glimind reliability score of 82/100 (grade B). Over the last 30 days it answered 99.8% of Glimind's liveness checks. It had 9 outages in 90 days, with a median recovery of 7 minutes.

How many tools does Nasa Earthdata MCP server provide?

Nasa Earthdata MCP server advertises 7 tools, including get_citations, get_collections, get_granules, get_keywords, get_services.

How do I install Nasa Earthdata MCP server?

Point your MCP client at this streamable-http endpoint: https://cmr.earthdata.nasa.gov/mcp/v1

Is the Nasa Earthdata MCP server safe to connect to an AI agent?

Glimind scanned all 7 tool definitions for tool-poisoning patterns — hidden or invisible characters, instructions that override the model, concealment from the user, requests to read credential or MCP config files, conversation exfiltration and cross-tool shadowing — and found none. This checks what the server tells the model, not what its code does; review the source before granting access to sensitive data.

Operator of Nasa Earthdata MCP server?

Status page: 90-day uptime, every outage and how long it lasted.

Claim this listing to get the Verified operator marker, a remediation checklist and owner analytics, or embed the live badge from any of the tool pages above. Maintainers: alerts, deploy attestation and monthly reports.

Status is an automated estimate from Glimind's liveness checks (handshake and tool listing only; no tool is ever called) and may lag or differ from your network. Glimind is not affiliated with this server or its operator. Operator? Request a correction or opt out at https://glimind.com/opt-out.

Feedback
Help us improve