Zovo Weather History
Past weather & daily logs
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": {
"weather-history": {
"url": "https://weather-history.zovo.one/mcp"
}
}
}Remote endpoints
https://weather-history.zovo.one/mcpstreamable-httpWhat it can do
Tool inventory
Tools (2)
🟢find_weather_stations(place, start_date, end_date)
Use this when the user wants weather history, historical weather data, or past weather by zip code and needs reporting stations near a US city, ZIP or address. Returns date-specific coverage and distance for up to ten qualifying stations plus three with insufficient records. Dates default to the thirty days ending five days before today UTC; up to 366 days. Do not use for forecasts, current conditions or places outside the US.
Input Schema
{
"type": "object",
"properties": {
"place": {
"type": "string",
"minLength": 2,
"maxLength": 200,
"description": "US city and state, ZIP or street address, 2 to 200 characters; e.g. Denver, CO. For logs a US station ID such as USW00094728 also works."
},
"start_date": {
"type": "string",
"maxLength": 100,
"description": "Calendar date YYYY-MM-DD, e.g. 2026-09-01."
},
"end_date": {
"type": "string",
"maxLength": 100,
"description": "Calendar date YYYY-MM-DD, e.g. 2026-09-01."
}
},
"required": [
"place"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}Output Schema
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "stations"
},
"place": {
"type": "object",
"properties": {
"label": {
"type": "string"
},
"matched_by": {
"type": "string"
},
"lat": {
"type": "number"
},
"lon": {
"type": "number"
}
},
"required": [
"label",
"matched_by",
"lat",
"lon"
],
"additionalProperties": false
},
"start_date": {
"type": "string"
},
"end_date": {
"type": "string"
},
"stations": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"lat": {
"type": [
"number",
"null"
]
},
"lon": {
"type": [
"number",
"null"
]
},
"distance_mi": {
"type": [
"number",
"null"
]
},
"coverage": {
"type": "number"
},
"coverage_note": {
"type": "string"
},
"reports": {
"type": "array",
"items": {
"type": "string"
}
},
"last_reported": {
"type": "string"
},
"elevation_ft": {
"type": [
"number",
"null"
]
}
},
"required": [
"id",
"name",
"distance_mi"
],
"additionalProperties": false
}
},
"source": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"url": {
"type": "string"
},
"retrieved_utc": {
"type": "string"
}
},
"required": [
"name",
"url",
"retrieved_utc"
],
"additionalProperties": false
}
},
"required": [
"kind",
"place",
"start_date",
"end_date",
"stations",
"source"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢generate_weather_log(sites, start_date, end_date, rain_in, snow_in, ...)
Use this when the user wants weather history, historical weather data, historical weather by date and location, or a daily weather data download. Reads station observations and generates Excel and CSV weather logs with rain days for construction delay and thresholds. US only; up to five sites and 366 days, from 1900 through today UTC. Files expire in about an hour. Do not use for forecasts, current conditions or certified weather reports.
Input Schema
{
"type": "object",
"properties": {
"sites": {
"type": "array",
"items": {
"anyOf": [
{
"type": "string",
"minLength": 2,
"maxLength": 200,
"description": "US city and state, ZIP or street address, 2 to 200 characters; e.g. Denver, CO. For logs a US station ID such as USW00094728 also works."
},
{
"type": "string",
"minLength": 0,
"maxLength": 0
}
]
},
"description": "Up to five US places, ZIPs, addresses or station IDs after removing blanks and duplicates; e.g. [\"Denver, CO\",\"10024\"]."
},
"start_date": {
"type": "string",
"maxLength": 100,
"description": "Calendar date YYYY-MM-DD, e.g. 2026-09-01."
},
"end_date": {
"type": "string",
"maxLength": 100,
"description": "Calendar date YYYY-MM-DD, e.g. 2026-09-01."
},
"rain_in": {
"default": 0.1,
"description": "Rain-day minimum in inches, inclusive; e.g. 0.10.",
"type": "number",
"minimum": 0.01,
"maximum": 10
},
"snow_in": {
"default": 1,
"description": "Snow-day minimum in inches, inclusive; e.g. 1.0.",
"type": "number",
"minimum": 0.1,
"maximum": 60
},
"heat_f": {
"default": 90,
"description": "Heat-day minimum degrees F, inclusive; e.g. 90.",
"type": "number",
"minimum": 50,
"maximum": 130
},
"freeze_f": {
"default": 32,
"description": "Freeze-day maximum degrees F, inclusive; e.g. 32.",
"type": "number",
"minimum": -40,
"maximum": 50
},
"gust_mph": {
"default": 40,
"description": "Peak gust minimum mph, inclusive; e.g. 40. Average wind is not a substitute.",
"type": "number",
"minimum": 10,
"maximum": 150
},
"weather_day_rule": {
"default": [
"rain",
"snow"
],
"description": "Weather day is any selected threshold, e.g. [\"rain\",\"snow\"].",
"minItems": 1,
"maxItems": 5,
"type": "array",
"items": {
"type": "string",
"enum": [
"rain",
"snow",
"heat",
"freeze",
"wind"
]
}
}
},
"required": [
"sites",
"start_date",
"end_date"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}Output Schema
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "log"
},
"start_date": {
"type": "string"
},
"end_date": {
"type": "string"
},
"sites": {
"type": "array",
"items": {
"type": "object",
"properties": {
"site": {
"type": "string"
},
"error": {
"type": "string"
},
"station": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"lat": {
"type": [
"number",
"null"
]
},
"lon": {
"type": [
"number",
"null"
]
},
"distance_mi": {
"type": [
"number",
"null"
]
},
"coverage": {
"type": "number"
},
"coverage_note": {
"type": "string"
},
"reports": {
"type": "array",
"items": {
"type": "string"
}
},
"last_reported": {
"type": "string"
},
"elevation_ft": {
"type": [
"number",
"null"
]
}
},
"required": [
"id",
"name",
"distance_mi"
],
"additionalProperties": false
},
"summary": {
"type": "object",
"properties": {
"statuses": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "number"
}
},
"total_precip_in": {
"type": "string"
},
"precip_days_with_value": {
"type": "number"
},
"total_snow_in": {
"type": "string"
},
"snow_days_with_value": {
"type": "number"
},
"days_missing": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "number"
}
},
"high": {
"anyOf": [
{
"type": "object",
"properties": {
"value": {
"type": "number"
},
"date": {
"type": "string"
}
},
"required": [
"value",
"date"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"low": {
"anyOf": [
{
"type": "object",
"properties": {
"value": {
"type": "number"
},
"date": {
"type": "string"
}
},
"required": [
"value",
"date"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"wettest": {
"anyOf": [
{
"type": "object",
"properties": {
"value": {
"type": "number"
},
"date": {
"type": "string"
}
},
"required": [
"value",
"date"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"counts": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "number"
}
}
},
"required": [
"statuses",
"total_precip_in",
"precip_days_with_value",
"total_snow_in",
"snow_days_with_value",
"days_missing",
"high",
"low",
"wettest",
"counts"
],
"additionalProperties": false
}
},
"required": [
"site"
],
"additionalProperties": false
}
},
"preview": {
"type": "array",
"items": {
"type": "object",
"properties": {
"date": {
"type": "string"
},
"max_f": {
"type": [
"number",
"null"
]
},
"min_f": {
"type": [
"number",
"null"
]
},
"precip_in": {
"type": [
"string",
"number",
"null"
]
},
"snow_in": {
"type": [
"string",
"number",
"null"
]
},
"status": {
"type": "string"
},
"flags": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"date",
"max_f",
"min_f",
"precip_in",
"snow_in",
"status",
"flags"
],
"additionalProperties": false
}
},
"downloads": {
"type": "object",
"properties": {
"xlsx": {
"type": "string"
},
"csv": {
"type": "string"
}
},
"required": [
"xlsx",
"csv"
],
"additionalProperties": false
},
"duplicates_removed": {
"type": "number"
},
"source": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"url": {
"type": "string"
},
"retrieved_utc": {
"type": "string"
}
},
"required": [
"name",
"url",
"retrieved_utc"
],
"additionalProperties": false
}
},
"required": [
"kind",
"start_date",
"end_date",
"sites",
"preview",
"downloads",
"duplicates_removed",
"source"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}Community
Evidence