NASA Earthdata MCP
Qué hace este MCP
Discovers NASA Earth science collections, granules, variables, citations, services, tools, and controlled vocabulary through NASA Earthdata metadata.
Herramientas
Esquema de entrada
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'default': 10, 'description': 'Maximum number of results to return (default 10, max 50). Keep this small to avoid context window bloat. When using limit > 10, always specify the fields parameter.'}, 'cursor': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Pagination token for the next page of results. Pass the exact next_cursor string returned by the previous tool call. Cursors are query-scoped: they lock in the original search parameters and cannot be reused across different tools or different queries. If you need to change any search parameter, start a new search without a cursor.'}, 'fields': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'default': None}, 'provider': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'identifier': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'collection_concept_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'title': 'GetCitationsOutput', 'required': ['status'], 'properties': {'status': {'enum': ['success', 'no_results', 'error'], 'type': 'string', 'title': 'SearchStatus', 'description': 'Status of the tool execution'}, 'citations': {'type': 'array', 'items': {'type': 'object', 'title': 'CitationResult', 'required': ['concept_id'], 'properties': {'name': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Name', 'default': None, 'description': 'The name or title of the citation'}, 'abstract': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Abstract', 'default': None, 'description': 'The abstract of the citation'}, 'native_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Native Id', 'default': None, 'description': 'The native ID of the citation record'}, 'concept_id': {'type': 'string', 'title': 'Concept Id', 'description': 'CMR citation concept ID'}, 'identifier': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Identifier', 'default': None, 'description': 'The primary identifier (e.g., DOI)'}, 'provider_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Provider Id', 'default': None, 'description': 'The provider ID of the citation'}, 'revision_id': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Revision Id', 'default': None, 'description': 'The revision ID of the citation metadata'}, 'identifier_type': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Identifier Type', 'default': None, 'description': 'Type of the identifier (e.g., DOI)'}, 'citation_metadata': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'title': 'Citation Metadata', 'default': None, 'description': 'Rich citation metadata including authors, publisher, year, and title'}, 'related_identifiers': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, {'type': 'null'}], 'title': 'Related Identifiers', 'default': None, 'description': 'Identifiers of related works'}, 'resolution_authority': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Resolution Authority', 'default': None, 'description': 'Authority to resolve the identifier (e.g., https://doi.org)'}, 'associated_collections': {'type': 'array', 'items': {'type': 'string'}, 'title': 'Associated Collections', 'description': 'CMR concept IDs of NASA datasets (collections) associated with this citation. CRITICAL: Pass these IDs to the get_collections tool to retrieve the human-readable dataset details.'}, 'metadata_specification': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'title': 'Metadata Specification', 'default': None, 'description': 'Schema version of the citation metadata'}}, 'description': 'Normalized citation result for direct CMR-backed retrieval.'}, 'title': 'Citations', 'description': 'Normalized citation results mapped from UMM-Citations'}, 'total_hits': {'type': 'integer', 'title': 'Total Hits', 'default': 0, 'description': 'Total number of matching items'}, 'next_cursor': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Next Cursor', 'default': None, 'description': 'Pagination token for the next page; None when no more results'}, 'error_message': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Error Message', 'default': None, 'description': 'Error details when status is error'}}, 'description': 'Output model for get_citations.'}
Esquema de entrada
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'default': 10, 'description': 'Maximum number of results to return (default 10, max 50). Keep this small to avoid context window bloat. When using limit > 10, always specify the fields parameter.'}, 'cursor': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Pagination token for the next page of results. Pass the exact next_cursor string returned by the previous tool call. Cursors are query-scoped: they lock in the original search parameters and cannot be reused across different tools or different queries. If you need to change any search parameter, start a new search without a cursor.'}, 'fields': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'default': None}, 'keyword': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Free-text keyword search. Case insensitive. IMPORTANT â\x80\x94 CMR uses AND logic: each space-separated word is matched independently and ALL words must appear somewhere in a collection\'s indexed fields (title, summary, short name, GCMD science keywords, platform and instrument names, project names, processing level, archive centers, additional attributes, etc.). Words do NOT need to appear in the same field or as a contiguous phrase. Because every word must match, adding more words makes the search STRICTER, not broader â\x80\x94 the opposite of typical web search engines. Prefer 2â\x80\x934 precise terms over long queries. Example: \'soil moisture\' (2 terms, broad) vs \'soil moisture SMAP L3\' (4 terms, narrow). Phrase search: wrap the entire value in escaped double quotes to require an exact phrase (e.g., \'\\"sea surface temperature\\"\'). Only a single phrase is supported; you cannot mix a phrase with additional standalone words. Wildcards supported: * (zero or more chars), ? (any single char). Use scientific terms: geophysical variable names (\'sea surface temperature\', \'soil moisture\'), instrument names (MODIS, ASCAT, VIIRS, AIRS, Landsat, etc.), or platform names (Terra, Aqua, SMAP, Sentinel-1, etc.). For known product short names use the short_name parameter instead.'}, 'platform': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'default': None}, 'provider': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Data provider short name (e.g., PODAAC, NSIDC_ECS, GES_DISC, ORNL_DAAC, LAADS, GHRC_DAAC, ASDC). Restricts results to collections from that provider. WARNING: NASA DAACs are actively migrating assets to the cloud under new provider IDs (e.g., LPDAAC_ECS â\x86\x92 LPCLOUD, PODAAC â\x86\x92 POCLOUD). If you know the exact short_name of a product, do NOT include the provider parameter â\x80\x94 a stale provider ID will silently return 0 results. Use provider only when the user explicitly filters by archive center.'}, 'concept_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Exact CMR concept ID (format: C<number>-<PROVIDER>, e.g., C2036882064-POCLOUD). Use for direct lookup of a known collection.'}, 'instrument': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'default': None}, 'short_name': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Collection short name (e.g., MOD11A1, SPL3SMP, MUR-JPL-L4-GLOB-v4.1). Exact match by default; wildcards * and ? are supported.'}, 'has_granules': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'default': None, 'description': 'When True, filters to collections that have actual granule data. Prevents returning metadata-only shells.'}, 'temporal_end_date': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'End of temporal filter in ISO 8601 format (e.g., 2020-12-31T23:59:59Z). Restricts results to collections whose declared temporal range overlaps this window. Set this whenever the user specifies a time period â\x80\x94 omitting it returns collections regardless of when their data was collected.'}, 'processing_level_id': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'default': None}, 'temporal_start_date': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Start of temporal filter in ISO 8601 format (e.g., 2020-01-01T00:00:00Z). Restricts results to collections whose declared temporal range overlaps this window. Set this whenever the user specifies a time period â\x80\x94 omitting it returns collections regardless of when their data was collected.'}, 'spatial_wkt_geometry': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Spatial filter as WKT geometry. Supported types: POLYGON((lon lat, ...)), POINT(lon lat), or LINESTRING(lon lat, ...).Restricts results to collections whose declared extent intersects this area. CMR returns any collection that touches this shape, so precise geometries are preferred to prevent false positives. Set this whenever the user specifies a geographic region â\x80\x94 omitting it returns collections with global or unspecified coverage.'}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'title': 'GetCollectionsOutput', 'required': ['status'], 'properties': {'status': {'enum': ['success', 'no_results', 'error'], 'type': 'string', 'title': 'SearchStatus', 'description': 'Status of the tool execution'}, 'total_hits': {'type': 'integer', 'title': 'Total Hits', 'default': 0, 'description': 'Total number of matching items'}, 'collections': {'type': 'array', 'items': {'type': 'object', 'title': 'CollectionResult', 'required': ['concept_id', 'entry_title'], 'properties': {'doi': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Doi', 'default': None, 'description': 'Digital Object Identifier'}, 'version': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Version', 'default': None, 'description': 'Collection version'}, 'abstract': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Abstract', 'default': None, 'description': 'Collection summary or abstract'}, 'time_end': {'anyOf': [{'type': 'string', 'format': 'date-time'}, {'type': 'null'}], 'title': 'Time End', 'default': None, 'description': 'End of temporal coverage'}, 'native_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Native Id', 'default': None, 'description': 'The native ID of the collection record'}, 'platforms': {'type': 'array', 'items': {'type': 'string'}, 'title': 'Platforms', 'description': 'Platform short names'}, 'concept_id': {'type': 'string', 'title': 'Concept Id', 'description': 'CMR collection concept ID'}, 'is_ongoing': {'type': 'boolean', 'title': 'Is Ongoing', 'default': False, 'description': 'Whether the collection is ongoing'}, 'short_name': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Short Name', 'default': None, 'description': 'Collection short name'}, 'time_start': {'anyOf': [{'type': 'string', 'format': 'date-time'}, {'type': 'null'}], 'title': 'Time Start', 'default': None, 'description': 'Start of temporal coverage'}, 'entry_title': {'type': 'string', 'title': 'Entry Title', 'description': 'Collection title'}, 'instruments': {'type': 'array', 'items': {'type': 'string'}, 'title': 'Instruments', 'description': 'Instrument short names'}, 'provider_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Provider Id', 'default': None, 'description': 'The provider ID of the collection'}, 'revision_id': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Revision Id', 'default': None, 'description': 'The revision ID of the collection metadata'}, 'bounding_box': {'anyOf': [{'type': 'array', 'items': {'type': 'number'}}, {'type': 'null'}], 'title': 'Bounding Box', 'default': None, 'description': '[West, South, East, North] Minimum Bounding Rectangle'}, 'data_centers': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}, 'title': 'Data Centers', 'description': 'Archiving DAACs â\x80\x94 array of {role, short_name}'}, 'related_urls': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}, 'title': 'Related Urls', 'description': 'List of related URLs (e.g., documentation, guides)'}, 'science_keywords': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}, 'title': 'Science Keywords', 'description': 'GCMD science keyword hierarchy (Category/Topic/Term/VariableLevel)'}, 'spatial_resolution': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Spatial Resolution', 'default': None, 'description': 'Human-readable spatial resolution'}, 'collection_progress': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Collection Progress', 'default': None, 'description': 'ACTIVE, COMPLETE, DEPRECATED, or PLANNED'}, 'processing_level_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Processing Level Id', 'default': None, 'description': 'Processing level (e.g., L3, L4)'}, 'temporal_resolution': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Temporal Resolution', 'default': None, 'description': 'Human-readable temporal resolution'}, 'collection_data_type': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Collection Data Type', 'default': None, 'description': 'e.g., SCIENCE_QUALITY, NEAR_REAL_TIME'}, 'archive_and_distribution_information': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}, 'title': 'Archive And Distribution Information', 'description': 'File formats and media types (e.g., [{format, media_type}])'}}, 'description': 'Minimal collection result for direct CMR-backed discovery.'}, 'title': 'Collections', 'description': 'Normalized collection results mapped from UMM-C'}, 'next_cursor': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Next Cursor', 'default': None, 'description': 'Pagination token for the next page of results'}, 'error_message': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Error Message', 'default': None, 'description': 'Error details when status is error'}}, 'description': 'Output model for get_collections.'}
Esquema de entrada
{'type': 'object', 'required': ['collection_concept_id'], 'properties': {'limit': {'type': 'integer', 'default': 10, 'description': 'Maximum number of results to return (default 10, max 50). Keep this small to avoid context window bloat. When using limit > 10, always specify the fields parameter.'}, 'cursor': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Pagination token for the next page of results. Pass the exact next_cursor string returned by the previous tool call. Cursors are query-scoped: they lock in the original search parameters and cannot be reused across different tools or different queries. If you need to change any search parameter, start a new search without a cursor.'}, 'fields': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'default': None}, 'sort_key': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': "Sort key for granule results. e.g., '-start_date' (newest first), 'start_date' (oldest first). CMR default is relevance score. For ongoing or near-real-time (NRT) missions where the user wants the most recent data, always use '-start_date' â\x80\x94 CMR's default relevance scoring may return historical data first if sort_key is not explicitly set."}, 'day_night_flag': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': "Filter granules by day/night acquisition flag. Values: 'DAY', 'NIGHT', 'UNSPECIFIED'."}, 'cloud_cover_max': {'anyOf': [{'type': 'number', 'maximum': 100, 'minimum': 0}, {'type': 'null'}], 'default': None, 'description': 'Maximum cloud cover percentage (0â\x80\x93100, inclusive). Use with cloud_cover_min to filter optical/visible imagery granules by cloud cover. For example, set cloud_cover_max=20 to find mostly clear scenes. Only applicable to collections that report cloud cover (e.g., Landsat, MODIS, etc). Omit for non-optical data (SAR, altimetry, etc.).'}, 'cloud_cover_min': {'anyOf': [{'type': 'number', 'maximum': 100, 'minimum': 0}, {'type': 'null'}], 'default': None, 'description': 'Minimum cloud cover percentage (0â\x80\x93100, inclusive). Use with cloud_cover_max to filter optical/visible imagery granules by cloud cover. Only applicable to collections that report cloud cover (e.g., Landsat, MODIS, etc). Omit for non-optical data (SAR, altimetry, etc.).'}, 'temporal_end_date': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'End of temporal filter in ISO 8601 format (e.g., 2024-01-31T23:59:59Z). Finds granules whose temporal extent overlaps this window. Set this whenever the user specifies a time period â\x80\x94 omitting it returns granules from the entire collection archive regardless of date.'}, 'temporal_start_date': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Start of temporal filter in ISO 8601 format (e.g., 2024-01-01T00:00:00Z). Finds granules whose temporal extent overlaps this window. Set this whenever the user specifies a time period â\x80\x94 omitting it returns granules from the entire collection archive regardless of date.'}, 'spatial_wkt_geometry': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Spatial filter as WKT geometry. Supported types: POLYGON((lon lat, ...)), POINT(lon lat), or LINESTRING(lon lat, ...).Finds granules with spatial extent intersecting this area. CMR returns any granule that touches this shape, so precise geometries are preferred to prevent false positives. Set this whenever the user specifies a geographic region â\x80\x94 omitting it returns granules from the entire globe regardless of location.'}, 'collection_concept_id': {'type': 'string', 'description': 'Parent collection concept ID (format: C<number>-<PROVIDER>, e.g., C2723758340-GES_DISC). Required to scope granule search.'}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'title': 'GetGranulesOutput', 'required': ['status'], 'properties': {'status': {'enum': ['success', 'no_results', 'error'], 'type': 'string', 'title': 'SearchStatus', 'description': 'Status of the tool execution'}, 'granules': {'type': 'array', 'items': {'type': 'object', 'title': 'GranuleResult', 'required': ['concept_id', 'granule_ur'], 'properties': {'size_mb': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Size Mb', 'default': None, 'description': 'Size of the data granule in MB'}, 'time_end': {'anyOf': [{'type': 'string', 'format': 'date-time'}, {'type': 'null'}], 'title': 'Time End', 'default': None, 'description': 'Granule temporal end'}, 'native_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Native Id', 'default': None, 'description': 'The native ID of the granule record'}, 'concept_id': {'type': 'string', 'title': 'Concept Id', 'description': 'CMR granule concept ID'}, 'granule_ur': {'type': 'string', 'title': 'Granule Ur', 'description': 'Granule UR'}, 'orbit_info': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}, 'title': 'Orbit Info', 'description': 'Orbit calculated spatial domains â\x80\x94 array of {orbit_number, equator_crossing_longitude, equator_crossing_date_time}'}, 'time_start': {'anyOf': [{'type': 'string', 'format': 'date-time'}, {'type': 'null'}], 'title': 'Time Start', 'default': None, 'description': 'Granule temporal start'}, 'access_urls': {'type': 'array', 'items': {'type': 'string'}, 'title': 'Access Urls', 'description': 'Actionable data access URLs (Note: Access requires Earthdata Login authentication)'}, 'cloud_cover': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Cloud Cover', 'default': None, 'description': 'Cloud cover percentage'}, 'data_format': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Data Format', 'default': None, 'description': 'File format (e.g., NetCDF-4, GeoTIFF)'}, 'provider_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Provider Id', 'default': None, 'description': 'The provider ID of the granule'}, 'revision_id': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Revision Id', 'default': None, 'description': 'The revision ID of the granule metadata'}, 'bounding_box': {'anyOf': [{'type': 'array', 'items': {'type': 'number'}}, {'type': 'null'}], 'title': 'Bounding Box', 'default': None, 'description': '[West, South, East, North] Minimum Bounding Rectangle (MBR). Note: For swath data or irregular polygons, this bounding box fully encloses the data but may contain empty space at the corners.'}, 'day_night_flag': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Day Night Flag', 'default': None, 'description': 'DAY, NIGHT, BOTH, or UNSPECIFIED'}, 'production_date': {'anyOf': [{'type': 'string', 'format': 'date-time'}, {'type': 'null'}], 'title': 'Production Date', 'default': None, 'description': 'Date the granule was generated (ProductionDateTime)'}, 'producer_granule_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Producer Granule Id', 'default': None, 'description': 'Producer granule ID'}, 'additional_attributes': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}, 'title': 'Additional Attributes', 'description': 'Provider-specific attributes (e.g., tile coords, quality flags) â\x80\x94 array of {name, values[]}'}, 'collection_concept_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Collection Concept Id', 'default': None, 'description': 'Parent collection concept ID'}}, 'description': 'Minimal granule result for direct CMR-backed retrieval.'}, 'title': 'Granules', 'description': 'Normalized granule results mapped from UMM-G'}, 'total_hits': {'type': 'integer', 'title': 'Total Hits', 'default': 0, 'description': 'Total number of matching items'}, 'next_cursor': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Next Cursor', 'default': None, 'description': 'Pagination token for the next page of results'}, 'error_message': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Error Message', 'default': None, 'description': 'Error details when status is error'}}, 'description': 'Output model for get_granules.'}
Esquema de entrada
{'type': 'object', 'required': ['query'], 'properties': {'limit': {'type': 'integer', 'default': 10, 'description': 'Maximum number of results to return (default 10, max 50). Keep this small to avoid context window bloat. When using limit > 10, always specify the fields parameter.'}, 'query': {'type': 'string'}, 'cursor': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Pagination token for the next page of results. Pass the exact next_cursor string returned by the previous tool call. Cursors are query-scoped: they lock in the original search parameters and cannot be reused across different tools or different queries. If you need to change any search parameter, start a new search without a cursor.'}, 'fields': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'default': None}, 'scheme': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'title': 'GetKeywordsOutput', 'required': ['status'], 'properties': {'status': {'enum': ['success', 'no_results', 'error'], 'type': 'string', 'title': 'SearchStatus', 'description': 'Status of the tool execution'}, 'keywords': {'type': 'array', 'items': {'type': 'object', 'title': 'KeywordResult', 'required': ['uuid', 'prefLabel', 'scheme'], 'properties': {'uuid': {'type': 'string', 'title': 'Uuid', 'description': 'The unique UUID of the KMS concept'}, 'scheme': {'type': 'object', 'title': 'Scheme', 'description': 'The scheme the concept belongs to', 'additionalProperties': {'type': 'string'}}, 'prefLabel': {'type': 'string', 'title': 'Preflabel', 'description': 'The preferred label of the KMS concept'}, 'definition': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Definition', 'default': None, 'description': 'The primary definition of the concept, if available'}}, 'description': 'A single matching KMS keyword result.'}, 'title': 'Keywords', 'description': 'List of matched KMS terms'}, 'total_hits': {'type': 'integer', 'title': 'Total Hits', 'default': 0, 'description': 'Total number of matching items'}, 'next_cursor': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Next Cursor', 'default': None, 'description': 'Pagination token for the next page; None when no more results'}, 'error_message': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Error Message', 'default': None, 'description': 'Error details when status is error'}}, 'description': 'Output model for get_keywords.'}
Esquema de entrada
{'type': 'object', 'properties': {'type': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'limit': {'type': 'integer', 'default': 10, 'description': 'Maximum number of results to return (default 10, max 50). Keep this small to avoid context window bloat. When using limit > 10, always specify the fields parameter.'}, 'cursor': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Pagination token for the next page of results. Pass the exact next_cursor string returned by the previous tool call. Cursors are query-scoped: they lock in the original search parameters and cannot be reused across different tools or different queries. If you need to change any search parameter, start a new search without a cursor.'}, 'fields': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'default': None}, 'keyword': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'collection_concept_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'title': 'GetServicesOutput', 'required': ['status'], 'properties': {'status': {'enum': ['success', 'no_results', 'error'], 'type': 'string', 'title': 'SearchStatus', 'description': 'Status of the tool execution'}, 'services': {'type': 'array', 'items': {'type': 'object', 'title': 'ServiceResult', 'required': ['concept_id'], 'properties': {'url': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'title': 'Url', 'default': None, 'description': 'Primary endpoint URL information'}, 'name': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Name', 'default': None, 'description': 'The name of the service'}, 'type': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Type', 'default': None, 'description': 'The type of the service'}, 'version': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Version', 'default': None, 'description': 'The edition or version of the service'}, 'long_name': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Long Name', 'default': None, 'description': 'The long name of the service'}, 'native_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Native Id', 'default': None, 'description': 'The native ID of the service record'}, 'concept_id': {'type': 'string', 'title': 'Concept Id', 'description': 'CMR service concept ID'}, 'description': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Description', 'default': None, 'description': 'A brief description of the service'}, 'provider_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Provider Id', 'default': None, 'description': 'The provider ID of the service'}, 'revision_id': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Revision Id', 'default': None, 'description': 'The revision ID of the service metadata'}, 'related_urls': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, {'type': 'null'}], 'title': 'Related Urls', 'default': None, 'description': 'Documentation, guides, or other related links'}, 'service_options': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'title': 'Service Options', 'default': None, 'description': 'Subset types, supported projections, output formats'}, 'use_constraints': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'string'}, {'type': 'null'}], 'title': 'Use Constraints', 'default': None, 'description': 'Legal restrictions or usage limits'}, 'service_keywords': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, {'type': 'null'}], 'title': 'Service Keywords', 'default': None, 'description': 'Controlled vocabulary for service capability'}, 'access_constraints': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'string'}, {'type': 'null'}], 'title': 'Access Constraints', 'default': None, 'description': 'Authentication or authorization requirements'}, 'operation_metadata': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, {'type': 'null'}], 'title': 'Operation Metadata', 'default': None, 'description': 'Operation names and distributed computing platform'}, 'service_organizations': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, {'type': 'null'}], 'title': 'Service Organizations', 'default': None, 'description': 'Organizations that run the service endpoint'}}, 'description': 'Minimal service result for direct CMR-backed retrieval.'}, 'title': 'Services', 'description': 'Normalized service results mapped from UMM-S'}, 'total_hits': {'type': 'integer', 'title': 'Total Hits', 'default': 0, 'description': 'Total number of matching items'}, 'next_cursor': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Next Cursor', 'default': None, 'description': 'Pagination token for the next page'}, 'error_message': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Error Message', 'default': None, 'description': 'Error details when status is error'}}, 'description': 'Output model for get_services.'}
Esquema de entrada
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'default': 10, 'description': 'Maximum number of results to return (default 10, max 50). Keep this small to avoid context window bloat. When using limit > 10, always specify the fields parameter.'}, 'cursor': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Pagination token for the next page of results. Pass the exact next_cursor string returned by the previous tool call. Cursors are query-scoped: they lock in the original search parameters and cannot be reused across different tools or different queries. If you need to change any search parameter, start a new search without a cursor.'}, 'fields': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'default': None}, 'keyword': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'collection_concept_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'title': 'GetToolsOutput', 'required': ['status'], 'properties': {'tools': {'type': 'array', 'items': {'type': 'object', 'title': 'ToolResult', 'required': ['concept_id'], 'properties': {'doi': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Doi', 'default': None, 'description': 'Digital Object Identifier of the tool'}, 'url': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'title': 'Url', 'default': None, 'description': 'Primary URL for accessing the tool'}, 'name': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Name', 'default': None, 'description': 'The name of the tool'}, 'type': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Type', 'default': None, 'description': 'The type of the tool (e.g., Downloadable Tool, Web User Interface, Web Portal, Model)'}, 'quality': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'title': 'Quality', 'default': None, 'description': 'Quality information about the tool'}, 'version': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Version', 'default': None, 'description': 'The edition or version of the tool'}, 'long_name': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Long Name', 'default': None, 'description': 'The long name of the tool'}, 'native_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Native Id', 'default': None, 'description': 'The native ID of the tool record'}, 'concept_id': {'type': 'string', 'title': 'Concept Id', 'description': 'CMR tool concept ID'}, 'description': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Description', 'default': None, 'description': 'A brief description of the tool'}, 'provider_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Provider Id', 'default': None, 'description': 'The provider ID of the tool'}, 'revision_id': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Revision Id', 'default': None, 'description': 'The revision ID of the tool metadata'}, 'related_urls': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, {'type': 'null'}], 'title': 'Related Urls', 'default': None, 'description': 'Documentation, guides, or other related links'}, 'organizations': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, {'type': 'null'}], 'title': 'Organizations', 'default': None, 'description': 'Organizations responsible for the tool'}, 'tool_keywords': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, {'type': 'null'}], 'title': 'Tool Keywords', 'default': None, 'description': 'Earth science keywords representative of the tool'}, 'use_constraints': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'title': 'Use Constraints', 'default': None, 'description': 'Restrictions or limitations on using the tool'}, 'potential_action': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'title': 'Potential Action', 'default': None, 'description': 'Smart handoff definition for parameterized deep links'}, 'access_constraints': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Access Constraints', 'default': None, 'description': 'Constraints for accessing the tool'}, 'supported_browsers': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, {'type': 'null'}], 'title': 'Supported Browsers', 'default': None, 'description': 'Browsers and versions supported by the tool'}, 'supported_input_formats': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'title': 'Supported Input Formats', 'default': None, 'description': 'List of input format names supported by the tool'}, 'supported_output_formats': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'title': 'Supported Output Formats', 'default': None, 'description': 'List of output format names supported by the tool'}, 'supported_operating_systems': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, {'type': 'null'}], 'title': 'Supported Operating Systems', 'default': None, 'description': 'Operating systems and versions supported by the tool'}, 'supported_software_languages': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, {'type': 'null'}], 'title': 'Supported Software Languages', 'default': None, 'description': 'Programming languages and versions supported by the tool'}}, 'description': 'Normalized tool result for direct CMR-backed retrieval.'}, 'title': 'Tools', 'description': 'Normalized tool results mapped from UMM-T'}, 'status': {'enum': ['success', 'no_results', 'error'], 'type': 'string', 'title': 'SearchStatus', 'description': 'Status of the tool execution'}, 'total_hits': {'type': 'integer', 'title': 'Total Hits', 'default': 0, 'description': 'Total number of matching items'}, 'next_cursor': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Next Cursor', 'default': None, 'description': 'Pagination token for the next page; None when no more results'}, 'error_message': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Error Message', 'default': None, 'description': 'Error details when status is error'}}, 'description': 'Output model for get_tools.'}
Esquema de entrada
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'default': 10, 'description': 'Maximum number of results to return (default 10, max 50). Keep this small to avoid context window bloat. When using limit > 10, always specify the fields parameter.'}, 'cursor': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Pagination token for the next page of results. Pass the exact next_cursor string returned by the previous tool call. Cursors are query-scoped: they lock in the original search parameters and cannot be reused across different tools or different queries. If you need to change any search parameter, start a new search without a cursor.'}, 'fields': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'default': None}, 'keyword': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'collection_concept_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'title': 'GetVariablesOutput', 'required': ['status'], 'properties': {'status': {'enum': ['success', 'no_results', 'error'], 'type': 'string', 'title': 'SearchStatus', 'description': 'Status of the tool execution'}, 'variables': {'type': 'array', 'items': {'type': 'object', 'title': 'VariableResult', 'required': ['concept_id'], 'properties': {'name': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Name', 'default': None, 'description': 'The short name of the variable'}, 'sets': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, {'type': 'null'}], 'title': 'Sets', 'default': None, 'description': 'Logical groupings for the variable'}, 'scale': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Scale', 'default': None, 'description': 'The scale factor for the variable data'}, 'units': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Units', 'default': None, 'description': 'The units of the variable'}, 'offset': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Offset', 'default': None, 'description': 'The offset for the variable data'}, 'data_type': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Data Type', 'default': None, 'description': 'The data type of the variable'}, 'long_name': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Long Name', 'default': None, 'description': 'The long name of the variable'}, 'concept_id': {'type': 'string', 'title': 'Concept Id', 'description': 'CMR variable concept ID'}, 'definition': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Definition', 'default': None, 'description': 'The definition of the variable'}, 'dimensions': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, {'type': 'null'}], 'title': 'Dimensions', 'default': None, 'description': 'Dimensions associated with the variable'}, 'fill_values': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, {'type': 'null'}], 'title': 'Fill Values', 'default': None, 'description': 'Fill values used for missing or invalid data'}, 'related_urls': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, {'type': 'null'}], 'title': 'Related Urls', 'default': None, 'description': 'URLs specific to the variable'}, 'valid_ranges': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, {'type': 'null'}], 'title': 'Valid Ranges', 'default': None, 'description': 'Valid data ranges for the variable'}, 'standard_name': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Standard Name', 'default': None, 'description': 'The CF Standard Name of the variable'}, 'variable_type': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Variable Type', 'default': None, 'description': 'Type of variable (e.g., SCIENCE_VARIABLE, COORDINATE)'}, 'science_keywords': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, {'type': 'null'}], 'title': 'Science Keywords', 'default': None, 'description': 'GCMD Science Keywords hierarchy'}, 'variable_sub_type': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Variable Sub Type', 'default': None, 'description': 'Sub-type of variable'}, 'sampling_identifiers': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, {'type': 'null'}], 'title': 'Sampling Identifiers', 'default': None, 'description': 'Sampling method context'}, 'measurement_identifiers': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, {'type': 'null'}], 'title': 'Measurement Identifiers', 'default': None, 'description': 'Measurement context and provenance'}}, 'description': 'Normalized variable result for direct CMR-backed retrieval.'}, 'title': 'Variables', 'description': 'Normalized variable results mapped from UMM-V'}, 'total_hits': {'type': 'integer', 'title': 'Total Hits', 'default': 0, 'description': 'Total number of matching items'}, 'next_cursor': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Next Cursor', 'default': None, 'description': 'Pagination token for the next page; None when no more results'}, 'error_message': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Error Message', 'default': None, 'description': 'Error details when status is error'}}, 'description': 'Output model for get_variables.'}
Cambios recientes en herramientas
Servidores MCP similares
osint
Provides source-cited US data and schemas for power systems, AI infrastructure, semiconductor production and trade, robotics, and…
Nih Reporter
Searches and analyzes NIH-funded research projects, awards, publications, funding trends, expirations, investigators, organizatio…
Pangaea
Provides access to PANGAEA earth and environmental science datasets, including dataset metadata, discovery, aggregation, and rece…
Mgnify
Searches EMBL-EBI MGnify metagenomics studies, biome classifications, microbial genome catalogues, and study-level metadata.
Dryad
Fetches metadata and download links for scientific datasets hosted by the Dryad data repository.
Expression Atlas
Provides access to EBI Expression Atlas experiments and a broad Pipeworx router for structured research, financial, regulatory, m…
STRING Database MCP Server
Queries STRING biological data for protein identifiers, interactions, networks, functional enrichment, annotations, homology, and…
gbif-biodiversity-mcp-server
Searches and analyzes GBIF biodiversity data, including species taxonomy, occurrence records, datasets, publishers, and geographi…