Skip to main content
Glama

NPM 版本

NASA MCP 服务器

一个用于 NASA API 的模型上下文协议 (MCP) 服务器,为 AI 模型提供标准化接口,使其能够与 NASA 的海量数据源进行交互。该服务器实现了官方的模型上下文协议规范。

非常感谢 MCP 社区的支持和指导!

特征

  • 通过单一、一致的界面访问 20 多个 NASA 数据源

  • 针对人工智能消费优化的标准化数据格式

  • 自动参数验证和错误处理

  • NASA API 密钥的速率限制管理

  • 全面的文档和示例

  • 支持各种 NASA 图像格式

  • 数据转换和格式化以实现 LLM 兼容性

  • 跨平台支持(Windows、macOS、Linux)

Related MCP server: NASA APOD MCP Server

免责声明

**本项目与美国国家航空航天局 (NASA) 或其任何子公司或附属机构均无关联、认可或相关关系。**它是一个独立的实现,可访问 NASA 的公开 API。所有使用的 NASA 数据均公开,并受 NASA 数据使用政策的约束。

安装

使用 npx 运行

env NASA_API_KEY=YOUR_API_KEY npx -y @programcomputer/nasa-mcp-server@latest

您还可以将 API 密钥作为命令行参数传递:

npx -y @programcomputer/nasa-mcp-server@latest --nasa-api-key=YOUR_API_KEY

使用 SuperGateway 发送服务器发送事件 (SSE)

您可以使用SuperGateway进行服务器发送事件 (SSE)。

NASA-MCP-server 的开发者不认可 SuperGateway 仓库。此信息仅供希望自行实现 SSE 功能的用户参考。

手动安装

# Clone the repository
git clone https://github.com/ProgramComputer/NASA-MCP-server.git

# Install dependencies
cd NASA-MCP-server
npm install

# Run with your API key
NASA_API_KEY=YOUR_API_KEY npm start

在光标上运行

配置 Cursor 🖥️ 注意:需要 Cursor 版本 0.45.6+

要在 Cursor 中配置 NASA MCP 服务器:

在您的 Cursor 配置目录中创建或编辑mcp.json文件,其中包含以下内容:

{
  "mcpServers": {
    "nasa-mcp": {
      "command": "npx",
      "args": ["-y", "@programcomputer/nasa-mcp-server@latest"],
      "env": {
        "NASA_API_KEY": "your-api-key"
      }
    }
  }
}

将your-api-key替换为来自https://api.nasa.gov/的 NASA API 密钥。

添加配置后,重新启动 Cursor 即可看到新的 NASA 工具。Composer Agent 会在适当的情况下自动使用 NASA MCP 进行与空间相关的查询。

环境变量

可以使用以下环境变量配置服务器:

多变的

描述

NASA_API_KEY

您的 NASA API 密钥(从 api.nasa.gov 获取)

包含 NASA API

该 MCP 服务器集成了以下 NASA API:

  1. NASA开放API (api.nasa.gov):

    • APOD(每日天文图片)

    • EPIC(地球多色成像相机)

    • DONKI(空间天气通知、知识、信息数据库)

    • 洞察号(火星气象服务)

    • 火星探测器照片

    • NEO(近地天体网络服务)

    • EONET(地球观测站自然事件追踪器)

    • TLE(双线元件)

    • 美国宇航局图像和视频库

    • 系外行星档案

    • NASA 声音 API(测试版)

    • 电力(全球能源资源预测)

  2. JPL太阳系动力学API (ssd-api.jpl.nasa.gov):

    • SBDB(小体数据库)

    • SBDB近距离数据

    • 火球数据

    • 侦察 API

  3. 地球数据API :

    • GIBS(全球图像浏览服务)

    • CMR(通用元数据存储库)——增强了高级搜索功能

    • EPIC(地球多色成像相机)

    • FIRMS(资源管理系统火灾信息)

API 方法

每个 NASA API 都通过标准化 MCP 方法公开:

APOD(每日天文图片)

{
  "method": "nasa/apod",
  "params": {
    "date": "2023-01-01", // Optional: YYYY-MM-DD format
    "count": 5, // Optional: Return a specified number of random images
    "thumbs": true // Optional: Return URL of video thumbnail
  }
}

火星探测器照片

{
  "method": "nasa/mars-rover",
  "params": {
    "rover": "curiosity", // Required: "curiosity", "opportunity", or "spirit"
    "sol": 1000, // Either sol or earth_date is required
    "earth_date": "2023-01-01", // YYYY-MM-DD format
    "camera": "FHAZ" // Optional: Filter by camera type
  }
}

近地天体

{
  "method": "nasa/neo",
  "params": {
    "start_date": "2023-01-01", // Required: YYYY-MM-DD format
    "end_date": "2023-01-07" // Required: YYYY-MM-DD format (max 7 days from start)
  }
}

GIBS(全球图像浏览服务)

{
  "method": "nasa/gibs",
  "params": {
    "layer": "MODIS_Terra_CorrectedReflectance_TrueColor", // Required: Layer ID
    "date": "2023-01-01", // Required: YYYY-MM-DD format
    "format": "png" // Optional: "png" or "jpg"
  }
}

电力(全球能源资源预测)

{
  "method": "nasa/power",
  "params": {
    "parameters": "T2M,PRECTOTCORR,WS10M", // Required: Comma-separated list
    "community": "re", // Required: Community identifier
    "latitude": 40.7128, // Required: Latitude
    "longitude": -74.0060, // Required: Longitude
    "start": "20220101", // Required: Start date (YYYYMMDD)
    "end": "20220107" // Required: End date (YYYYMMDD)
  }
}

有关所有可用方法和参数的完整文档,请参阅/docs目录中的 API 参考。

日志系统

该服务器包括全面的日志记录:

  • 运营状况及进展

  • 性能指标

  • 速率限制跟踪

  • 错误条件

  • 请求验证

日志消息示例:

[INFO] NASA MCP Server initialized successfully
[INFO] Processing APOD request for date: 2023-01-01
[INFO] Fetching Mars Rover data for Curiosity, sol 1000
[WARNING] Rate limit threshold reached (80%)
[ERROR] Invalid parameter: 'date' must be in YYYY-MM-DD format

安全注意事项

该 MCP 服务器遵循模型上下文协议规范实现安全最佳实践:

  • 使用 Zod 模式进行输入验证和清理

  • 禁止执行任意代码

  • 防止命令注入

  • 适当的错误处理以防止信息泄露

  • API 请求的速率限制和超时控制

  • 没有可跨会话利用的持久状态

发展

# Clone the repository
git clone https://github.com/ProgramComputer/NASA-MCP-server.git

# Install dependencies
npm install

# Copy the example environment file and update with your API keys
cp .env.example .env

# Build the TypeScript code
npm run build

# Start the development server
npm run dev

# Run tests
npm test

使用 MCP Inspector 进行测试

NASA MCP 服务器包含一个脚本,可帮助您使用 MCP 检查器测试 API:

# Run the provided test script
./scripts/test-with-inspector.sh

这将:

  1. 构建项目以确保包含最新的更改

  2. 在 NASA MCP 服务器运行的情况下启动 MCP 检查器

  3. 允许您以交互方式测试所有 NASA API

测试请求示例

该存储库包含每个 API 的示例测试请求,您可以将其复制并粘贴到 MCP 检查器中:

# View the example test requests
cat docs/inspector-test-examples.md

有关详细示例,请参阅Inspector 测试示例文档。

MCP 客户端使用

此服务器遵循官方模型上下文协议 (Model Context Protocol)。以下是如何将其与 MCP SDK 配合使用的示例:

import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { HttpClientTransport } from "@modelcontextprotocol/sdk/client/http.js";

const transport = new HttpClientTransport({
  url: "http://localhost:3000",
});

const client = new Client({
  name: "mcp-client",
  version: "1.0.0",
});

await client.connect(transport);

// Example: Get today's Astronomy Picture of the Day
const apodResult = await client.request({
  method: "nasa/apod", 
  params: {}
});

// Example: Get Mars Rover photos
const marsRoverResult = await client.request({
  method: "nasa/mars-rover",
  params: { rover: "curiosity", sol: 1000 }
});

// Example: Search for Near Earth Objects
const neoResults = await client.request({
  method: "nasa/neo",
  params: {
    start_date: '2023-01-01',
    end_date: '2023-01-07'
  }
});

// Example: Get satellite imagery from GIBS
const satelliteImage = await client.request({
  method: "nasa/gibs",
  params: {
    layer: 'MODIS_Terra_CorrectedReflectance_TrueColor',
    date: '2023-01-01'
  }
});

// Example: Use the new POWER API
const powerData = await client.request({
  method: "nasa/power",
  params: {
    parameters: "T2M,PRECTOTCORR,WS10M",
    community: "re",
    latitude: 40.7128,
    longitude: -74.0060,
    start: "20220101",
    end: "20220107"
  }
});

贡献

  1. 分叉存储库

  2. 创建你的功能分支

  3. 运行测试: npm test

  4. 提交拉取请求

执照

ISC 许可证 - 详情请参阅许可证文件

Available Tools

32 tools
jpl_cadJPL close approachesC
Read-onlyIdempotent

Asteroid and comet close approaches to the planets, past and future, from the JPL SBDB Close-Approach Data API.

NameRequiredDescriptionDefault
desNoOnly this object (designation).
neoNoLimit to NEOs (default true upstream).
spkNoOnly this object (SPK-ID).
bodyNoClose-approach body (Earth, Mars, ALL, ...). Default Earth.
sortNoSort field, prefix - for descending. Default date.
h_maxNoMaximum absolute magnitude H.
h_minNoMinimum absolute magnitude H.
limitNoMaximum number of records (1-1000).
date_maxNoEnd date (YYYY-MM-DD, now, or +/-days). Default +60.
date_minNoStart date (YYYY-MM-DD, now, or +/-days). Default now.
dist_maxNoMaximum approach distance, e.g. 0.05 (au) or 10LD. Default 0.05 au.
dist_minNoMinimum approach distance.
fullnameNoInclude full object names.
jpl_fireballJPL fireball eventsB
Read-onlyIdempotent

Fireball (bolide) events reported by US Government sensors, from the JPL Fireball API.

NameRequiredDescriptionDefault
limitNoMaximum number of events (1-1000).
req_altNoOnly events with an altitude.
req_locNoOnly events with a location.
req_velNoOnly events with a velocity.
vel_maxNoMaximum velocity (km/s).
vel_minNoMinimum velocity (km/s).
date_maxNoLatest event date (YYYY-MM-DD).
date_minNoEarliest event date (YYYY-MM-DD).
energy_maxNoMaximum total radiated energy (1e10 J).
energy_minNoMinimum total radiated energy (1e10 J).
impact_e_maxNoMaximum estimated impact energy (kt).
impact_e_minNoMinimum estimated impact energy (kt).
req_vel_compNoOnly events with velocity components.
jpl_horizonsJPL Horizons ephemeridesC
Read-onlyIdempotent

Ephemerides and object data for solar-system bodies from the JPL Horizons API (GET).

NameRequiredDescriptionDefault
CENTERNoCoordinate center, e.g. '500@399' (geocentric).
formatNoResponse format.json
COMMANDYesTarget, e.g. '499' (Mars), '1;' (Ceres), 'C/2020 F3'.
OBJ_DATANoInclude object data.
OUT_UNITSNoOutput units for vector/element tables.
STEP_SIZENoStep size, e.g. '1d' or '1h'.
STOP_TIMENoStop time, e.g. '2024-01-02'.
EPHEM_TYPENoEphemeris type.
MAKE_EPHEMNoGenerate an ephemeris.
QUANTITIESNoObserver quantities, e.g. 'A' or '1,2,20,23'.
START_TIMENoStart time, e.g. '2024-01-01'.
jpl_horizons_fileJPL Horizons ephemerides (file input)B
Read-onlyIdempotent

Same as jpl_horizons, but submits the parameters as a Horizons input file (POST to horizons_file.api).

NameRequiredDescriptionDefault
CENTERNoCoordinate center, e.g. '500@399' (geocentric).
formatNoResponse format.json
COMMANDYesTarget, e.g. '499' (Mars), '1;' (Ceres), 'C/2020 F3'.
OBJ_DATANoInclude object data.
OUT_UNITSNoOutput units for vector/element tables.
STEP_SIZENoStep size, e.g. '1d' or '1h'.
STOP_TIMENoStop time, e.g. '2024-01-02'.
EPHEM_TYPENoEphemeris type.
MAKE_EPHEMNoGenerate an ephemeris.
QUANTITIESNoObserver quantities, e.g. 'A' or '1,2,20,23'.
START_TIMENoStart time, e.g. '2024-01-01'.
jpl_jd_calJPL Julian date converterB
Read-onlyIdempotent

