AQUAVIEW MCP Server - Search and access global oceanographic and environmental d

Tags

registry.modelcontextprotocol.io

Configuration

{
  "mcpServers": {
    "aquaview-mcp": {
      "url": "https://mcp.aquaview.org/mcp",
      "type": "http"
    }
  }
}

Available Tools (4)

search_datasets

Search the AQUAVIEW catalog — a comprehensive collection of 268K+ global oceanographic, atmospheric, and marine datasets from 15 sources (NOAA, NDBC, IOOS, WOD, CoastWatch, etc.), intended for scientific research, data analysis, and environmental monitoring. You must provide at least one of: q, bbox, datetime, collections, filter, or token. Hint: When the user asks for a region, prefer the 'bbox' parameter over including region name in 'q'. Use the geo_hints resource for common bounding boxes. Args: q: Free-text search across title, description, and keywords (e.g., "sea surface temperature"). Case-insensitive, OR logic across terms. bbox: Bounding box as "west,south,east,north" (e.g., "-98,24,-80,31" for Gulf of Mexico). datetime: Temporal filter. Single datetime, range ("2020-01-01T00:00:00Z/2024-12-31T23:59:59Z"), or open-ended ("../2024-01-01T00:00:00Z" or "2020-01-01T00:00:00Z/.."). collections: Comma-separated collection IDs to search within (e.g., "NOAA,NDBC,WOD"). Use list_collections to see available IDs. filter: CQL2-JSON filter as a JSON string for advanced property filtering. Example: '{"op": "=", "args": [{"property": "aquaview:institution"}, "NOAA/NCEI"]}'. Supports operators: =, <>, <, >, <=, >=, like, between, in, and, or, not. sortby: Sort specification as "+field,-field" (e.g., "+properties.datetime,-id"). + = ascending, - = descending. limit: Number of results to return, 1-100. Defaults to 10. token: Pagination token from a previous response's 'next_token' field. Pass this to get the next page of results. fields: Comma-separated list of fields to include in results (e.g., "id,geometry,properties.title"). Reduces response size. output_format: "toon" (default, Token-Oriented Object Notation, 30-60% fewer tokens) or "json". Returns: Search results with: total (matched count), returned (this page count), next_token (for pagination), and items (array of STAC features with geometry, properties, and assets/download links).

Input Schema
{
  "type": "object",
  "properties": {
    "q": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "bbox": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "limit": {
      "type": "integer",
      "default": 10
    },
    "token": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "fields": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "filter": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "sortby": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "datetime": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "collections": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "output_format": {
      "enum": [
        "json",
        "toon"
      ],
      "type": "string",
      "default": "toon"
    }
  },
  "additionalProperties": false
}

get_item

Fetch a single AQUAVIEW dataset item with full details, properties, and download links (assets). STAC items embed assets inline — each asset includes an href (download URL) and media type, so there is no need for a separate "files" call. Args: collection: The collection ID the item belongs to (e.g., "NOAA", "NDBC", "WOD"). Available from search results or list_collections. item_id: The unique item identifier (e.g., "wod_xbt_ZZ144579"). Available from search results. output_format: "toon" (default) or "json". Returns: Full STAC item with geometry, properties (title, description, datetime, institution, variables, etc.), and assets (download links with media types).

Input Schema
{
  "type": "object",
  "required": [
    "collection",
    "item_id"
  ],
  "properties": {
    "item_id": {
      "type": "string"
    },
    "collection": {
      "type": "string"
    },
    "output_format": {
      "enum": [
        "json",
        "toon"
      ],
      "type": "string",
      "default": "toon"
    }
  },
  "additionalProperties": false
}

list_collections

List all available AQUAVIEW data collections (sources). Returns a summary of each collection with ID, title, description, spatial/temporal extent, and keywords. Use collection IDs to filter searches. Args: output_format: "toon" (default) or "json". Returns: List of collections with count.

Input Schema
{
  "type": "object",
  "properties": {
    "output_format": {
      "enum": [
        "json",
        "toon"
      ],
      "type": "string",
      "default": "toon"
    }
  },
  "additionalProperties": false
}

aggregate

Run aggregation queries on the AQUAVIEW catalog — get counts, spatial distributions, temporal distributions, and per-collection breakdowns without fetching individual items. Args: aggregations: Comma-separated aggregation types (required). Valid types: total_count, datetime_max, datetime_min, datetime_frequency, collection_frequency, geometry_geohash_grid_frequency, geometry_geotile_grid_frequency. collections: Comma-separated collection IDs to scope the aggregation (e.g., "NOAA,NDBC"). bbox: Bounding box as "west,south,east,north". datetime: Temporal filter (same format as search_datasets). q: Free-text search to scope the aggregation. Automatically converted to CQL2 LIKE filter on title/description. filter: CQL2-JSON filter object for advanced filtering (e.g., {"op": "=", "args": [{"property": "aquaview:institution"}, "NOAA"]}). Note: aggregate POST requires CQL2-JSON, not CQL2-text. precision: Grid precision for geo aggregations (1-12, higher = finer grid). Applied to whichever geo aggregation type is requested. datetime_frequency_interval: Interval for datetime_frequency (e.g., "month", "year", "day"). output_format: "toon" (default) or "json". Returns: Aggregation results. Each requested aggregation returns its name, data_type, and value/buckets.

Input Schema
{
  "type": "object",
  "required": [
    "aggregations"
  ],
  "properties": {
    "q": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "bbox": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "filter": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "datetime": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "precision": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "collections": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "aggregations": {
      "type": "string"
    },
    "output_format": {
      "enum": [
        "json",
        "toon"
      ],
      "type": "string",
      "default": "toon"
    },
    "datetime_frequency_interval": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    }
  },
  "additionalProperties": false
}