{
  "name": "open-signals MCP server",
  "transport": "streamable HTTP, JSON-RPC 2.0, stateless, no auth",
  "protocolVersion": "2025-06-18",
  "tools": [
    {
      "name": "search_sources",
      "description": "Search the catalogue of public data sources (weather, water, hazards, flights, ships, energy, filings, trade, ...). Each entry gives the API, coverage, cadence, auth needed and licence. Use it to find where a kind of data comes from before writing a fetcher."
    },
    {
      "name": "get_source",
      "description": "One catalogue entry in full."
    },
    {
      "name": "list_hubs",
      "description": "Projects and catalogues that collect sources (God's Eye View, World Monitor, the MCP Registry, Source Cooperative, ...), with how each relates to this one."
    },
    {
      "name": "list_places",
      "description": "Named places the fetchers read for, with their upstream ids (CO-OPS station, USGS gauge, eBird region) and tags."
    },
    {
      "name": "get_readings",
      "description": "Fetch current readings from one source, each with value, unit, a one-line summary, place and provenance (source, URL, fetch time, licence). Sources this server will not republish (non-commercial, restricted or unreviewed licence) answer with an error naming the licence."
    },
    {
      "name": "list_datasets",
      "description": "Static public datasets this server holds as GeoJSON (wildfire burn perimeters, public-land share by county, federal campgrounds, fire-weather stations), with source, licence, feature count and parts (one per state, or \"all\")."
    },
    {
      "name": "get_dataset_part",
      "description": "The URL of one part of a dataset as GeoJSON, plus its description. Fetch the URL for the features; parts can be several megabytes."
    },
    {
      "name": "list_layers",
      "description": "Map layers this server can draw as GeoJSON, with unit, source, licence, whether it is available here, and how to read it."
    },
    {
      "name": "get_layer",
      "description": "One map layer as a GeoJSON FeatureCollection: one point per place with the reading on the date (else the latest observed before it, never a guess), or one point per event for event layers."
    }
  ],
  "resources": [
    "open-signals://catalog/sources",
    "open-signals://catalog/hubs",
    "open-signals://catalog/places",
    "open-signals://catalog/topics"
  ]
}