Convert between Julian dates and calendar dates (UTC) with the JPL JD-Calendar API.

NameRequiredDescriptionDefault
cdNoCalendar date (UTC) to convert to a Julian date.
jdNoJulian date to convert to a calendar date.
jpl_mission_designJPL small-body mission designA
Read-onlyIdempotent

Ballistic mission options to asteroids and comets from the JPL Small-Body Mission Design API. Object mode (des, spk or sstr) returns the pre-computed mission options stored for one object (launch and arrival dates, V-infinity, time of flight). List mode returns the most accessible small bodies for the given launch years, ranked by crit, with optional SBDB filters. Porkchop-plot maps (mode M) and mission-extension searches (mode T) are not exposed.

NameRequiredDescriptionDefault
desNoObject mode: designation, e.g. 2012 TC4 or 433.
limNoList mode: how many accessible objects to return (1-200).
spkNoObject mode: SPK-ID, e.g. 2000433.
critNoList mode: optimality criterion. 1 min departure V-infinity (default), 2 min arrival V-infinity, 3 min total delta-V, 4-6 the same with minimum time of flight first.
sstrNoObject mode: search string (name, designation or SPK-ID), e.g. apophis.
yearNoList mode: launch year(s), from the current year up to 20 years ahead. JPL defaults to the next five years.
classNoObject mode: orbit class as a name instead of the three-letter code.
sb_nsNoList mode: numbered (n) or unnumbered (u) objects only.
sb_satNoList mode: only objects with at least one known satellite.
sb_kindNoList mode: asteroids (a) or comets (c) only.
sb_classNoList mode: orbit class code(s), e.g. APO or MBA,OMB (case-sensitive).
sb_groupNoList mode: NEOs or PHAs only.
sb_xfragNoList mode: exclude comet fragments.
jpl_nhatsJPL NHATS human-accessible NEOsB
Read-onlyIdempotent

Near-Earth objects accessible to human missions (NHATS): a constrained summary list, or one object by des/spk.

NameRequiredDescriptionDefault
hNoMaximum absolute magnitude H (16-30).
dvNoMaximum total delta-V in km/s (4-12).
desNoObject designation, e.g. 99942 (object mode).
durNoMaximum total mission duration in days (60-450).
occNoMaximum orbit condition code (0-8).
spkNoObject SPK-ID (object mode).
plotNoInclude a base64 plot (object mode; large).
stayNoMinimum stay at the NEO in days (8, 16, 24 or 32).
launchNoLaunch window.
jpl_periodic_orbitsJPL three-body periodic orbitsC
Read-onlyIdempotent

Periodic orbits (halo, DRO, Lyapunov, ...) in three-body systems from the JPL Three-Body Periodic Orbits database.

NameRequiredDescriptionDefault
sysYesThree-body system, e.g. earth-moon, sun-earth, mars-phobos.
librNoLibration point 1-5 (required by some families).
branchNoBranch (required by some families), e.g. N or S.
familyYesOrbit family, e.g. halo, dro, lyapunov, vertical, axial, butterfly.
stabmaxNoMaximum stability index.
stabminNoMinimum stability index.
jacobimaxNoMaximum Jacobi constant.
jacobiminNoMinimum Jacobi constant.
periodmaxNoMaximum period.
periodminNoMinimum period.
periodunitsNoUnits for periodmin/periodmax.
jpl_sbdbJPL Small-Body Database lookupB
Read-onlyIdempotent

Orbital and physical data for one asteroid or comet from the JPL Small-Body Database (SBDB).

NameRequiredDescriptionDefault
cadNoDEPRECATED alias for ca_data.
desNoPrimary designation or IAU number.
satNoInclude satellite data.
spkNoSPK-ID of the object.
sstrNoSearch string: name, designation or number (e.g. Ceres, 433, 2019 OK).
ca_bodyNoLimit close approaches to this body (e.g. Earth); needs ca_data.
ca_dataNoInclude close-approach data.
vi_dataNoInclude Sentry virtual-impactor data.
phys_parNoInclude physical parameters.
discoveryNoInclude discovery circumstances.
full_precNoFull-precision orbital elements.
alt_orbitsNoInclude alternate orbits.
jpl_scoutJPL Scout NEOCP hazard assessmentB
Read-onlyIdempotent

JPL Scout trajectory analysis and hazard assessment for unconfirmed objects on the Minor Planet Center NEO Confirmation Page.

NameRequiredDescriptionDefault
fileNoObject mode: include the observation file as a list or in MPC format.
plotNoObject mode: base64 plots to include: el (elements), ca (close approach), sr (systematic ranging), colon-separated.
tdesNoNEOCP temporary designation (object mode).
limitNoList mode: return at most this many objects. Applied by this server; Scout has no limit parameter.
orbitsNoObject mode: include sampled orbits.
n_orbitsNoObject mode: number of sampled orbits (1-1000).
jpl_sentryJPL Sentry impact riskB
Read-onlyIdempotent

Earth impact risk assessments from JPL Sentry: summary table, one object, virtual impactors, or removed objects.

NameRequiredDescriptionDefault
allNoVirtual-impactor mode: all VIs (combine with ip_min/ps_min/h_max to narrow).
desNoObject mode: designation, e.g. 29075 or 2011 AG5.
spkNoObject mode: SPK-ID.
h_maxNoSummary/VI mode: maximum absolute magnitude H.
limitNoReturn at most this many records from list modes. Applied by this server: Sentry has no limit parameter.
ip_minNoSummary/VI mode: minimum impact probability, e.g. 1e-5.
ps_minNoSummary/VI mode: minimum Palermo Scale value, e.g. -3.
removedNoList objects removed from Sentry.
nasa_apodNASA Astronomy Picture of the DayA
Read-onlyIdempotent

NASA's Astronomy Picture of the Day (APOD) from the NASA Science APOD API (science.nasa.gov): the latest picture, one date (1995-06-16 onward), or a date range of up to 100 days. Returns the title, credit, explanation as plain text, image or video URL and page link, and embeds up to max_images pictures. No API key needed.

NameRequiredDescriptionDefault
dateNoDate of the picture (YYYY-MM-DD, 1995-06-16 or later). Defaults to the latest published picture. Cannot be combined with start_date/end_date.
end_dateNoEnd of a date range (YYYY-MM-DD); requires start_date. Defaults to today (UTC) when start_date is given.
max_imagesNoHow many pictures to embed as image content (0-5). Remaining entries are listed by URL.
start_dateNoStart of a date range (YYYY-MM-DD).
nasa_cmrNASA Earthdata CMR searchA
Read-onlyIdempotent

Search NASA's Common Metadata Repository (CMR) for Earth science collections (datasets) or granules (files). Supports identifiers, temporal and spatial filters (bounding_box, point, polygon, line, circle), platform/instrument/project, facets and sorting. Returns a compact normalized envelope by default (response_mode raw for upstream metadata) and a next_cursor for Search After pagination: continue by passing only {"cursor": next_cursor}. Collection matches describe datasets; they do not prove granules exist for a given time or place. No API key needed.

NameRequiredDescriptionDefault
doiNoCollections only: DOI, e.g. 10.5067/GHGMR-4FJ04.
bboxNoCompatibility alias for bounding_box (sent to CMR as bounding_box).
lineNoLine "lon1,lat1,lon2,lat2,...".
pageNoDEPRECATED page-number pagination (CMR page_num). Prefer cursor. Cannot be combined with cursor or offset.
limitNoRecords per page (1-100).
pointNoPoint "lon,lat".
circleNoCircle "lon,lat,radius" with radius in metres (10-6000000).
cursorNonext_cursor from a previous response. Continue with the cursor alone; omitted filters are restored from it.
fieldsNoCompact mode only: normalized fields to return. concept_id is always included. Defaults to all fields except summary.
formatNoUpstream CMR metadata format. json/umm_json support compact output; others are returned raw. dif, dif10, opendata: collections only; stac: granules only.json
offsetNoDEPRECATED offset pagination. Prefer cursor. Cannot be combined with cursor or page.
keywordNoCollections only: free-text keyword search.
polygonNoPolygon "lon1,lat1,...,lon1,lat1": closed, counter-clockwise (CMR rejects clockwise rings).
projectNoProject/campaign short name(s).
versionNoCollection version.
platformNoPlatform short name(s), e.g. Terra.
providerNoProvider ID(s), e.g. POCLOUD, LPCLOUD.
sort_keyNoSort key(s), "-" prefix for descending. Collections: score, usage_score, entry_title, dataset_id, short_name, entry_id, start_date, end_date, platform, instrument, sensor, provider, revision_date, has_granules, create-data-date, ongoing. Granules: start_date, end_date, producer_granule_id, readable_granule_name, granule_ur, revision_date, cloud_cover, day_night_flag, data_size, provider, platform, instrument, sensor, online_only, browsable, entry_title, short_name, version, campaign, project.
temporalNoTemporal range "start,end" in ISO 8601 (date or date-time, UTC assumed). Either side may be empty, e.g. "2020-01-01T00:00:00Z,".
browsableNoOnly records with (true) or without (false) browse imagery.
concept_idNoConcept ID(s). For granule searches a collection concept ID (C...) also selects that collection, as in CMR.
instrumentNoInstrument short name(s), e.g. MODIS.
short_nameNoCollection short name(s).
cloud_coverNoGranules only: cloud cover range "min,max" in percent.
entry_titleNoCollection entry title.
online_onlyNoOnly online (true) or offline (false) records.
search_typeNoSearch collections (datasets) or granules (files).collections
bounding_boxNoBounding box west,south,east,north (lon/lat degrees). west > east crosses the antimeridian (supported by CMR).
cloud_hostedNoCollections only: restrict to cloud-hosted (true) or not (false).
downloadableNoOnly records with (true) or without (false) downloadable data links.
has_granulesNoCollections only: require (true) or exclude (false) collections with granules.
response_modeNocompact (default for json/umm_json): normalized records. raw: upstream metadata as returned (default for other formats).
day_night_flagNoGranules only: DAY, NIGHT, BOTH or UNSPECIFIED.
include_facetsNoInclude CMR v2 facets (counts by keyword, platform, ...).
granule_data_formatNoCollections only: granule data format(s), e.g. netCDF-4.
processing_level_idNoCollections only: processing level(s), e.g. 3, L2.
producer_granule_idNoGranules only: producer granule ID.
collection_concept_idNoGranules only: collection concept ID(s) to search within.
readable_granule_nameNoGranules only: granule name (supports CMR * and ? wildcards).

Output Schema

NameRequiredDescription
rawNo
errorNo
facetsNo
formatYes
sourceYes
statusYes
resultsYes
warningsYes
total_hitsYes
next_cursorYes
search_typeYes
retrieved_atYes
response_modeYes
returned_countYes
nasa_donkiNASA DONKI space weatherA
Read-onlyIdempotent

Space Weather Database Of Notifications, Knowledge, Information (DONKI) events by type for up to 30 days at a time, from the NASA CCMC DONKI API (ccmc.gsfc.nasa.gov): solar flares, CMEs and their analyses, geomagnetic storms, interplanetary shocks, SEP, MPC, RBE and HSS events, WSA-ENLIL simulations and notifications. Compact one-line summaries by default; response_mode raw returns the full records. No API key needed.

NameRequiredDescriptionDefault
typeYesEvent type: cme, cmea, gst, ips, flr, sep, mpc, rbe, hss, wsa, notifications.
limitNoReturn only the most recent N events. Applied by this server; DONKI has no limit parameter.
endDateNoEnd date (YYYY-MM-DD), at most 30 days after startDate. Defaults to today.
startDateNoStart date (YYYY-MM-DD). With only endDate, 30 days before endDate; with neither, the last 30 days.
response_modeNocompact (default): one line per event with its key fields. raw: the full DONKI records as JSON (large for cme, cmea and wsa).compact
nasa_eonetNASA EONET natural eventsB
Read-onlyIdempotent

Natural events (wildfires, storms, volcanoes, ice, ...) from the Earth Observatory Natural Event Tracker. Filters are sent exactly as given; no automatic broadening.

NameRequiredDescriptionDefault
daysNoOnly events active within this many prior days.
limitNoMaximum number of events (1-500).
sourceNoEONET source ID(s), comma-separated, e.g. InciWeb,EO.
statusNoEvent status filter.all
categoryNoEONET category ID(s), comma-separated: e.g. wildfires, severeStorms, volcanoes, seaLakeIce.
nasa_epicNASA EPIC Earth imageryB
Read-onlyIdempotent

Earth Polychromatic Imaging Camera (DSCOVR) full-disc Earth images for a day: metadata for every image plus a bounded number embedded.

NameRequiredDescriptionDefault
dateNoDate of the images (YYYY-MM-DD). Defaults to the most recent available day.
collectionNoImage collection.natural
max_imagesNoHow many images to embed (0-3, JPEG). All images are listed with PNG and JPEG URLs.
nasa_exoplanetNASA Exoplanet Archive queryB
Read-onlyIdempotent

