open-signals
Public hazard, water, weather and EPA data with source, age and licence on every reading.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"open-signals": {
"url": "https://open-signals.civops.io/mcp"
}
}
}Remote endpoints
https://open-signals.civops.io/mcpstreamable-httpWhat it can do
Tool inventory
Tools (9)
🟢search_sources(query, topic, license, fetchable)
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.
Input Schema
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Words matched against name, id, coverage, topics and licence note."
},
"topic": {
"type": "string",
"description": "One topic, e.g. weather, water, fires, flights, energy."
},
"license": {
"type": "string",
"enum": [
"public_domain",
"open",
"non_commercial",
"restricted",
"unknown"
]
},
"fetchable": {
"type": "boolean",
"description": "true: only sources this server can fetch now; false: only catalogued ones."
}
}
}🟢get_source(id)
One catalogue entry in full.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string"
}
},
"required": [
"id"
]
}🟢list_hubs
Projects and catalogues that collect sources (God's Eye View, World Monitor, the MCP Registry, Source Cooperative, ...), with how each relates to this one.
Input Schema
{
"type": "object",
"properties": {}
}🟢list_places(tag)
Named places the fetchers read for, with their upstream ids (CO-OPS station, USGS gauge, eBird region) and tags.
Input Schema
{
"type": "object",
"properties": {
"tag": {
"type": "string"
}
}
}🟢get_readings(source, place, tag, lat, lng, ...)
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.
Input Schema
{
"type": "object",
"properties": {
"source": {
"type": "string",
"description": "A source id with a fetcher (search_sources with fetchable=true)."
},
"place": {
"type": "string",
"description": "Comma-separated catalogue place ids (see list_places)."
},
"tag": {
"type": "string",
"description": "Catalogue places with this tag, e.g. waterfowl, ice-fishing."
},
"lat": {
"type": "number",
"description": "Ad-hoc point latitude (with lng). For weather and WSI."
},
"lng": {
"type": "number",
"description": "Ad-hoc point longitude (with lat)."
},
"coops": {
"type": "string",
"description": "NOAA CO-OPS station id(s), comma-separated, e.g. 9063085."
},
"usgs": {
"type": "string",
"description": "USGS monitoring location id(s), e.g. USGS-04193500."
},
"ebird": {
"type": "string",
"description": "eBird region code(s), e.g. US-OH-095."
},
"metric": {
"type": "string",
"description": "Only readings of this metric."
},
"since": {
"type": "string",
"description": "ISO date or datetime; only readings at or after it."
},
"forecast": {
"type": "boolean",
"description": "false drops modelled future values."
},
"window": {
"type": "string",
"description": "usgs-earthquakes only: hour | day | week."
},
"state": {
"type": "string",
"description": "epa-echo only: two-letter US state, default OH."
},
"bbox": {
"type": "string",
"description": "noaa-nwps only: xmin,ymin,xmax,ymax in degrees (≤400 sq deg); default the Great Lakes basin."
},
"elevated": {
"type": "boolean",
"description": "usgs-volcanoes only: true keeps volcanoes above normal."
},
"min": {
"type": "string",
"description": "usgs-earthquakes only: all | 1.0 | 2.5 | 4.5 | significant."
},
"limit": {
"type": "number",
"description": "1-1000, default 100."
}
},
"required": [
"source"
]
}🟢list_datasets
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").
Input Schema
{
"type": "object",
"properties": {}
}🟢get_dataset_part(id, part)
The URL of one part of a dataset as GeoJSON, plus its description. Fetch the URL for the features; parts can be several megabytes.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string"
},
"part": {
"type": "string",
"description": "Two-letter state, or \"all\" for single-part datasets."
}
},
"required": [
"id",
"part"
]
}🟢list_layers
Map layers this server can draw as GeoJSON, with unit, source, licence, whether it is available here, and how to read it.
Input Schema
{
"type": "object",
"properties": {}
}🟢get_layer(id, date, place, tag, lat, ...)
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.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"enum": [
"temperature",
"wind",
"pressure_change",
"snow_depth",
"wsi",
"water_level",
"river_flow",
"ice",
"sightings",
"volcanoes",
"flood_gauges",
"epa_facilities",
"recalls",
"contract_awards",
"wildlife",
"natural_events",
"world_bank",
"earthquakes_emsc",
"tropical_cyclones",
"power_plants",
"eu_industrial_production",
"fema_declarations",
"earthquakes",
"lock_traffic",
"border_crossings",
"toxic_releases",
"power_emissions",
"river_discharge",
"air_quality",
"volcanoes_world"
]
},
"date": {
"type": "string",
"description": "YYYY-MM-DD; default today (US Eastern)."
},
"place": {
"type": "string",
"description": "Comma-separated catalogue place ids (see list_places)."
},
"tag": {
"type": "string",
"description": "Catalogue places with this tag, e.g. waterfowl, ice-fishing."
},
"lat": {
"type": "number",
"description": "Ad-hoc point latitude (with lng). For weather and WSI."
},
"lng": {
"type": "number",
"description": "Ad-hoc point longitude (with lat)."
},
"coops": {
"type": "string",
"description": "NOAA CO-OPS station id(s), comma-separated, e.g. 9063085."
},
"usgs": {
"type": "string",
"description": "USGS monitoring location id(s), e.g. USGS-04193500."
},
"ebird": {
"type": "string",
"description": "eBird region code(s), e.g. US-OH-095."
},
"window": {
"type": "string"
},
"min": {
"type": "string"
},
"state": {
"type": "string"
},
"bbox": {
"type": "string"
},
"elevated": {
"type": "boolean"
},
"indicator": {
"type": "string"
},
"country": {
"type": "string",
"description": "power_plants: ISO alpha-3, e.g. DEU"
},
"fuel": {
"type": "string",
"description": "power_plants: coal, oil/gas, nuclear, hydropower, wind, utility-scale solar, geothermal or bioenergy"
},
"min_mw": {
"type": "number"
},
"status": {
"type": "string",
"description": "power_plants: operating | construction"
},
"erupted_since": {
"type": "number",
"description": "volcanoes_world: year, default 1900"
},
"continuing": {
"type": "boolean",
"description": "volcanoes_world: only eruptions in progress"
}
},
"required": [
"id"
]
}Community
Evidence