Weather — canonical payload contracts
Open-Meteo weather MCP: current, 16-day forecast, ERA5 history since 1940, air quality/pollen, marine (Adriatic / lakes). Place names via GeoNames. 1 credit per successful data call.
Service id: weather
Docs: https://mcp.glc-rag.hu/guide/weather
Markdown docs: https://mcp.glc-rag.hu/guide/weather.md
MCP resource: docs://weather/payload
POST https://mcp.glc-rag.hu/mcp. Values below are type slots from the live input schema (e.g. <string, required>), not example data. Fill them from the user task.
RPC result wrapper: result.structuredContent is the object in Output schema. result.isError mirrors structuredContent.is_error.
weather_status
Weather service health, cache stats, and Open-Meteo quota usage.
Required arguments: (none)
Request contract
{
"jsonrpc": "2.0",
"id": "<integer|string>",
"method": "tools/call",
"params": {
"name": "weather_status",
"arguments": {}
}
}
Input schema
{
"type": "object",
"properties": {},
"additionalProperties": false
}
Output schema (structuredContent on success)
{
"type": "object",
"properties": {
"ok": {
"type": "boolean"
},
"upstream_ok": {
"type": "boolean"
},
"quota_exhausted": {
"type": "boolean"
},
"cache": {
"type": "object"
},
"upstream_today": {
"type": "integer"
},
"daily_quota": {
"type": "integer"
},
"error": {
"type": "string"
}
},
"additionalProperties": true,
"required": [
"ok"
]
}
Error object
{
"type": "object",
"required": [
"error",
"is_error"
],
"properties": {
"error": {
"type": "string"
},
"is_error": {
"type": "boolean",
"const": true
}
},
"additionalProperties": true
}
weather_now — Current conditions
Current weather at a place (GeoNames resolve). Temperature, wind, precipitation, WMO text (hu+en). 1 credit.
place or geoname_id or lat+lon; GeoNames resolve, no LLM.
Required arguments: (none)
Request contract
{
"jsonrpc": "2.0",
"id": "<integer|string>",
"method": "tools/call",
"params": {
"name": "weather_now",
"arguments": {
"place": "<string, optional>",
"geoname_id": "<integer, optional>",
"latitude": "<number, optional>",
"longitude": "<number, optional>",
"country_code": "<string, optional>",
"language": "<string, optional, enum hu|en, default 'hu'>"
}
}
}
Input schema
{
"type": "object",
"properties": {
"place": {
"type": "string",
"description": "City, lake, IATA, or country name (GeoNames)"
},
"geoname_id": {
"type": "integer"
},
"latitude": {
"type": "number"
},
"longitude": {
"type": "number"
},
"country_code": {
"type": "string",
"description": "ISO2 filter for name resolve"
},
"language": {
"type": "string",
"enum": [
"hu",
"en"
],
"default": "hu",
"description": "Preferred weather_text language; both hu and en are always returned"
}
},
"additionalProperties": false
}
Output schema (structuredContent on success)
{
"type": "object",
"properties": {
"place": {
"type": "object"
},
"alternatives": {
"type": "array",
"items": {
"type": "object"
}
},
"attribution": {
"type": "string"
},
"error": {
"type": "string"
},
"is_error": {
"type": "boolean"
},
"suggestions": {
"type": "array",
"items": {
"type": "object"
}
},
"current": {
"type": "object"
}
},
"additionalProperties": true
}
Error object
{
"type": "object",
"required": [
"error",
"is_error"
],
"properties": {
"error": {
"type": "string"
},
"is_error": {
"type": "boolean",
"const": true
}
},
"additionalProperties": true
}
weather_forecast — Daily forecast
1–16 day forecast (default 7). Profiles add fields (travel/agro/solar/winter). Optional compact hourly (max 48). 1 credit.
days 1–16; profile default|travel|agro|solar|winter.
Required arguments: (none)
Request contract
{
"jsonrpc": "2.0",
"id": "<integer|string>",
"method": "tools/call",
"params": {
"name": "weather_forecast",
"arguments": {
"place": "<string, optional>",
"geoname_id": "<integer, optional>",
"latitude": "<number, optional>",
"longitude": "<number, optional>",
"country_code": "<string, optional>",
"language": "<string, optional, enum hu|en, default 'hu'>",
"days": "<integer, optional, default 7, minimum 1, maximum 16>",
"profile": "<string, optional, enum default|travel|agro|solar|winter, default 'default'>",
"include_hourly": "<boolean, optional, default False>"
}
}
}
Input schema
{
"type": "object",
"properties": {
"place": {
"type": "string",
"description": "City, lake, IATA, or country name (GeoNames)"
},
"geoname_id": {
"type": "integer"
},
"latitude": {
"type": "number"
},
"longitude": {
"type": "number"
},
"country_code": {
"type": "string",
"description": "ISO2 filter for name resolve"
},
"language": {
"type": "string",
"enum": [
"hu",
"en"
],
"default": "hu",
"description": "Preferred weather_text language; both hu and en are always returned"
},
"days": {
"type": "integer",
"minimum": 1,
"maximum": 16,
"default": 7
},
"profile": {
"type": "string",
"enum": [
"default",
"travel",
"agro",
"solar",
"winter"
],
"default": "default"
},
"include_hourly": {
"type": "boolean",
"default": false
}
},
"additionalProperties": false
}
Output schema (structuredContent on success)
{
"type": "object",
"properties": {
"place": {
"type": "object"
},
"alternatives": {
"type": "array",
"items": {
"type": "object"
}
},
"attribution": {
"type": "string"
},
"error": {
"type": "string"
},
"is_error": {
"type": "boolean"
},
"suggestions": {
"type": "array",
"items": {
"type": "object"
}
},
"daily": {
"type": "array",
"items": {
"type": "object"
}
},
"hourly": {
"type": "array"
}
},
"additionalProperties": true
}
Error object
{
"type": "object",
"required": [
"error",
"is_error"
],
"properties": {
"error": {
"type": "string"
},
"is_error": {
"type": "boolean",
"const": true
}
},
"additionalProperties": true
}
weather_hourly — Hourly forecast
Next 6–48 hours (default 24) of compact weather. 1 credit.
hours 6–48; compact hourly slice.
Required arguments: (none)
Request contract
{
"jsonrpc": "2.0",
"id": "<integer|string>",
"method": "tools/call",
"params": {
"name": "weather_hourly",
"arguments": {
"place": "<string, optional>",
"geoname_id": "<integer, optional>",
"latitude": "<number, optional>",
"longitude": "<number, optional>",
"country_code": "<string, optional>",
"language": "<string, optional, enum hu|en, default 'hu'>",
"hours": "<integer, optional, default 24, minimum 6, maximum 48>"
}
}
}
Input schema
{
"type": "object",
"properties": {
"place": {
"type": "string",
"description": "City, lake, IATA, or country name (GeoNames)"
},
"geoname_id": {
"type": "integer"
},
"latitude": {
"type": "number"
},
"longitude": {
"type": "number"
},
"country_code": {
"type": "string",
"description": "ISO2 filter for name resolve"
},
"language": {
"type": "string",
"enum": [
"hu",
"en"
],
"default": "hu",
"description": "Preferred weather_text language; both hu and en are always returned"
},
"hours": {
"type": "integer",
"minimum": 6,
"maximum": 48,
"default": 24
}
},
"additionalProperties": false
}
Output schema (structuredContent on success)
{
"type": "object",
"properties": {
"place": {
"type": "object"
},
"alternatives": {
"type": "array",
"items": {
"type": "object"
}
},
"attribution": {
"type": "string"
},
"error": {
"type": "string"
},
"is_error": {
"type": "boolean"
},
"suggestions": {
"type": "array",
"items": {
"type": "object"
}
},
"hourly": {
"type": "array",
"items": {
"type": "object"
}
}
},
"additionalProperties": true
}
Error object
{
"type": "object",
"required": [
"error",
"is_error"
],
"properties": {
"error": {
"type": "string"
},
"is_error": {
"type": "boolean",
"const": true
}
},
"additionalProperties": true
}
weather_history — ERA5 archive
Historical weather 1940–present. start_date+end_date, max 31 days. 1 credit.
ERA5; start_date+end_date max 31 days.
Required arguments: start_date, end_date
Request contract
{
"jsonrpc": "2.0",
"id": "<integer|string>",
"method": "tools/call",
"params": {
"name": "weather_history",
"arguments": {
"place": "<string, optional>",
"geoname_id": "<integer, optional>",
"latitude": "<number, optional>",
"longitude": "<number, optional>",
"country_code": "<string, optional>",
"language": "<string, optional, enum hu|en, default 'hu'>",
"start_date": "<string, required>",
"end_date": "<string, required>",
"hourly": "<boolean, optional, default False>"
}
}
}
Input schema
{
"type": "object",
"properties": {
"place": {
"type": "string",
"description": "City, lake, IATA, or country name (GeoNames)"
},
"geoname_id": {
"type": "integer"
},
"latitude": {
"type": "number"
},
"longitude": {
"type": "number"
},
"country_code": {
"type": "string",
"description": "ISO2 filter for name resolve"
},
"language": {
"type": "string",
"enum": [
"hu",
"en"
],
"default": "hu",
"description": "Preferred weather_text language; both hu and en are always returned"
},
"start_date": {
"type": "string",
"description": "YYYY-MM-DD"
},
"end_date": {
"type": "string",
"description": "YYYY-MM-DD"
},
"hourly": {
"type": "boolean",
"default": false
}
},
"required": [
"start_date",
"end_date"
],
"additionalProperties": false
}
Output schema (structuredContent on success)
{
"type": "object",
"properties": {
"place": {
"type": "object"
},
"alternatives": {
"type": "array",
"items": {
"type": "object"
}
},
"attribution": {
"type": "string"
},
"error": {
"type": "string"
},
"is_error": {
"type": "boolean"
},
"suggestions": {
"type": "array",
"items": {
"type": "object"
}
},
"daily": {
"type": "array"
},
"hourly": {
"type": "array"
}
},
"additionalProperties": true
}
Error object
{
"type": "object",
"required": [
"error",
"is_error"
],
"properties": {
"error": {
"type": "string"
},
"is_error": {
"type": "boolean",
"const": true
}
},
"additionalProperties": true
}
weather_air — Air quality and pollen
European/US AQI, PM2.5/PM10, O3, NO2, grass/birch/alder pollen, UV. 1 credit.
European/US AQI, PM, pollen, UV.
Required arguments: (none)
Request contract
{
"jsonrpc": "2.0",
"id": "<integer|string>",
"method": "tools/call",
"params": {
"name": "weather_air",
"arguments": {
"place": "<string, optional>",
"geoname_id": "<integer, optional>",
"latitude": "<number, optional>",
"longitude": "<number, optional>",
"country_code": "<string, optional>",
"forecast_days": "<integer, optional, default 5, minimum 1, maximum 7>"
}
}
}
Input schema
{
"type": "object",
"properties": {
"place": {
"type": "string",
"description": "City, lake, IATA, or country name (GeoNames)"
},
"geoname_id": {
"type": "integer"
},
"latitude": {
"type": "number"
},
"longitude": {
"type": "number"
},
"country_code": {
"type": "string",
"description": "ISO2 filter for name resolve"
},
"forecast_days": {
"type": "integer",
"minimum": 1,
"maximum": 7,
"default": 5
}
},
"additionalProperties": false
}
Output schema (structuredContent on success)
{
"type": "object",
"properties": {
"place": {
"type": "object"
},
"alternatives": {
"type": "array",
"items": {
"type": "object"
}
},
"attribution": {
"type": "string"
},
"error": {
"type": "string"
},
"is_error": {
"type": "boolean"
},
"suggestions": {
"type": "array",
"items": {
"type": "object"
}
},
"current": {
"type": "object"
},
"hourly": {
"type": "array"
}
},
"additionalProperties": true
}
Error object
{
"type": "object",
"required": [
"error",
"is_error"
],
"properties": {
"error": {
"type": "string"
},
"is_error": {
"type": "boolean",
"const": true
}
},
"additionalProperties": true
}
weather_marine — Waves and water
Marine/lake conditions. Seas (Adriatic): waves + SST. Lakes (Balaton): wind; waves/SST only if ocean grid ≤25 km. Inland cities without a nearby lake/coast error (no Adriatic for Budapest). 1 credit.
sea/lake via geo; lakes omit wave/SST if ocean grid >25 km.
Required arguments: (none)
Request contract
{
"jsonrpc": "2.0",
"id": "<integer|string>",
"method": "tools/call",
"params": {
"name": "weather_marine",
"arguments": {
"place": "<string, optional>",
"geoname_id": "<integer, optional>",
"latitude": "<number, optional>",
"longitude": "<number, optional>",
"country_code": "<string, optional>",
"days": "<integer, optional, default 3, minimum 1, maximum 7>",
"include_hourly": "<boolean, optional, default False>"
}
}
}
Input schema
{
"type": "object",
"properties": {
"place": {
"type": "string",
"description": "City, lake, IATA, or country name (GeoNames)"
},
"geoname_id": {
"type": "integer"
},
"latitude": {
"type": "number"
},
"longitude": {
"type": "number"
},
"country_code": {
"type": "string",
"description": "ISO2 filter for name resolve"
},
"days": {
"type": "integer",
"minimum": 1,
"maximum": 7,
"default": 3
},
"include_hourly": {
"type": "boolean",
"default": false
}
},
"additionalProperties": false
}
Output schema (structuredContent on success)
{
"type": "object",
"properties": {
"place": {
"type": "object"
},
"alternatives": {
"type": "array",
"items": {
"type": "object"
}
},
"attribution": {
"type": "string"
},
"error": {
"type": "string"
},
"is_error": {
"type": "boolean"
},
"suggestions": {
"type": "array",
"items": {
"type": "object"
}
},
"water": {
"type": "object"
},
"current": {
"type": "object"
},
"daily": {
"type": "array"
},
"hourly": {
"type": "array"
},
"wave_available": {
"type": "boolean"
},
"water_temp_available": {
"type": "boolean"
},
"model_cell": {
"type": "object"
},
"disclaimer": {
"type": "string"
}
},
"additionalProperties": true
}
Error object
{
"type": "object",
"required": [
"error",
"is_error"
],
"properties": {
"error": {
"type": "string"
},
"is_error": {
"type": "boolean",
"const": true
}
},
"additionalProperties": true
}
weather_compare — Compare places or dates
Compare 2–5 places (forecast) OR two dates at one place (history). Still 1 credit.
2–5 places OR 2 dates; still 1 credit.
Required arguments: (none)
Request contract
{
"jsonrpc": "2.0",
"id": "<integer|string>",
"method": "tools/call",
"params": {
"name": "weather_compare",
"arguments": {
"place": "<string, optional>",
"geoname_id": "<integer, optional>",
"latitude": "<number, optional>",
"longitude": "<number, optional>",
"country_code": "<string, optional>",
"places": [
"<string, optional>"
],
"dates": [
"<string, optional>"
],
"days": "<integer, optional, default 3, minimum 1, maximum 7>",
"language": "<string, optional, enum hu|en, default 'hu'>"
}
}
}
Input schema
{
"type": "object",
"properties": {
"place": {
"type": "string",
"description": "City, lake, IATA, or country name (GeoNames)"
},
"geoname_id": {
"type": "integer"
},
"latitude": {
"type": "number"
},
"longitude": {
"type": "number"
},
"country_code": {
"type": "string",
"description": "ISO2 filter for name resolve"
},
"places": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 2,
"maxItems": 5
},
"dates": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 2,
"maxItems": 2,
"description": "Two YYYY-MM-DD dates at the same place"
},
"days": {
"type": "integer",
"minimum": 1,
"maximum": 7,
"default": 3
},
"language": {
"type": "string",
"enum": [
"hu",
"en"
],
"default": "hu",
"description": "Preferred weather_text language; both hu and en are always returned"
}
},
"additionalProperties": false
}
Output schema (structuredContent on success)
{
"type": "object",
"properties": {
"place": {
"type": "object"
},
"alternatives": {
"type": "array",
"items": {
"type": "object"
}
},
"attribution": {
"type": "string"
},
"error": {
"type": "string"
},
"is_error": {
"type": "boolean"
},
"suggestions": {
"type": "array",
"items": {
"type": "object"
}
},
"mode": {
"type": "string"
},
"results": {
"type": "array"
}
},
"additionalProperties": true
}
Error object
{
"type": "object",
"required": [
"error",
"is_error"
],
"properties": {
"error": {
"type": "string"
},
"is_error": {
"type": "boolean",
"const": true
}
},
"additionalProperties": true
}
weather_flags — Heuristic weather flags
Derived flags (frost, heat, heavy_rain, thunderstorm, high_wind, high_uv, poor_air, high_pollen; marine: high_wave, strong_onshore_wind). Not official warnings. 1 credit.
heuristic flags, not official warnings.
Required arguments: (none)
Request contract
{
"jsonrpc": "2.0",
"id": "<integer|string>",
"method": "tools/call",
"params": {
"name": "weather_flags",
"arguments": {
"place": "<string, optional>",
"geoname_id": "<integer, optional>",
"latitude": "<number, optional>",
"longitude": "<number, optional>",
"country_code": "<string, optional>",
"days": "<integer, optional, default 3, minimum 1, maximum 7>"
}
}
}
Input schema
{
"type": "object",
"properties": {
"place": {
"type": "string",
"description": "City, lake, IATA, or country name (GeoNames)"
},
"geoname_id": {
"type": "integer"
},
"latitude": {
"type": "number"
},
"longitude": {
"type": "number"
},
"country_code": {
"type": "string",
"description": "ISO2 filter for name resolve"
},
"days": {
"type": "integer",
"minimum": 1,
"maximum": 7,
"default": 3
}
},
"additionalProperties": false
}
Output schema (structuredContent on success)
{
"type": "object",
"properties": {
"place": {
"type": "object"
},
"alternatives": {
"type": "array",
"items": {
"type": "object"
}
},
"attribution": {
"type": "string"
},
"error": {
"type": "string"
},
"is_error": {
"type": "boolean"
},
"suggestions": {
"type": "array",
"items": {
"type": "object"
}
},
"flags": {
"type": "array",
"items": {
"type": "object"
}
},
"disclaimer": {
"type": "string"
}
},
"additionalProperties": true
}
Error object
{
"type": "object",
"required": [
"error",
"is_error"
],
"properties": {
"error": {
"type": "string"
},
"is_error": {
"type": "boolean",
"const": true
}
},
"additionalProperties": true
}