Query the NASA Exoplanet Archive through its TAP service (ADQL). Tables use current TAP names such as ps, pscomppars, cumulative and toi.

NameRequiredDescriptionDefault
limitNoMaximum rows (1-1000).
orderNoADQL ORDER BY expression, e.g. pl_name.
tableYesTAP table, e.g. ps (Planetary Systems), pscomppars, cumulative (Kepler KOI), toi.
whereNoADQL WHERE condition, e.g. disc_year > 2020 and discoverymethod = 'Transit'.
formatNoResult format.json
selectNoColumns to return (ADQL select list). Defaults to *.
nasa_firmsNASA FIRMS active fire detectionsA
Read-onlyIdempotent

Active fire/thermal anomaly detections from NASA FIRMS for a bounding box and 1-5 day window. Requires FIRMS_MAP_KEY (not NASA_API_KEY). The legacy latitude/longitude interface now needs radius_km and is converted to a bbox.

NameRequiredDescriptionDefault
bboxNoArea as west,south,east,north in decimal degrees (preferred). Antimeridian-crossing boxes are rejected.
dateNoFirst day of the window (YYYY-MM-DD); FIRMS returns [date, date + days - 1]. Omit for the most recent data.
daysNoDAY_RANGE: number of days of detections (1-5).
limitNoMaximum detections returned (1-2000). total_detections reports the full count.
sourceNoFIRMS sensor/product. *_NRT is near real-time, *_SP is standard processing.VIIRS_SNPP_NRT
latitudeNoLegacy area center latitude; requires longitude and radius_km.
longitudeNoLegacy area center longitude; requires latitude and radius_km.
radius_kmNoHalf-width in kilometres of the box built around latitude/longitude (converted to a bbox before querying).

Output Schema

NameRequiredDescription
errorNo
queryYes
sourceYes
statusYes
columnsYes
warningsYes
detectionsYes
retrieved_atYes
returned_countYes
total_detectionsYes
nasa_gibsNASA GIBS satellite imageryB
Read-onlyIdempotent

Render a Global Imagery Browse Services (GIBS) layer for a date and bounding box as an image (WMS GetMap, EPSG:4326).

NameRequiredDescriptionDefault
bboxNoArea as west,south,east,north in decimal degrees (EPSG:4326). Defaults to the whole globe.
dateYesImagery date (YYYY-MM-DD).
layerYesGIBS layer identifier, e.g. MODIS_Terra_CorrectedReflectance_TrueColor
formatNoImage format.png
resolutionNoOutput resolution in pixels per degree (default 2, i.e. 720x360 for the whole globe).
nasa_imagesNASA Image and Video Library searchB
Read-onlyIdempotent

Search NASA's Image and Video Library. Returns item metadata and URLs, with a bounded number of preview thumbnails embedded.

NameRequiredDescriptionDefault
qYesFree-text search terms.
pageNoResult page (1-based).
year_endNoLatest year (YYYY).
page_sizeNoResults per page (1-100).
max_imagesNoHow many preview thumbnails to embed (0-5). Every item is listed with its URLs.
media_typeNoRestrict to one media type.
year_startNoEarliest year (YYYY).
nasa_insight_weatherNASA InSight Mars weather (historical)A
Read-onlyIdempotent

HISTORICAL DATA ONLY: per-sol Mars surface weather (air temperature, pressure, wind) from NASA's InSight lander at Elysium Planitia. The feed is frozen at the last seven sols it reported (sols 675-681, October 2020) and is no longer updated. Requires NASA_API_KEY.

NameRequiredDescriptionDefault

No parameters

nasa_mars_roverNASA Mars Rover Photos (retired upstream)A
Read-onlyIdempotent

DEPRECATED: the upstream Mars Rover Photos API (api.nasa.gov/mars-photos) has been returning HTTP 404 "No such app" since at least 2026-09-29. Calls still query it and report the upstream status accurately; no photos are fabricated. Requires NASA_API_KEY.

NameRequiredDescriptionDefault
solNoMartian sol of the photos. Provide sol or earth_date.
pageNoResult page (25 photos per page).
roverYesRover name.
cameraNoCamera abbreviation, e.g. FHAZ, NAVCAM.
earth_dateNoEarth date of the photos (YYYY-MM-DD). Provide sol or earth_date.
max_imagesNoHow many photos to embed (0-5).
nasa_neoNASA Near Earth Object Web ServiceA
Read-onlyIdempotent

Near-Earth asteroid close approaches from NASA NeoWs: a feed for up to 7 days (defaults to today, UTC) or a single asteroid by ID. Requires NASA_API_KEY.

NameRequiredDescriptionDefault
end_dateNoEnd date (YYYY-MM-DD), at most 7 days after start_date. Defaults to start_date.
start_dateNoStart date for the close-approach feed (YYYY-MM-DD). Defaults to today (UTC).
asteroid_idNoLook up one asteroid by its NeoWs ID instead of the date feed.
nasa_osdr_filesNASA OSDR study filesA
Read-onlyIdempotent

List the data files (with download links) for a NASA Open Science Data Repository (OSDR) study.

NameRequiredDescriptionDefault
accession_numberYesOSD study accession number, e.g. 87 or OSD-87.
nasa_powerNASA POWER daily point dataB
Read-onlyIdempotent

Daily solar and meteorological data for a point from NASA POWER (Prediction Of Worldwide Energy Resources).

NameRequiredDescriptionDefault
endYesEnd date (YYYYMMDD).
startYesStart date (YYYYMMDD).
formatNoResponse format.json
latitudeYesLatitude in decimal degrees.
communityYesUser community: RE (renewable energy), SB (sustainable buildings), AG (agroclimatology).
longitudeYesLongitude in decimal degrees.
parametersYesComma-separated POWER parameters, e.g. T2M,PRECTOTCORR,WS10M.
time_standardNoTime standard for daily values; POWER defaults to LST (local solar time) when omitted.
nasa_ssc_locationsSatellite Situation Center spacecraft locationsA
Read-onlyIdempotent

Positions of spacecraft (and the Moon and Sun) over a time range from the NASA Satellite Situation Center (SSCWeb), in geophysical coordinate systems (GEO, GM, GSE, GSM, SM, GEI). Returns a CSV table per observatory: X/Y/Z in km, latitude/longitude in degrees, local time in hours and radial distance in km. The resolution factor is raised automatically to keep the output bounded. No API key needed.

NameRequiredDescriptionDefault
end_timeYesEnd time (UTC); at most 366 days after start_time.
start_timeYesStart time (UTC), e.g. 2026-09-29T06:00:00Z; a bare date such as 2026-09-29 means 00:00 UTC.
observatoriesYes1-5 SSC observatory IDs, e.g. ["iss"] or ["mms1", "moon"] (see nasa_ssc_observatories). A comma-separated string also works.
resolution_factorNoReturn every Nth point of each observatory's base resolution (60-720 s). Chosen automatically when omitted to keep the output bounded.
coordinate_systemsNoCoordinate systems (default geo): geo, gm, gse, gsm, sm, geitod, geij2000. A comma-separated string also works.
nasa_ssc_observatoriesSatellite Situation Center spacecraft listA
Read-onlyIdempotent

Spacecraft and other observatories whose locations the NASA Satellite Situation Center (SSCWeb) can compute, with their data time ranges and resolution. Use the IDs with nasa_ssc_locations. No API key needed.

NameRequiredDescriptionDefault
searchNoCase-insensitive text to match in the observatory ID or name, e.g. "mms" or "GOES".
active_onNoOnly observatories with location data on this date (YYYY-MM-DD).
nasa_techportNASA TechPort technology projectsA
Read-onlyIdempotent

NASA's technology project inventory (TechPort): search projects by keyword, or fetch one project with its status, dates, program, technology readiness levels (TRL), lead organization, description and benefits. No API key needed.

NameRequiredDescriptionDefault
limitNoSearch mode: how many projects to return (1-50, default 10).
queryNoSearch TechPort technology projects, e.g. "solar sail". Results are ordered by relevance.
project_idNoFetch one project by its TechPort ID, e.g. 94703.
nasa_techtransferNASA Technology Transfer searchA
Read-onlyIdempotent

Search NASA's Technology Transfer portfolio (technology.nasa.gov): patents available for licensing, issued patents, the NASA Software Catalog, or Spinoff stories about commercial products that use NASA technology. No API key needed.

NameRequiredDescriptionDefault
limitNoHow many results to return (1-50). The service returns every match; the rest are counted but not shown.
queryYesKeywords to search for, e.g. "engine" or "solar panel".
collectionNoWhat to search: patent (licensable patents), patent_issued, software (NASA Software Catalog) or spinoff (Spinoff stories).patent
nasa_tleSatellite two-line element setsA
Read-onlyIdempotent

Two-line element sets (TLE) for Earth-orbiting satellites from the TLE API in the api.nasa.gov catalog (tle.ivanstanojevic.me; CelesTrak data refreshed daily): one satellite by NORAD catalog number, or a paged name search. No API key needed.

NameRequiredDescriptionDefault
pageNoResult page (1-based).
sortNoSort field for searches (upstream default popularity).
searchNoSearch satellite names, e.g. "ISS" or "HUBBLE". Omit to browse all records.
sort_dirNoSort direction (upstream default desc).
page_sizeNoRecords per page (1-100, upstream default 20).
satellite_idNoNORAD catalog number, e.g. 25544 for the ISS. Cannot be combined with search options.
nasa_trek_layersNASA Trek map layers (Mars, Moon, Vesta)A
Read-onlyIdempotent

Search the map layer catalogs of NASA Mars Trek, Moon Trek and Vesta Trek (trek.nasa.gov): mosaics, colour hillshades and other imagery served as OGC WMTS tiles. Returns layer IDs for nasa_trek_tile, with mission, instrument and WMTS endpoint. No API key needed.

NameRequiredDescriptionDefault
bodyYesBody: mars, moon or vesta.
limitNoHow many layers to return (1-50).
searchNoKeywords to match, e.g. "olympus", "LRO WAC" or "HiRISE".
projectionNoMap projection: equirectangular (global), north_pole or south_pole (polar stereographic).equirectangular
nasa_trek_tileNASA Trek map tile (Mars, Moon, Vesta)A
Read-onlyIdempotent

One WMTS map tile image from NASA Mars Trek, Moon Trek or Vesta Trek for a layer from nasa_trek_layers, addressed by zoom/row/col or (equirectangular layers) by latitude/longitude. Reads the layer's WMTS capabilities to validate the tile and pick the format. No API key needed.

