Global Weather MCP Server
Pricing
from $5.00 / 1,000 weather-queries
Global Weather MCP Server
MCP server for current weather, hourly and daily forecasts, air quality, lifestyle indices, historical weather, and tides. Data comes from QWeather. Connect over Streamable HTTP at the Standby URL plus /mcp. Query by city or coordinates.
Pricing
from $5.00 / 1,000 weather-queries
Rating
0.0
(0)
Developer
Jason
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 days ago
Last modified
Categories
Share
weather-mcp
Weather MCP (Model Context Protocol) server. It gives clients current conditions, forecasts, air quality, lifestyle indices, historical weather, and tides. Data comes from the QWeather Open API.
Tools
| MCP Tool | Description | QWeather API |
|---|---|---|
get_current_weather | Current weather, plus current air quality when available | Current weather + Current air quality |
get_current_air_quality | Current air quality | Current air quality |
get_weather_indices | Lifestyle indices | Indices forecast |
get_hourly_weather | Hourly forecast | Hourly forecast |
get_daily_weather | Daily forecast | Daily forecast |
get_hourly_airquality | Hourly air quality | Hourly air quality |
get_daily_airquality | Daily air quality | Daily air quality |
get_historical_weather | Historical weather | Time Machine |
get_tide | Tide | Tide |
All nine tools accept lang. The default is zh. Common values: zh, zh-hant, en, ja, ko. See QWeather languages for the full list. An unsupported code returns ok: false.
Response format
Every call returns {ok, data}. data contains only the fields for that query.
{"meta": { "provider": "qweather", "city": "广州", "lat": "23.12", "lon": "113.28" },"current": { "weather": "小雨", "temp": 27.01 },"air_quality": { "index_code": "cn-mee", "aqi_display": "45" }}
get_current_weatherreturnscurrentand includesair_qualitywhen that request succeeds. If air quality fails, the field is empty and the weather result is unchangedget_current_air_qualityreturnsair_qualityget_hourly_weatherreturnshourly_weatherget_daily_weatherreturnsdaily_weatherget_hourly_airqualityreturnshourly_airqualityget_daily_airqualityreturnsdaily_airqualityget_weather_indicesreturnsindicesget_historical_weatherreturnshistorical_weatherget_tidereturnstide
attributions on air-quality results come from QWeather and must be shown together with the data. Data is provided by QWeather. Follow the attribution requirements.
MCP Tool: get_current_weather
Input
| Parameter | Type | Description |
|---|---|---|
city | string? | City name. Use this or lat/lon |
lat | number? | Latitude. Must be sent with lon |
lon | number? | Longitude. Must be sent with lat |
Output
{"ok": true,"data": {"meta": { "provider": "qweather", "city": "广州", "lat": "23.12", "lon": "113.28" },"current": {"weather": "小雨","weather_code": "305","temp": 27.01,"temp_unit": "°C","feels_like": 29.82,"humidity": 0.84,"wind": { "speed": 2.4, "speed_unit": "m/s", "scale": 2 },"pressure": 1012.79,"visibility": 29210.0,"uv_index": 0},"air_quality": {"index_name": "AQI (CN)","index_code": "cn-mee","aqi": 45,"aqi_display": "45","level": "2","category": "良","effect": "空气质量可接受。","advice": "除少数对污染物特别敏感的人以外,可以正常进行室外活动。","primary_pollutant": {"code": "pm2p5","name": "PM 2.5","full_name": "细颗粒物"},"pollutants": [{"code": "pm2p5","name": "PM 2.5","value": 31.0,"unit": "μg/m3"}]}}}
On failure:
{ "ok": false, "error": "错误说明" }
If the air-quality request fails, ok stays true and data.air_quality is empty.
MCP Tool: get_current_air_quality
Input matches get_current_weather. The result is data.air_quality. If this request fails, the whole call returns ok: false.
MCP Tool: get_weather_indices
Input
| Parameter | Type | Description |
|---|---|---|
city | string? | City name. Use this or lat/lon |
lat | number? | Latitude. Must be sent with lon |
lon | number? | Longitude. Must be sent with lat |
days | string? | 1d or 3d. Default 1d |
index_type | string? | Index type IDs, comma-separated. Default 0 (all). 0 cannot be combined with other types |
Common types: 1 sport, 2 car wash, 3 dressing, 4 fishing, 5 UV. Full list: weather indices.
Returns data.indices. A QWeather business code other than 200 makes the whole call ok: false.
MCP Tool: get_hourly_weather
Input
| Parameter | Type | Description |
|---|---|---|
city | string? | City name. Use this or lat/lon |
lat | number? | Latitude. Must be sent with lon |
lon | number? | Longitude. Must be sent with lat |
hours | number? | Forecast hours, 1 to 240. Default 24 |
Returns data.hourly_weather. Times are local to the queried location. Dew point and cloud cover are omitted.
MCP Tool: get_daily_weather
Input
| Parameter | Type | Description |
|---|---|---|
city | string? | City name. Use this or lat/lon |
lat | number? | Latitude. Must be sent with lon |
lon | number? | Longitude. Must be sent with lat |
days | number? | Forecast days, 1 to 10. Default 7 |
lang | string? | Language code. Default zh |
Returns data.daily_weather. Times are local to the queried location. Each day includes high, low, and average temperature, UV index, sunrise and sunset, moon phase, plus daytime and nighttime weather, wind, and precipitation. Cloud cover, twilight, and moon transit are omitted.
MCP Tool: get_hourly_airquality
Input
| Parameter | Type | Description |
|---|---|---|
city | string? | City name. Use this or lat/lon |
lat | number? | Latitude. Must be sent with lon |
lon | number? | Longitude. Must be sent with lat |
lang | string? | Language code. Default zh |
Returns data.hourly_airquality. QWeather returns the next 24 hours. The primary index prefers cn-mee, then qaqi. Index color and pollutant sub-indices are omitted. Show attributions with the data.
MCP Tool: get_daily_airquality
Input
| Parameter | Type | Description |
|---|---|---|
city | string? | City name. Use this or lat/lon |
lat | number? | Latitude. Must be sent with lon |
lon | number? | Longitude. Must be sent with lat |
lang | string? | Language code. Default zh |
Returns data.daily_airquality. QWeather returns the next 3 days. The primary index prefers cn-mee, then qaqi. Index color and pollutant sub-indices are omitted. Show attributions with the data.
MCP Tool: get_historical_weather
Input
| Parameter | Type | Description |
|---|---|---|
city | string? | City name. Use this or lat/lon |
lat | number? | Latitude. Must be sent with lon |
lon | number? | Longitude. Must be sent with lat |
date | string | Required. yyyyMMdd or yyyy-MM-dd. One of the last 10 days, excluding today |
unit | string? | m metric (default) or i imperial |
lang | string? | Language code. Default zh |
Returns data.historical_weather. daily is the day summary and hourly is the hour-by-hour list. Coordinates alone are resolved to a city ID first. In metric units, humidity is a percentage and wind speed is kilometers per hour.
MCP Tool: get_tide
Input
| Parameter | Type | Description |
|---|---|---|
city | string? | City name. Use city, station, or coordinates |
lat | number? | Latitude. Must be sent with lon |
lon | number? | Longitude. Must be sent with lat |
station | string? | Tide station LocationID, such as P66981 |
date | string | Required. yyyyMMdd or yyyy-MM-dd, from today through the next 10 days |
lang | string? | Language code. Default zh. Affects the station name only |
Returns data.tide. table lists high tide (H) and low tide (L). hourly is the hourly tide height in meters. Without station, the nearest tide station is resolved from the city name or coordinates.