← Weather docs · Markdown · All payloads · Home

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
}