NameRequiredDescriptionDefault
colNoTile column (0 at the left).
rowNoTile row (0 at the top). Provide row and col, or latitude and longitude.
bodyYesBody: mars, moon or vesta.
zoomNoZoom level (WMTS TileMatrix). 0 is the whole layer; each level doubles the resolution.
layerYesLayer ID from nasa_trek_layers, e.g. Mars_MGS_MOLA_ClrShade_merge_global_463m or LRO_WAC_Mosaic_Global_303ppd_v02.
latitudeNoEquirectangular only: pick the tile containing this latitude (degrees).
longitudeNoEquirectangular only: pick the tile containing this longitude (degrees east, -180 to 360).
projectionNoMap projection: equirectangular (global), north_pole or south_pole (polar stereographic).equirectangular

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 32 tool updatesv1.2.0
    • Changedjpl_cad25 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedInput schema / properties / body / description
        Previous value: -"Body to find close approaches to (e.g., Earth, Mars, ALL). Default: Earth"New value: +"Close-approach body (Earth, Mars, ALL, ...). Default Earth."
      • addedInput schema / properties / body / pattern
        Added value: +"^[A-Za-z]+$"
      • changedInput schema / properties / date_max / description
        Previous value: -"End date for search (YYYY-MM-DD). Default: +60 days"New value: +"End date (YYYY-MM-DD, now, or +/-days). Default +60."
      • addedInput schema / properties / date_max / pattern
        Added value: +"^(now|[+-]\\d{1,5}|\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2})?)?)$"
      • changedInput schema / properties / date_min / description
        Previous value: -"Start date for search (YYYY-MM-DD). Default: now"New value: +"Start date (YYYY-MM-DD, now, or +/-days). Default now."
      • addedInput schema / properties / date_min / pattern
        Added value: +"^(now|[+-]\\d{1,5}|\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2})?)?)$"
      • changedInput schema / properties / des / description
        Previous value: -"Object designation (e.g., '2000 SG344' or '433')"New value: +"Only this object (designation)."
      • addedInput schema / properties / des / maxLength
        Added value: +100
      • addedInput schema / properties / des / minLength
        Added value: +1
      • changedInput schema / properties / dist_max / description
        Previous value: -"Maximum approach distance (e.g., 0.05, 10LD). Default: 0.05 au"New value: +"Maximum approach distance, e.g. 0.05 (au) or 10LD. Default 0.05 au."
      • addedInput schema / properties / dist_max / pattern
        Added value: +"^\\d+(\\.\\d+)?(LD|au|AU)?$"
      • changedInput schema / properties / dist_min / description
        Previous value: -"Minimum approach distance. Default: none"New value: +"Minimum approach distance."
      • addedInput schema / properties / dist_min / pattern
        Added value: +"^\\d+(\\.\\d+)?(LD|au|AU)?$"
      • changedInput schema / properties / fullname / description
        Previous value: -"Include full object name in result. Default: false"New value: +"Include full object names."
      • addedInput schema / properties / h_max
        Added value: +{
        +  "description": "Maximum absolute magnitude H.",
        +  "type": "number"
        +}
      • addedInput schema / properties / h_min
        Added value: +{
        +  "description": "Minimum absolute magnitude H.",
        +  "type": "number"
        +}
      • addedInput schema / properties / limit
        Added value: +{
        +  "description": "Maximum number of records (1-1000).",
        +  "maximum": 1000,
        +  "minimum": 1,
        +  "type": "integer"
        +}
      • changedInput schema / properties / neo / description
        Previous value: -"Limit to NEOs. Default: true"New value: +"Limit to NEOs (default true upstream)."
      • changedInput schema / properties / sort / description
        Previous value: -"Sort field: date, dist, dist-min, v-inf, v-rel, h, object. Default: date"New value: +"Sort field, prefix - for descending. Default date."
      • addedInput schema / properties / sort / pattern
        Added value: +"^-?(date|dist|dist-min|v-inf|v-rel|h|object)$"
      • changedInput schema / properties / spk / description
        Previous value: -"Object SPK-ID (e.g., '2000433')"New value: +"Only this object (SPK-ID)."
      • addedInput schema / properties / spk / exclusiveMinimum
        Added value: +0
      • addedInput schema / properties / spk / maximum
        Added value: +9007199254740991
      • changedInput schema / properties / spk / type
        Previous value: -"string"New value: +"integer"
    • Changedjpl_fireball20 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedInput schema / properties / date_max / description
        Previous value: -"End date (YYYY-MM-DD)"New value: +"Latest event date (YYYY-MM-DD)."
      • addedInput schema / properties / date_max / pattern
        Added value: +"^(now|[+-]\\d{1,5}|\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2})?)?)$"
      • changedInput schema / properties / date_min / description
        Previous value: -"Start date (YYYY-MM-DD)"New value: +"Earliest event date (YYYY-MM-DD)."
      • addedInput schema / properties / date_min / pattern
        Added value: +"^(now|[+-]\\d{1,5}|\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2})?)?)$"
      • addedInput schema / properties / energy_max
        Added value: +{
        +  "description": "Maximum total radiated energy (1e10 J).",
        +  "minimum": 0,
        +  "type": "number"
        +}
      • addedInput schema / properties / energy_min
        Added value: +{
        +  "description": "Minimum total radiated energy (1e10 J).",
        +  "minimum": 0,
        +  "type": "number"
        +}
      • addedInput schema / properties / impact_e_max
        Added value: +{
        +  "description": "Maximum estimated impact energy (kt).",
        +  "minimum": 0,
        +  "type": "number"
        +}
      • addedInput schema / properties / impact_e_min
        Added value: +{
        +  "description": "Minimum estimated impact energy (kt).",
        +  "minimum": 0,
        +  "type": "number"
        +}
      • addedInput schema / properties / limit / default
        Added value: +50
      • changedInput schema / properties / limit / description
        Previous value: -"Maximum number of results to return"New value: +"Maximum number of events (1-1000)."
      • addedInput schema / properties / limit / maximum
        Added value: +1000
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / req_alt
        Added value: +{
        +  "description": "Only events with an altitude.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / req_loc
        Added value: +{
        +  "description": "Only events with a location.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / req_vel
        Added value: +{
        +  "description": "Only events with a velocity.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / req_vel_comp
        Added value: +{
        +  "description": "Only events with velocity components.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / vel_max
        Added value: +{
        +  "description": "Maximum velocity (km/s).",
        +  "minimum": 0,
        +  "type": "number"
        +}
      • addedInput schema / properties / vel_min
        Added value: +{
        +  "description": "Minimum velocity (km/s).",
        +  "minimum": 0,
        +  "type": "number"
        +}
    • Changedjpl_horizons25 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedInput schema / properties / CENTER / description
        Previous value: -"Coordinate center (e.g., '500@399' for Earth)"New value: +"Coordinate center, e.g. '500@399' (geocentric)."
      • addedInput schema / properties / CENTER / maxLength
        Added value: +200
      • addedInput schema / properties / CENTER / minLength
        Added value: +1
      • changedInput schema / properties / COMMAND / description
        Previous value: -"Target object identifier (e.g., '499' for Mars, '1' for Ceres, 'C/2020 F3' for Comet NEOWISE)"New value: +"Target, e.g. '499' (Mars), '1;' (Ceres), 'C/2020 F3'."
      • addedInput schema / properties / COMMAND / maxLength
        Added value: +200
      • addedInput schema / properties / COMMAND / minLength
        Added value: +1
      • changedInput schema / properties / EPHEM_TYPE / description
        Previous value: -"Type of ephemeris (OBSERVER, VECTORS, ELEMENTS)"New value: +"Ephemeris type."
      • changedInput schema / properties / MAKE_EPHEM / description
        Previous value: -"Generate ephemeris"New value: +"Generate an ephemeris."
      • changedInput schema / properties / OBJ_DATA / description
        Previous value: -"Include object data"New value: +"Include object data."
      • changedInput schema / properties / OUT_UNITS / description
        Previous value: -"Output units for vector tables"New value: +"Output units for vector/element tables."
      • changedInput schema / properties / QUANTITIES / description
        Previous value: -"Observable quantities to include (e.g., 'A' for all, or '1,2,20,23' for specific ones)"New value: +"Observer quantities, e.g. 'A' or '1,2,20,23'."
      • addedInput schema / properties / QUANTITIES / maxLength
        Added value: +200
      • addedInput schema / properties / QUANTITIES / minLength
        Added value: +1
      • changedInput schema / properties / START_TIME / description
        Previous value: -"Start time for ephemeris (e.g., '2023-01-01')"New value: +"Start time, e.g. '2024-01-01'."
      • addedInput schema / properties / START_TIME / maxLength
        Added value: +200
      • addedInput schema / properties / START_TIME / minLength
        Added value: +1
      • changedInput schema / properties / STEP_SIZE / description
        Previous value: -"Step size for ephemeris points (e.g., '1d' for daily, '1h' for hourly)"New value: +"Step size, e.g. '1d' or '1h'."
      • addedInput schema / properties / STEP_SIZE / maxLength
        Added value: +200
      • addedInput schema / properties / STEP_SIZE / minLength
        Added value: +1
      • changedInput schema / properties / STOP_TIME / description
        Previous value: -"Stop time for ephemeris (e.g., '2023-01-02')"New value: +"Stop time, e.g. '2024-01-02'."
      • addedInput schema / properties / STOP_TIME / maxLength
        Added value: +200
      • addedInput schema / properties / STOP_TIME / minLength
        Added value: +1
      • addedInput schema / properties / format / default
        Added value: +"json"
      • changedInput schema / properties / format / description
        Previous value: -"Response format (json, text)"New value: +"Response format."
    • Changedjpl_horizons_file25 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedInput schema / properties / CENTER / description
        Previous value: -"Coordinate center (e.g., '500@399' for Earth)"New value: +"Coordinate center, e.g. '500@399' (geocentric)."
      • addedInput schema / properties / CENTER / maxLength
        Added value: +200
      • addedInput schema / properties / CENTER / minLength
        Added value: +1
      • changedInput schema / properties / COMMAND / description
        Previous value: -"Target object identifier (e.g., '499' for Mars, '1' for Ceres, 'C/2020 F3' for Comet NEOWISE)"New value: +"Target, e.g. '499' (Mars), '1;' (Ceres), 'C/2020 F3'."
      • addedInput schema / properties / COMMAND / maxLength
        Added value: +200
      • addedInput schema / properties / COMMAND / minLength
        Added value: +1
      • changedInput schema / properties / EPHEM_TYPE / description
        Previous value: -"Type of ephemeris (OBSERVER, VECTORS, ELEMENTS)"New value: +"Ephemeris type."
      • changedInput schema / properties / MAKE_EPHEM / description
        Previous value: -"Generate ephemeris"New value: +"Generate an ephemeris."
      • changedInput schema / properties / OBJ_DATA / description
        Previous value: -"Include object data"New value: +"Include object data."
      • changedInput schema / properties / OUT_UNITS / description
        Previous value: -"Output units for vector tables"New value: +"Output units for vector/element tables."
      • changedInput schema / properties / QUANTITIES / description
        Previous value: -"Observable quantities to include (e.g., 'A' for all, or '1,2,20,23' for specific ones)"New value: +"Observer quantities, e.g. 'A' or '1,2,20,23'."
      • addedInput schema / properties / QUANTITIES / maxLength
        Added value: +200
      • addedInput schema / properties / QUANTITIES / minLength
        Added value: +1
      • changedInput schema / properties / START_TIME / description
        Previous value: -"Start time for ephemeris (e.g., '2023-01-01')"New value: +"Start time, e.g. '2024-01-01'."
      • addedInput schema / properties / START_TIME / maxLength
        Added value: +200
      • addedInput schema / properties / START_TIME / minLength
        Added value: +1
      • changedInput schema / properties / STEP_SIZE / description
        Previous value: -"Step size for ephemeris points (e.g., '1d' for daily, '1h' for hourly)"New value: +"Step size, e.g. '1d' or '1h'."
      • addedInput schema / properties / STEP_SIZE / maxLength
        Added value: +200
      • addedInput schema / properties / STEP_SIZE / minLength
        Added value: +1
      • changedInput schema / properties / STOP_TIME / description
        Previous value: -"Stop time for ephemeris (e.g., '2023-01-02')"New value: +"Stop time, e.g. '2024-01-02'."
      • addedInput schema / properties / STOP_TIME / maxLength
        Added value: +200
      • addedInput schema / properties / STOP_TIME / minLength
        Added value: +1
      • addedInput schema / properties / format / default
        Added value: +"json"
      • changedInput schema / properties / format / description
        Previous value: -"Response format (json, text)"New value: +"Response format."
    • Changedjpl_jd_cal5 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedInput schema / properties / cd / description
        Previous value: -"Calendar date to convert to Julian date (YYYY-MM-DD or YYYY-MM-DDThh:mm:ss format)"New value: +"Calendar date (UTC) to convert to a Julian date."
      • addedInput schema / properties / cd / pattern
        Added value: +"^-?\\d{1,4}-\\d{2}-\\d{2}([T_ ]\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?)?$"
      • changedInput schema / properties / jd / description
        Previous value: -"Julian date to convert to calendar date"New value: +"Julian date to convert to a calendar date."
      • addedInput schema / properties / jd / pattern
        Added value: +"^-?\\d+(\\.\\d+)?$"
    • Addedjpl_mission_design
    • Changedjpl_nhats30 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedInput schema / properties / des / description
        Previous value: -"Object designation (e.g., '2000 SG344' or '433')"New value: +"Object designation, e.g. 99942 (object mode)."
      • addedInput schema / properties / des / maxLength
        Added value: +100
      • addedInput schema / properties / des / minLength
        Added value: +1
      • changedInput schema / properties / dur / description
        Previous value: -"Minimum total mission duration (days). Values: 60-450, default: 450"New value: +"Maximum total mission duration in days (60-450)."
      • addedInput schema / properties / dur / maximum
        Added value: +450
      • addedInput schema / properties / dur / minimum
        Added value: +60
      • changedInput schema / properties / dur / type
        Previous value: -"number"New value: +"integer"
      • changedInput schema / properties / dv / description
        Previous value: -"Minimum total delta-V (km/s). Values: 4-12, default: 12"New value: +"Maximum total delta-V in km/s (4-12)."
      • addedInput schema / properties / dv / maximum
        Added value: +12
      • addedInput schema / properties / dv / minimum
        Added value: +4
      • changedInput schema / properties / dv / type
        Previous value: -"number"New value: +"integer"
      • changedInput schema / properties / h / description
        Previous value: -"Object's maximum absolute magnitude (mag). Values: 16-30"New value: +"Maximum absolute magnitude H (16-30)."
      • addedInput schema / properties / h / maximum
        Added value: +30
      • addedInput schema / properties / h / minimum
        Added value: +16
      • changedInput schema / properties / h / type
        Previous value: -"number"New value: +"integer"
      • changedInput schema / properties / launch / description
        Previous value: -"Launch window (year range). Values: 2020-2025, 2025-2030, 2030-2035, 2035-2040, 2040-2045, 2020-2045, default: 2020-2045"New value: +"Launch window."
      • addedInput schema / properties / launch / enum
        Added value: +[
        +  "2020-2025",
        +  "2025-2030",
        +  "2030-2035",
        +  "2035-2040",
        +  "2040-2045",
        +  "2020-2045"
        +]
      • changedInput schema / properties / occ / description
        Previous value: -"Object's maximum orbit condition code. Values: 0-8"New value: +"Maximum orbit condition code (0-8)."
      • addedInput schema / properties / occ / maximum
        Added value: +8
      • addedInput schema / properties / occ / minimum
        Added value: +0
      • changedInput schema / properties / occ / type
        Previous value: -"number"New value: +"integer"
      • changedInput schema / properties / plot / description
        Previous value: -"Include base-64 encoded plot image"New value: +"Include a base64 plot (object mode; large)."
      • changedInput schema / properties / spk / description
        Previous value: -"Object SPK-ID (e.g., '2000433')"New value: +"Object SPK-ID (object mode)."
      • addedInput schema / properties / spk / exclusiveMinimum
        Added value: +0
      • addedInput schema / properties / spk / maximum
        Added value: +9007199254740991
      • changedInput schema / properties / spk / type
        Previous value: -"string"New value: +"integer"
      • addedInput schema / properties / stay / anyOf
        Added value: +[
        +  {
        +    "const": 8,
        +    "type": "number"
        +  },
        +  {
        +    "const": 16,
        +    "type": "number"
        +  },
        +  {
        +    "const": 24,
        +    "type": "number"
        +  },
        +  {
        +    "const": 32,
        +    "type": "number"
        +  }
        +]
      • changedInput schema / properties / stay / description
        Previous value: -"Minimum stay time (days). Values: 8, 16, 24, 32, default: 8"New value: +"Minimum stay at the NEO in days (8, 16, 24 or 32)."
      • removedInput schema / properties / stay / type
        Removed value: -"number"
    • Changedjpl_periodic_orbits17 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedInput schema / properties / branch / description
        Previous value: -"Branch within family (N/S, E/W, etc., required for some families)"New value: +"Branch (required by some families), e.g. N or S."
      • addedInput schema / properties / branch / pattern
        Added value: +"^[A-Za-z]{1,3}$"
      • changedInput schema / properties / family / description
        Previous value: -"Orbit family name (e.g., halo, dro, lyapunov)"New value: +"Orbit family, e.g. halo, dro, lyapunov, vertical, axial, butterfly."
      • addedInput schema / properties / family / pattern
        Added value: +"^[a-z_]+$"
      • changedInput schema / properties / jacobimax / description
        Previous value: -"Maximum Jacobi constant"New value: +"Maximum Jacobi constant."
      • changedInput schema / properties / jacobimin / description
        Previous value: -"Minimum Jacobi constant"New value: +"Minimum Jacobi constant."
      • changedInput schema / properties / libr / description
        Previous value: -"Libration point (1-5, required for some families)"New value: +"Libration point 1-5 (required by some families)."
      • addedInput schema / properties / libr / maximum
        Added value: +5
      • addedInput schema / properties / libr / minimum
        Added value: +1
      • changedInput schema / properties / periodmax / description
        Previous value: -"Maximum period"New value: +"Maximum period."
      • changedInput schema / properties / periodmin / description
        Previous value: -"Minimum period"New value: +"Minimum period."
      • changedInput schema / properties / periodunits / description
        Previous value: -"Units for period (s, h, d, TU)"New value: +"Units for periodmin/periodmax."
      • changedInput schema / properties / stabmax / description
        Previous value: -"Maximum stability index"New value: +"Maximum stability index."
      • changedInput schema / properties / stabmin / description
        Previous value: -"Minimum stability index"New value: +"Minimum stability index."
      • changedInput schema / properties / sys / description
        Previous value: -"Three-body system (e.g., earth-moon, sun-earth)"New value: +"Three-body system, e.g. earth-moon, sun-earth, mars-phobos."
      • addedInput schema / properties / sys / pattern
        Added value: +"^[a-z]+-[a-z]+$"
    • Changedjpl_sbdb16 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties / alt_orbits
        Added value: +{
        +  "description": "Include alternate orbits.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / ca_body
        Added value: +{
        +  "description": "Limit close approaches to this body (e.g. Earth); needs ca_data.",
        +  "maxLength": 40,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedInput schema / properties / ca_data
        Added value: +{
        +  "description": "Include close-approach data.",
        +  "type": "boolean"
        +}
      • changedInput schema / properties / cad / description
        Previous value: -"Include close approach data"New value: +"DEPRECATED alias for ca_data."
      • addedInput schema / properties / des
        Added value: +{
        +  "description": "Primary designation or IAU number.",
        +  "maxLength": 100,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedInput schema / properties / discovery
        Added value: +{
        +  "description": "Include discovery circumstances.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / full_prec
        Added value: +{
        +  "description": "Full-precision orbital elements.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / phys_par
        Added value: +{
        +  "description": "Include physical parameters.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / sat
        Added value: +{
        +  "description": "Include satellite data.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / spk
        Added value: +{
        +  "description": "SPK-ID of the object.",
        +  "exclusiveMinimum": 0,
        +  "maximum": 9007199254740991,
        +  "type": "integer"
        +}
      • changedInput schema / properties / sstr / description
        Previous value: -"Search string (e.g., asteroid name, number, or designation)"New value: +"Search string: name, designation or number (e.g. Ceres, 433, 2019 OK)."
      • addedInput schema / properties / sstr / maxLength
        Added value: +200
      • addedInput schema / properties / sstr / minLength
        Added value: +1
      • addedInput schema / properties / vi_data
        Added value: +{
        +  "description": "Include Sentry virtual-impactor data.",
        +  "type": "boolean"
        +}
      • removedInput schema / required
        Removed value: -[
        -  "sstr"
        -]
    • Changedjpl_scout16 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedInput schema / properties / file / description
        Previous value: -"Type of data file to return (summary, ephem, obs, crit, all)"New value: +"Object mode: include the observation file as a list or in MPC format."
      • changedInput schema / properties / file / enum
        Previous value: -[
        -  "summary",
        -  "ephem",
        -  "obs",
        -  "crit",
        -  "all"
        -]New value: +[
        +  "list",
        +  "mpc"
        +]
      • changedInput schema / properties / limit / description
        Previous value: -"Limit number of results"New value: +"List mode: return at most this many objects. Applied by this server; Scout has no limit parameter."
      • addedInput schema / properties / limit / maximum
        Added value: +1000
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / n_orbits
        Added value: +{
        +  "description": "Object mode: number of sampled orbits (1-1000).",
        +  "maximum": 1000,
        +  "minimum": 1,
        +  "type": "integer"
        +}
      • removedInput schema / properties / orbit_id
        Removed value: -{
        -  "description": "Scout internal orbit ID",
        -  "type": "string"
        -}
      • addedInput schema / properties / orbits
        Added value: +{
        +  "description": "Object mode: include sampled orbits.",
        +  "type": "boolean"
        +}
      • changedInput schema / properties / plot / description
        Previous value: -"Include plots in the response"New value: +"Object mode: base64 plots to include: el (elements), ca (close approach), sr (systematic ranging), colon-separated."
      • addedInput schema / properties / plot / pattern
        Added value: +"^(el|ca|sr)(:(el|ca|sr))*$"
      • changedInput schema / properties / plot / type
        Previous value: -"boolean"New value: +"string"
      • removedInput schema / properties / summary
        Removed value: -{
        -  "description": "Include summary data in the response",
        -  "type": "boolean"
        -}
      • changedInput schema / properties / tdes / description
        Previous value: -"Object temporary designation (e.g., P21Eolo)"New value: +"NEOCP temporary designation (object mode)."
      • addedInput schema / properties / tdes / pattern
        Added value: +"^[A-Za-z0-9]{1,16}$"
    • Changedjpl_sentry23 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedInput schema / properties / all / description
        Previous value: -"Get all virtual impactors data"New value: +"Virtual-impactor mode: all VIs (combine with ip_min/ps_min/h_max to narrow)."
      • removedInput schema / properties / date_max
        Removed value: -{
        -  "description": "End date (YYYY-MM-DD)",
        -  "type": "string"
        -}
      • removedInput schema / properties / date_min
        Removed value: -{
        -  "description": "Start date (YYYY-MM-DD)",
        -  "type": "string"
        -}
      • changedInput schema / properties / des / description
        Previous value: -"Object designation (e.g., '2011 AG5' or '29075')"New value: +"Object mode: designation, e.g. 29075 or 2011 AG5."
      • addedInput schema / properties / des / maxLength
        Added value: +100
      • addedInput schema / properties / des / minLength
        Added value: +1
      • changedInput schema / properties / h_max / description
        Previous value: -"Maximum absolute magnitude (size filter)"New value: +"Summary/VI mode: maximum absolute magnitude H."
      • changedInput schema / properties / ip_min / description
        Previous value: -"Minimum impact probability"New value: +"Summary/VI mode: minimum impact probability, e.g. 1e-5."
      • addedInput schema / properties / ip_min / exclusiveMinimum
        Added value: +0
      • addedInput schema / properties / ip_min / maximum
        Added value: +1
      • changedInput schema / properties / ip_min / type
        Previous value: -"string"New value: +"number"
      • changedInput schema / properties / limit / description
        Previous value: -"Maximum number of results to return"New value: +"Return at most this many records from list modes. Applied by this server: Sentry has no limit parameter."
      • addedInput schema / properties / limit / maximum
        Added value: +1000
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
      • changedInput schema / properties / ps_min / description
        Previous value: -"Minimum Palermo Scale value"New value: +"Summary/VI mode: minimum Palermo Scale value, e.g. -3."
      • changedInput schema / properties / ps_min / type
        Previous value: -"string"New value: +"number"
      • changedInput schema / properties / removed / description
        Previous value: -"Get objects removed from Sentry monitoring"New value: +"List objects removed from Sentry."
      • changedInput schema / properties / spk / description
        Previous value: -"Object SPK-ID"New value: +"Object mode: SPK-ID."
      • addedInput schema / properties / spk / exclusiveMinimum
        Added value: +0
      • addedInput schema / properties / spk / maximum
        Added value: +9007199254740991
      • changedInput schema / properties / spk / type
        Previous value: -"string"New value: +"integer"
    • Changednasa_apod8 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / count
        Removed value: -{
        -  "description": "Count of random APODs to retrieve",
        -  "type": "number"
        -}
      • changedInput schema / properties / date / description
        Previous value: -"The date of the APOD image to retrieve (YYYY-MM-DD)"New value: +"Date of the picture (YYYY-MM-DD, 1995-06-16 or later). Defaults to the latest published picture. Cannot be combined with start_date/end_date."
      • changedInput schema / properties / end_date / description
        Previous value: -"End date for date range search (YYYY-MM-DD)"New value: +"End of a date range (YYYY-MM-DD); requires start_date. Defaults to today (UTC) when start_date is given."
      • addedInput schema / properties / max_images
        Added value: +{
        +  "default": 1,
        +  "description": "How many pictures to embed as image content (0-5). Remaining entries are listed by URL.",
        +  "maximum": 5,
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • changedInput schema / properties / start_date / description
        Previous value: -"Start date for date range search (YYYY-MM-DD)"New value: +"Start of a date range (YYYY-MM-DD)."
      • removedInput schema / properties / thumbs
        Removed value: -{
        -  "description": "Return URL of thumbnail for video content",
        -  "type": "boolean"
        -}
      • removedInput schema / required
        Removed value: -[
        -  "date"
        -]
    • Changednasa_cmr54 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties / bbox
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "items": {
        +        "type": "number"
        +      },
        +      "maxItems": 4,
        +      "minItems": 4,
        +      "type": "array"
        +    }
        +  ],
        +  "description": "Compatibility alias for bounding_box (sent to CMR as bounding_box)."
        +}
      • addedInput schema / properties / bounding_box
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "items": {
        +        "type": "number"
        +      },
        +      "maxItems": 4,
        +      "minItems": 4,
        +      "type": "array"
        +    }
        +  ],
        +  "description": "Bounding box west,south,east,north (lon/lat degrees). west > east crosses the antimeridian (supported by CMR)."
        +}
      • addedInput schema / properties / browsable
        Added value: +{
        +  "description": "Only records with (true) or without (false) browse imagery.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / circle
        Added value: +{
        +  "description": "Circle \"lon,lat,radius\" with radius in metres (10-6000000).",
        +  "type": "string"
        +}
      • addedInput schema / properties / cloud_cover
        Added value: +{
        +  "description": "Granules only: cloud cover range \"min,max\" in percent.",
        +  "pattern": "^(\\d+(\\.\\d+)?)?,(\\d+(\\.\\d+)?)?$",
        +  "type": "string"
        +}
      • addedInput schema / properties / cloud_hosted
        Added value: +{
        +  "description": "Collections only: restrict to cloud-hosted (true) or not (false).",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / collection_concept_id
        Added value: +{
        +  "anyOf": [
        +    {
        +      "pattern": "^[A-Z]{1,4}\\d+-[A-Za-z0-9_]+$",
        +      "type": "string"
        +    },
        +    {
        +      "items": {
        +        "pattern": "^[A-Z]{1,4}\\d+-[A-Za-z0-9_]+$",
        +        "type": "string"
        +      },
        +      "maxItems": 100,
        +      "minItems": 1,
        +      "type": "array"
        +    }
        +  ],
        +  "description": "Granules only: collection concept ID(s) to search within."
        +}
      • addedInput schema / properties / concept_id
        Added value: +{
        +  "anyOf": [
        +    {
        +      "pattern": "^[A-Z]{1,4}\\d+-[A-Za-z0-9_]+$",
        +      "type": "string"
        +    },
        +    {
        +      "items": {
        +        "pattern": "^[A-Z]{1,4}\\d+-[A-Za-z0-9_]+$",
        +        "type": "string"
        +      },
        +      "maxItems": 100,
        +      "minItems": 1,
        +      "type": "array"
        +    }
        +  ],
        +  "description": "Concept ID(s). For granule searches a collection concept ID (C...) also selects that collection, as in CMR."
        +}
      • addedInput schema / properties / cursor
        Added value: +{
        +  "description": "next_cursor from a previous response. Continue with the cursor alone; omitted filters are restored from it.",
        +  "maxLength": 8192,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedInput schema / properties / day_night_flag
        Added value: +{
        +  "description": "Granules only: DAY, NIGHT, BOTH or UNSPECIFIED.",
        +  "enum": [
        +    "DAY",
        +    "NIGHT",
        +    "BOTH",
        +    "UNSPECIFIED"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / doi
        Added value: +{
        +  "description": "Collections only: DOI, e.g. 10.5067/GHGMR-4FJ04.",
        +  "maxLength": 200,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedInput schema / properties / downloadable
        Added value: +{
        +  "description": "Only records with (true) or without (false) downloadable data links.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / entry_title
        Added value: +{
        +  "description": "Collection entry title.",
        +  "maxLength": 1000,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedInput schema / properties / fields
        Added value: +{
        +  "description": "Compact mode only: normalized fields to return. concept_id is always included. Defaults to all fields except summary.",
        +  "items": {
        +    "enum": [
        +      "concept_id",
        +      "title",
        +      "short_name",
        +      "version",
        +      "provider",
        +      "time_start",
        +      "time_end",
        +      "platforms",
        +      "instruments",
        +      "processing_level",
        +      "doi",
        +      "cloud_hosted",
        +      "online_access",
        +      "links",
        +      "summary",
        +      "collection_concept_id",
        +      "producer_granule_id",
        +      "day_night_flag",
        +      "cloud_cover",
        +      "browse_available"
        +    ],
        +    "type": "string"
        +  },
        +  "maxItems": 20,
        +  "minItems": 1,
        +  "type": "array"
        +}
      • changedInput schema / properties / format / description
        Previous value: -"Response format"New value: +"Upstream CMR metadata format. json/umm_json support compact output; others are returned raw. dif, dif10, opendata: collections only; stac: granules only."
      • changedInput schema / properties / format / enum
        Previous value: -[
        -  "json",
        -  "umm_json",
        -  "atom",
        -  "echo10",
        -  "iso19115",
        -  "iso_smap",
        -  "kml"
        -]New value: +[
        +  "json",
        +  "umm_json",
        +  "atom",
        +  "echo10",
        +  "iso19115",
        +  "kml",
        +  "csv",
        +  "xml",
        +  "native",
        +  "dif",
        +  "dif10",
        +  "opendata",
        +  "stac"
        +]
      • addedInput schema / properties / granule_data_format
        Added value: +{
        +  "anyOf": [
        +    {
        +      "maxLength": 256,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    {
        +      "items": {
        +        "maxLength": 256,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "maxItems": 20,
        +      "minItems": 1,
        +      "type": "array"
        +    }
        +  ],
        +  "description": "Collections only: granule data format(s), e.g. netCDF-4."
        +}
      • addedInput schema / properties / has_granules
        Added value: +{
        +  "description": "Collections only: require (true) or exclude (false) collections with granules.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / include_facets
        Added value: +{
        +  "description": "Include CMR v2 facets (counts by keyword, platform, ...).",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / instrument
        Added value: +{
        +  "anyOf": [
        +    {
        +      "maxLength": 256,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    {
        +      "items": {
        +        "maxLength": 256,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "maxItems": 20,
        +      "minItems": 1,
        +      "type": "array"
        +    }
        +  ],
        +  "description": "Instrument short name(s), e.g. MODIS."
        +}
      • changedInput schema / properties / keyword / description
        Previous value: -"Search keyword"New value: +"Collections only: free-text keyword search."
      • addedInput schema / properties / keyword / maxLength
        Added value: +1000
      • addedInput schema / properties / keyword / minLength
        Added value: +1
      • addedInput schema / properties / limit / default
        Added value: +10
      • changedInput schema / properties / limit / description
        Previous value: -"Maximum number of results to return"New value: +"Records per page (1-100)."
      • addedInput schema / properties / limit / maximum
        Added value: +100
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / line
        Added value: +{
        +  "description": "Line \"lon1,lat1,lon2,lat2,...\".",
        +  "maxLength": 8000,
        +  "type": "string"
        +}
      • addedInput schema / properties / offset
        Added value: +{
        +  "description": "DEPRECATED offset pagination. Prefer cursor. Cannot be combined with cursor or page.",
        +  "maximum": 9007199254740991,
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • addedInput schema / properties / online_only
        Added value: +{
        +  "description": "Only online (true) or offline (false) records.",
        +  "type": "boolean"
        +}
      • changedInput schema / properties / page / description
        Previous value: -"Page number for pagination"New value: +"DEPRECATED page-number pagination (CMR page_num). Prefer cursor. Cannot be combined with cursor or offset."
      • addedInput schema / properties / page / maximum
        Added value: +9007199254740991
      • addedInput schema / properties / page / minimum
        Added value: +1
      • changedInput schema / properties / page / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / platform
        Added value: +{
        +  "anyOf": [
        +    {
        +      "maxLength": 256,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    {
        +      "items": {
        +        "maxLength": 256,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "maxItems": 20,
        +      "minItems": 1,
        +      "type": "array"
        +    }
        +  ],
        +  "description": "Platform short name(s), e.g. Terra."
        +}
      • addedInput schema / properties / point
        Added value: +{
        +  "description": "Point \"lon,lat\".",
        +  "maxLength": 8000,
        +  "type": "string"
        +}
      • addedInput schema / properties / polygon
        Added value: +{
        +  "description": "Polygon \"lon1,lat1,...,lon1,lat1\": closed, counter-clockwise (CMR rejects clockwise rings).",
        +  "maxLength": 8000,
        +  "type": "string"
        +}
      • addedInput schema / properties / processing_level_id
        Added value: +{
        +  "anyOf": [
        +    {
        +      "maxLength": 40,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    {
        +      "items": {
        +        "maxLength": 40,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "maxItems": 20,
        +      "minItems": 1,
        +      "type": "array"
        +    }
        +  ],
        +  "description": "Collections only: processing level(s), e.g. 3, L2."
        +}
      • addedInput schema / properties / producer_granule_id
        Added value: +{
        +  "description": "Granules only: producer granule ID.",
        +  "maxLength": 1000,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedInput schema / properties / project
        Added value: +{
        +  "anyOf": [
        +    {
        +      "maxLength": 256,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    {
        +      "items": {
        +        "maxLength": 256,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "maxItems": 20,
        +      "minItems": 1,
        +      "type": "array"
        +    }
        +  ],
        +  "description": "Project/campaign short name(s)."
        +}
      • addedInput schema / properties / provider
        Added value: +{
        +  "anyOf": [
        +    {
        +      "maxLength": 80,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    {
        +      "items": {
        +        "maxLength": 80,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "maxItems": 20,
        +      "minItems": 1,
        +      "type": "array"
        +    }
        +  ],
        +  "description": "Provider ID(s), e.g. POCLOUD, LPCLOUD."
        +}
      • addedInput schema / properties / readable_granule_name
        Added value: +{
        +  "description": "Granules only: granule name (supports CMR * and ? wildcards).",
        +  "maxLength": 1000,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedInput schema / properties / response_mode
        Added value: +{
        +  "description": "compact (default for json/umm_json): normalized records. raw: upstream metadata as returned (default for other formats).",
        +  "enum": [
        +    "compact",
        +    "raw"
        +  ],
        +  "type": "string"
        +}
      • changedInput schema / properties / search_type / description
        Previous value: -"Search type (collections or granules)"New value: +"Search collections (datasets) or granules (files)."
      • addedInput schema / properties / short_name
        Added value: +{
        +  "anyOf": [
        +    {
        +      "maxLength": 256,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    {
        +      "items": {
        +        "maxLength": 256,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "maxItems": 20,
        +      "minItems": 1,
        +      "type": "array"
        +    }
        +  ],
        +  "description": "Collection short name(s)."
        +}
      • addedInput schema / properties / sort_key / anyOf
        Added value: +[
        +  {
        +    "pattern": "^[+-]?[a-z_-]+$",
        +    "type": "string"
        +  },
        +  {
        +    "items": {
        +      "pattern": "^[+-]?[a-z_-]+$",
        +      "type": "string"
        +    },
        +    "maxItems": 3,
        +    "minItems": 1,
        +    "type": "array"
        +  }
        +]
      • changedInput schema / properties / sort_key / description
        Previous value: -"Field to sort results by"New value: +"Sort key(s), \"-\" prefix for descending. Collections: score, usage_score, entry_title, dataset_id, short_name, entry_id, start_date, end_date, platform, instrument, sensor, provider, revision_date, has_granules, create-data-date, ongoing. Granules: start_date, end_date, producer_granule_id, readable_granule_name, granule_ur, revision_date, cloud_cover, day_night_flag, data_size, provider, platform, instrument, sensor, online_only, browsable, entry_title, short_name, version, campaign, project."
      • removedInput schema / properties / sort_key / type
        Removed value: -"string"
      • addedInput schema / properties / temporal
        Added value: +{
        +  "description": "Temporal range \"start,end\" in ISO 8601 (date or date-time, UTC assumed). Either side may be empty, e.g. \"2020-01-01T00:00:00Z,\".",
        +  "type": "string"
        +}
      • addedInput schema / properties / version
        Added value: +{
        +  "description": "Collection version.",
        +  "maxLength": 80,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • removedInput schema / required
        Removed value: -[
        -  "keyword",
        -  "search_type",
        -  "format"
        -]
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "error": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "http_status": {
        +          "anyOf": [
        +            {
        +              "maximum": 9007199254740991,
        +              "minimum": -9007199254740991,
        +              "type": "integer"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "kind": {
        +          "type": "string"
        +        },
        +        "message": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "kind",
        +        "message",
        +        "http_status"
        +      ],
        +      "type": "object"
        +    },
        +    "facets": {
        +      "items": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "name": {
        +            "type": "string"
        +          },
        +          "values": {
        +            "items": {
        +              "additionalProperties": false,
        +              "properties": {
        +                "count": {
        +                  "type": [
        +                    "number",
        +                    "null"
        +                  ]
        +                },
        +                "title": {
        +                  "type": "string"
        +                }
        +              },
        +              "required": [
        +                "title",
        +                "count"
        +              ],
        +              "type": "object"
        +            },
        +            "type": "array"
        +          }
        +        },
        +        "required": [
        +          "name",
        +          "values"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "format": {
        +      "enum": [
        +        "json",
        +        "umm_json",
        +        "atom",
        +        "echo10",
        +        "iso19115",
        +        "kml",
        +        "csv",
        +        "xml",
        +        "native",
        +        "dif",
        +        "dif10",
        +        "opendata",
        +        "stac"
        +      ],
        +      "type": "string"
        +    },
        +    "next_cursor": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "raw": {},
        +    "response_mode": {
        +      "enum": [
        +        "compact",
        +        "raw"
        +      ],
        +      "type": "string"
        +    },
        +    "results": {
        +      "items": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "browse_available": {
        +            "type": [
        +              "boolean",
        +              "null"
        +            ]
        +          },
        +          "cloud_cover": {
        +            "type": [
        +              "number",
        +              "null"
        +            ]
        +          },
        +          "cloud_hosted": {
        +            "type": [
        +              "boolean",
        +              "null"
        +            ]
        +          },
        +          "collection_concept_id": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "concept_id": {
        +            "type": "string"
        +          },
        +          "day_night_flag": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "doi": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "instruments": {
        +            "anyOf": [
        +              {
        +                "items": {
        +                  "type": "string"
        +                },
        +                "type": "array"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "links": {
        +            "anyOf": [
        +              {
        +                "items": {
        +                  "additionalProperties": false,
        +                  "properties": {
        +                    "title": {
        +                      "type": [
        +                        "string",
        +                        "null"
        +                      ]
        +                    },
        +                    "type": {
        +                      "type": [
        +                        "string",
        +                        "null"
        +                      ]
        +                    },
        +                    "url": {
        +                      "type": "string"
        +                    }
        +                  },
        +                  "required": [
        +                    "url",
        +                    "type",
        +                    "title"
        +                  ],
        +                  "type": "object"
        +                },
        +                "type": "array"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "online_access": {
        +            "type": [
        +              "boolean",
        +              "null"
        +            ]
        +          },
        +          "platforms": {
        +            "anyOf": [
        +              {
        +                "items": {
        +                  "type": "string"
        +                },
        +                "type": "array"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "processing_level": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "producer_granule_id": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "provider": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "short_name": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "summary": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "time_end": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "time_start": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "title": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "version": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          }
        +        },
        +        "required": [
        +          "concept_id"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "retrieved_at": {
        +      "type": "string"
        +    },
        +    "returned_count": {
        +      "anyOf": [
        +        {
        +          "maximum": 9007199254740991,
        +          "minimum": -9007199254740991,
        +          "type": "integer"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "search_type": {
        +      "enum": [
        +        "collections",
        +        "granules"
        +      ],
        +      "type": "string"
        +    },
        +    "source": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "request_id": {
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        },
        +        "retrieved_at": {
        +          "type": "string"
        +        },
        +        "service": {
        +          "type": "string"
        +        },
        +        "took_ms": {
        +          "type": [
        +            "number",
        +            "null"
        +          ]
        +        },
        +        "url": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "service",
        +        "url",
        +        "request_id",
        +        "took_ms",
        +        "retrieved_at"
        +      ],
        +      "type": "object"
        +    },
        +    "status": {
        +      "enum": [
        +        "success",
        +        "no_results",
        +        "error"
        +      ],
        +      "type": "string"
        +    },
        +    "total_hits": {
        +      "anyOf": [
        +        {
        +          "maximum": 9007199254740991,
        +          "minimum": -9007199254740991,
        +          "type": "integer"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "warnings": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "status",
        +    "search_type",
        +    "format",
        +    "response_mode",
        +    "results",
        +    "returned_count",
        +    "total_hits",
        +    "next_cursor",
        +    "source",
        +    "retrieved_at",
        +    "warnings"
        +  ],
        +  "type": "object"
        +}
    • Changednasa_donki7 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedInput schema / properties / endDate / description
        Previous value: -"End date (YYYY-MM-DD)"New value: +"End date (YYYY-MM-DD), at most 30 days after startDate. Defaults to today."
      • addedInput schema / properties / limit
        Added value: +{
        +  "description": "Return only the most recent N events. Applied by this server; DONKI has no limit parameter.",
        +  "maximum": 1000,
        +  "minimum": 1,
        +  "type": "integer"
        +}
      • addedInput schema / properties / response_mode
        Added value: +{
        +  "default": "compact",
        +  "description": "compact (default): one line per event with its key fields. raw: the full DONKI records as JSON (large for cme, cmea and wsa).",
        +  "enum": [
        +    "compact",
        +    "raw"
        +  ],
        +  "type": "string"
        +}
      • changedInput schema / properties / startDate / description
        Previous value: -"Start date (YYYY-MM-DD)"New value: +"Start date (YYYY-MM-DD). With only endDate, 30 days before endDate; with neither, the last 30 days."
      • changedInput schema / properties / type / description
        Previous value: -"Type of space weather event"New value: +"Event type: cme, cmea, gst, ips, flr, sep, mpc, rbe, hss, wsa, notifications."
      • addedInput schema / properties / type / enum
        Added value: +[
        +  "cme",
        +  "cmea",
        +  "gst",
        +  "ips",
        +  "flr",
        +  "sep",
        +  "mpc",
        +  "rbe",
        +  "hss",
        +  "wsa",
        +  "notifications"
        +]
    • Changednasa_eonet18 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedInput schema / properties / category / description
        Previous value: -"Event category (wildfires, volcanoes, etc.)"New value: +"EONET category ID(s), comma-separated: e.g. wildfires, severeStorms, volcanoes, seaLakeIce."
      • addedInput schema / properties / category / pattern
        Added value: +"^[A-Za-z]+(,[A-Za-z]+)*$"
      • addedInput schema / properties / days / default
        Added value: +60
      • changedInput schema / properties / days / description
        Previous value: -"Number of days to look back"New value: +"Only events active within this many prior days."
      • addedInput schema / properties / days / maximum
        Added value: +3650
      • addedInput schema / properties / days / minimum
        Added value: +1
      • changedInput schema / properties / days / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / limit / default
        Added value: +50
      • changedInput schema / properties / limit / description
        Previous value: -"Maximum number of events to return"New value: +"Maximum number of events (1-500)."
      • addedInput schema / properties / limit / maximum
        Added value: +500
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
      • changedInput schema / properties / source / description
        Previous value: -"Data source"New value: +"EONET source ID(s), comma-separated, e.g. InciWeb,EO."
      • addedInput schema / properties / source / pattern
        Added value: +"^[A-Za-z0-9_]+(,[A-Za-z0-9_]+)*$"
      • addedInput schema / properties / status / default
        Added value: +"all"
      • changedInput schema / properties / status / description
        Previous value: -"Event status (open, closed)"New value: +"Event status filter."
      • addedInput schema / properties / status / enum
        Added value: +[
        +  "open",
        +  "closed",
        +  "all"
        +]
    • Changednasa_epic6 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties / collection / default
        Added value: +"natural"
      • changedInput schema / properties / collection / description
        Previous value: -"Image collection (natural or enhanced)"New value: +"Image collection."
      • addedInput schema / properties / collection / enum
        Added value: +[
        +  "natural",
        +  "enhanced"
        +]
      • changedInput schema / properties / date / description
        Previous value: -"Date of the image (YYYY-MM-DD)"New value: +"Date of the images (YYYY-MM-DD). Defaults to the most recent available day."
      • addedInput schema / properties / max_images
        Added value: +{
        +  "default": 1,
        +  "description": "How many images to embed (0-3, JPEG). All images are listed with PNG and JPEG URLs.",
        +  "maximum": 3,
        +  "minimum": 0,
        +  "type": "integer"
        +}
    • Changednasa_exoplanet15 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties / format
        Added value: +{
        +  "default": "json",
        +  "description": "Result format.",
        +  "enum": [
        +    "json",
        +    "csv"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / limit / default
        Added value: +100
      • changedInput schema / properties / limit / description
        Previous value: -"Maximum number of results"New value: +"Maximum rows (1-1000)."
      • addedInput schema / properties / limit / maximum
        Added value: +1000
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
      • changedInput schema / properties / order / description
        Previous value: -"Ordering of results"New value: +"ADQL ORDER BY expression, e.g. pl_name."
      • addedInput schema / properties / order / minLength
        Added value: +1
      • changedInput schema / properties / select / description
        Previous value: -"Columns to return"New value: +"Columns to return (ADQL select list). Defaults to *."
      • addedInput schema / properties / select / minLength
        Added value: +1
      • changedInput schema / properties / table / description
        Previous value: -"Database table to query"New value: +"TAP table, e.g. ps (Planetary Systems), pscomppars, cumulative (Kepler KOI), toi."
      • addedInput schema / properties / table / pattern
        Added value: +"^[A-Za-z_][A-Za-z0-9_]*$"
      • changedInput schema / properties / where / description
        Previous value: -"Filter conditions"New value: +"ADQL WHERE condition, e.g. disc_year > 2020 and discoverymethod = 'Transit'."
      • addedInput schema / properties / where / minLength
        Added value: +1
    • Changednasa_firms19 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties / bbox
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "items": {
        +        "type": "number"
        +      },
        +      "maxItems": 4,
        +      "minItems": 4,
        +      "type": "array"
        +    }
        +  ],
        +  "description": "Area as west,south,east,north in decimal degrees (preferred). Antimeridian-crossing boxes are rejected."
        +}
      • addedInput schema / properties / date
        Added value: +{
        +  "description": "First day of the window (YYYY-MM-DD); FIRMS returns [date, date + days - 1]. Omit for the most recent data.",
        +  "type": "string"
        +}
      • addedInput schema / properties / days / default
        Added value: +1
      • changedInput schema / properties / days / description
        Previous value: -"Number of days of data to retrieve"New value: +"DAY_RANGE: number of days of detections (1-5)."
      • addedInput schema / properties / days / maximum
        Added value: +5
      • addedInput schema / properties / days / minimum
        Added value: +1
      • changedInput schema / properties / days / type
        Previous value: -"number"New value: +"integer"
      • changedInput schema / properties / latitude / description
        Previous value: -"Latitude coordinate"New value: +"Legacy area center latitude; requires longitude and radius_km."
      • addedInput schema / properties / latitude / maximum
        Added value: +90
      • addedInput schema / properties / latitude / minimum
        Added value: +-90
      • addedInput schema / properties / limit
        Added value: +{
        +  "default": 100,
        +  "description": "Maximum detections returned (1-2000). total_detections reports the full count.",
        +  "maximum": 2000,
        +  "minimum": 1,
        +  "type": "integer"
        +}
      • changedInput schema / properties / longitude / description
        Previous value: -"Longitude coordinate"New value: +"Legacy area center longitude; requires latitude and radius_km."
      • addedInput schema / properties / longitude / maximum
        Added value: +180
      • addedInput schema / properties / longitude / minimum
        Added value: +-180
      • addedInput schema / properties / radius_km
        Added value: +{
        +  "description": "Half-width in kilometres of the box built around latitude/longitude (converted to a bbox before querying).",
        +  "exclusiveMinimum": 0,
        +  "maximum": 500,
        +  "type": "number"
        +}
      • addedInput schema / properties / source
        Added value: +{
        +  "default": "VIIRS_SNPP_NRT",
        +  "description": "FIRMS sensor/product. *_NRT is near real-time, *_SP is standard processing.",
        +  "enum": [
        +    "LANDSAT_NRT",
        +    "MODIS_NRT",
        +    "MODIS_SP",
        +    "VIIRS_NOAA20_NRT",
        +    "VIIRS_NOAA20_SP",
        +    "VIIRS_NOAA21_NRT",
        +    "VIIRS_SNPP_NRT",
        +    "VIIRS_SNPP_SP"
        +  ],
        +  "type": "string"
        +}
      • removedInput schema / required
        Removed value: -[
        -  "latitude",
        -  "longitude"
        -]
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "columns": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "detections": {
        +      "items": {
        +        "additionalProperties": {
        +          "type": [
        +            "string",
        +            "number",
        +            "null"
        +          ]
        +        },
        +        "propertyNames": {
        +          "type": "string"
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "error": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "http_status": {
        +          "anyOf": [
        +            {
        +              "maximum": 9007199254740991,
        +              "minimum": -9007199254740991,
        +              "type": "integer"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "kind": {
        +          "type": "string"
        +        },
        +        "message": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "kind",
        +        "message",
        +        "http_status"
        +      ],
        +      "type": "object"
        +    },
        +    "query": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "bbox": {
        +          "items": {
        +            "type": "number"
        +          },
        +          "maxItems": 4,
        +          "minItems": 4,
        +          "type": "array"
        +        },
        +        "date": {
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        },
        +        "day_range": {
        +          "maximum": 9007199254740991,
        +          "minimum": -9007199254740991,
        +          "type": "integer"
        +        },
        +        "derived_from": {
        +          "anyOf": [
        +            {
        +              "additionalProperties": false,
        +              "properties": {
        +                "latitude": {
        +                  "type": "number"
        +                },
        +                "longitude": {
        +                  "type": "number"
        +                },
        +                "radius_km": {
        +                  "type": "number"
        +                }
        +              },
        +              "required": [
        +                "latitude",
        +                "longitude",
        +                "radius_km"
        +              ],
        +              "type": "object"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "source": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "source",
        +        "bbox",
        +        "day_range",
        +        "date",
        +        "derived_from"
        +      ],
        +      "type": "object"
        +    },
        +    "retrieved_at": {
        +      "type": "string"
        +    },
        +    "returned_count": {
        +      "maximum": 9007199254740991,
        +      "minimum": -9007199254740991,
        +      "type": "integer"
        +    },
        +    "source": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "retrieved_at": {
        +          "type": "string"
        +        },
        +        "service": {
        +          "type": "string"
        +        },
        +        "url": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "service",
        +        "url",
        +        "retrieved_at"
        +      ],
        +      "type": "object"
        +    },
        +    "status": {
        +      "enum": [
        +        "success",
        +        "no_results",
        +        "error"
        +      ],
        +      "type": "string"
        +    },
        +    "total_detections": {
        +      "anyOf": [
        +        {
        +          "maximum": 9007199254740991,
        +          "minimum": -9007199254740991,
        +          "type": "integer"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "warnings": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "status",
        +    "query",
        +    "total_detections",
        +    "returned_count",
        +    "columns",
        +    "detections",
        +    "source",
        +    "retrieved_at",
        +    "warnings"
        +  ],
        +  "type": "object"
        +}
    • Changednasa_gibs12 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties / bbox
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "items": {
        +        "type": "number"
        +      },
        +      "maxItems": 4,
        +      "minItems": 4,
        +      "type": "array"
        +    }
        +  ],
        +  "description": "Area as west,south,east,north in decimal degrees (EPSG:4326). Defaults to the whole globe."
        +}
      • changedInput schema / properties / date / description
        Previous value: -"Date of imagery (YYYY-MM-DD)"New value: +"Imagery date (YYYY-MM-DD)."
      • addedInput schema / properties / format / default
        Added value: +"png"
      • changedInput schema / properties / format / description
        Previous value: -"Image format (png, jpg, jpeg)"New value: +"Image format."
      • addedInput schema / properties / format / enum
        Added value: +[
        +  "png",
        +  "jpg",
        +  "jpeg"
        +]
      • changedInput schema / properties / layer / description
        Previous value: -"Layer name (e.g., MODIS_Terra_CorrectedReflectance_TrueColor)"New value: +"GIBS layer identifier, e.g. MODIS_Terra_CorrectedReflectance_TrueColor"
      • addedInput schema / properties / layer / pattern
        Added value: +"^[A-Za-z0-9_.-]+$"
      • addedInput schema / properties / resolution / default
        Added value: +2
      • changedInput schema / properties / resolution / description
        Previous value: -"Resolution in pixels per degree"New value: +"Output resolution in pixels per degree (default 2, i.e. 720x360 for the whole globe)."
      • addedInput schema / properties / resolution / exclusiveMinimum
        Added value: +0
      • addedInput schema / properties / resolution / maximum
        Added value: +40
    • Changednasa_images16 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties / max_images
        Added value: +{
        +  "default": 3,
        +  "description": "How many preview thumbnails to embed (0-5). Every item is listed with its URLs.",
        +  "maximum": 5,
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • changedInput schema / properties / media_type / description
        Previous value: -"Media type (image, video, audio)"New value: +"Restrict to one media type."
      • addedInput schema / properties / media_type / enum
        Added value: +[
        +  "image",
        +  "video",
        +  "audio"
        +]
      • addedInput schema / properties / page / default
        Added value: +1
      • changedInput schema / properties / page / description
        Previous value: -"Page number for pagination"New value: +"Result page (1-based)."
      • addedInput schema / properties / page / maximum
        Added value: +100
      • addedInput schema / properties / page / minimum
        Added value: +1
      • changedInput schema / properties / page / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / page_size
        Added value: +{
        +  "default": 10,
        +  "description": "Results per page (1-100).",
        +  "maximum": 100,
        +  "minimum": 1,
        +  "type": "integer"
        +}
      • changedInput schema / properties / q / description
        Previous value: -"Search query"New value: +"Free-text search terms."
      • addedInput schema / properties / q / minLength
        Added value: +1
      • changedInput schema / properties / year_end / description
        Previous value: -"End year for results"New value: +"Latest year (YYYY)."
      • addedInput schema / properties / year_end / pattern
        Added value: +"^\\d{4}$"
      • changedInput schema / properties / year_start / description
        Previous value: -"Start year for results"New value: +"Earliest year (YYYY)."
      • addedInput schema / properties / year_start / pattern
        Added value: +"^\\d{4}$"
    • Addednasa_insight_weather
    • Changednasa_mars_rover15 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedInput schema / properties / camera / description
        Previous value: -"Camera name"New value: +"Camera abbreviation, e.g. FHAZ, NAVCAM."
      • addedInput schema / properties / camera / pattern
        Added value: +"^[A-Za-z_]+$"
      • changedInput schema / properties / earth_date / description
        Previous value: -"Earth date of the photos (YYYY-MM-DD)"New value: +"Earth date of the photos (YYYY-MM-DD). Provide sol or earth_date."
      • addedInput schema / properties / max_images
        Added value: +{
        +  "default": 3,
        +  "description": "How many photos to embed (0-5).",
        +  "maximum": 5,
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • changedInput schema / properties / page / description
        Previous value: -"Page number for pagination"New value: +"Result page (25 photos per page)."
      • addedInput schema / properties / page / maximum
        Added value: +9007199254740991
      • addedInput schema / properties / page / minimum
        Added value: +1
      • changedInput schema / properties / page / type
        Previous value: -"number"New value: +"integer"
      • changedInput schema / properties / rover / description
        Previous value: -"Name of the rover (curiosity, opportunity, spirit, perseverance)"New value: +"Rover name."
      • addedInput schema / properties / rover / enum
        Added value: +[
        +  "curiosity",
        +  "opportunity",
        +  "perseverance",
        +  "spirit"
        +]
      • changedInput schema / properties / sol / description
        Previous value: -"Martian sol (day) of the photos"New value: +"Martian sol of the photos. Provide sol or earth_date."
      • addedInput schema / properties / sol / maximum
        Added value: +9007199254740991
      • addedInput schema / properties / sol / minimum
        Added value: +0
      • changedInput schema / properties / sol / type
        Previous value: -"number"New value: +"integer"
    • Changednasa_neo6 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedInput schema / properties / asteroid_id / description
        Previous value: -"ID of a specific asteroid"New value: +"Look up one asteroid by its NeoWs ID instead of the date feed."
      • addedInput schema / properties / asteroid_id / pattern
        Added value: +"^\\d+$"
      • changedInput schema / properties / end_date / description
        Previous value: -"End date for asteroid search (YYYY-MM-DD)"New value: +"End date (YYYY-MM-DD), at most 7 days after start_date. Defaults to start_date."
      • changedInput schema / properties / start_date / description
        Previous value: -"Start date for asteroid search (YYYY-MM-DD)"New value: +"Start date for the close-approach feed (YYYY-MM-DD). Defaults to today (UTC)."
      • removedInput schema / required
        Removed value: -[
        -  "start_date",
        -  "end_date"
        -]
    • Changednasa_osdr_files3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedInput schema / properties / accession_number / description
        Previous value: -"OSD study accession number (e.g., '87')"New value: +"OSD study accession number, e.g. 87 or OSD-87."
      • addedInput schema / properties / accession_number / pattern
        Added value: +"^(OSD-)?\\d+$"
    • Changednasa_power18 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedInput schema / properties / community / description
        Previous value: -"User community (RE, SB, AG, etc.)"New value: +"User community: RE (renewable energy), SB (sustainable buildings), AG (agroclimatology)."
      • addedInput schema / properties / community / enum
        Added value: +[
        +  "RE",
        +  "SB",
        +  "AG"
        +]
      • changedInput schema / properties / end / description
        Previous value: -"End date (YYYYMMDD)"New value: +"End date (YYYYMMDD)."
      • addedInput schema / properties / format / default
        Added value: +"json"
      • changedInput schema / properties / format / description
        Previous value: -"Response format (json, csv, etc.)"New value: +"Response format."
      • addedInput schema / properties / format / enum
        Added value: +[
        +  "json",
        +  "csv"
        +]
      • changedInput schema / properties / latitude / description
        Previous value: -"Latitude coordinate"New value: +"Latitude in decimal degrees."
      • addedInput schema / properties / latitude / maximum
        Added value: +90
      • addedInput schema / properties / latitude / minimum
        Added value: +-90
      • changedInput schema / properties / longitude / description
        Previous value: -"Longitude coordinate"New value: +"Longitude in decimal degrees."
      • addedInput schema / properties / longitude / maximum
        Added value: +180
      • addedInput schema / properties / longitude / minimum
        Added value: +-180
      • changedInput schema / properties / parameters / description
        Previous value: -"Comma-separated data parameters"New value: +"Comma-separated POWER parameters, e.g. T2M,PRECTOTCORR,WS10M."
      • addedInput schema / properties / parameters / pattern
        Added value: +"^[A-Za-z0-9_]+(,[A-Za-z0-9_]+)*$"
      • changedInput schema / properties / start / description
        Previous value: -"Start date (YYYYMMDD)"New value: +"Start date (YYYYMMDD)."
      • addedInput schema / properties / time_standard
        Added value: +{
        +  "description": "Time standard for daily values; POWER defaults to LST (local solar time) when omitted.",
        +  "enum": [
        +    "utc",
        +    "lst"
        +  ],
        +  "type": "string"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "parameters",
        -  "community",
        -  "longitude",
        -  "latitude",
        -  "start",
        -  "end"
        -]New value: +[
        +  "parameters",
        +  "community",
        +  "latitude",
        +  "longitude",
        +  "start",
        +  "end"
        +]
    • Addednasa_ssc_locations
    • Addednasa_ssc_observatories
    • Addednasa_techport
    • Addednasa_techtransfer
    • Addednasa_tle
    • Addednasa_trek_layers
    • Addednasa_trek_tile
  2. 2 tool updatesv1.0.0
    • Changednasa_cmr3 fields changed
      • addedInput schema / properties / format
        Added value: +{
        +  "default": "json",
        +  "description": "Response format",
        +  "enum": [
        +    "json",
        +    "umm_json",
        +    "atom",
        +    "echo10",
        +    "iso19115",
        +    "iso_smap",
        +    "kml"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / search_type
        Added value: +{
        +  "default": "collections",
        +  "description": "Search type (collections or granules)",
        +  "enum": [
        +    "collections",
        +    "granules"
        +  ],
        +  "type": "string"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "keyword"
        -]New value: +[
        +  "keyword",
        +  "search_type",
        +  "format"
        +]
    • Removednasa_earth
  3. 24 tool updates
    • First observedjpl_cad
    • First observedjpl_fireball
    • First observedjpl_horizons
    • First observedjpl_horizons_file
    • First observedjpl_jd_cal
    • First observedjpl_nhats
    • First observedjpl_periodic_orbits
    • First observedjpl_sbdb
    • First observedjpl_scout
    • First observedjpl_sentry
    • First observednasa_apod
    • First observednasa_cmr
    • First observednasa_donki
    • First observednasa_earth
    • First observednasa_eonet
    • First observednasa_epic
    • First observednasa_exoplanet
    • First observednasa_firms
    • First observednasa_gibs
    • First observednasa_images
    • First observednasa_mars_rover
    • First observednasa_neo
    • First observednasa_osdr_files
    • First observednasa_power

TDQS

B3.3/5.0

Scored across 32 tools

Disambiguation3/5

Most tools target distinct NASA data sources, but several pairs overlap: nasa_neo and jpl_cad both handle close approaches, jpl_sentry and jpl_scout both assess impact risk, and jpl_horizons and jpl_horizons_file offer the same data via different HTTP methods. Descriptions help distinguish these, but an agent could still misselect.

Naming Consistency5/5

All tool names use consistent snake_case with a clear provider prefix (nasa_ or jpl_) and service-oriented nouns. The pattern is predictable throughout, with only minor abbreviations like jpl_jd_cal that still fit the convention.

Tool Count2/5

32 tools is well above the recommended 3–15 range and feels heavy even for a broad NASA data server. While each tool maps to a distinct API, the set would be more manageable if split into focused sub-servers.

Completeness3/5

The surface covers many NASA APIs but misses major ones like NTRS, ADS, PDS, and HEASARC. Additionally, some included tools are deprecated or frozen (nasa_mars_rover, nasa_insight_weather), creating dead ends that limit reliable coverage.

Maintenance

ActivitySlowing
ResponsivenessLimited data

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    An MCP server that enables LLMs to query data from various NASA APIs, allowing access to astronomical data, space weather information, Earth imagery, and exoplanet information directly from compatible AI clients.
    21
    6
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Multi-Agent Conversation Protocol server for accessing NASA's Astronomy Picture of the Day (APOD) API, allowing users to retrieve space imagery and related information through natural language interactions.
    -
  • A
    license
    A
    quality
    D
    maintenance
    MCP server providing AI agents with access to NASA and space/astronomy data including APOD, Mars rover photos, near-Earth asteroids, exoplanets, Earth imagery, natural events, and space weather.
    11
    13 PyPI
    MIT