qweather-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@qweather-mcpWhat's the current weather and air quality in Shanghai?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
qweather-mcp
A QWeather MCP server built on the official mcp SDK 2.x (MCPServer), with both stdio and streamable-http transports. Credentials stay in the server process — clients only ever pass a location parameter.
Tools
Tool | Returns | Use case |
| City list (id / lat-lon / admin region) | Geo: city search / coordinate lookup |
| Top cities list | Geo: top cities per country |
| POI list | Geo: attractions / tide station search |
| POI list | Geo: POIs within a radius |
| Nowcast JSON (city + v1 current) | Current weather (global lat-lon) |
| Forecast JSON (city + v1 days[]) | Daily forecast (up to 10 days) |
| Forecast JSON (city + v1 hours[]) | Hourly forecast (up to 240 hours) |
| City + summary + 5-min precipitation series | Minutely precipitation (China only, next 2 hours) |
| City + indices list (with descriptions) | Life indices (1/3 days, optional types) |
| City + AQI + pollutants | Real-time air quality (with health advice) |
| City + hourly AQI/pollutants | Air quality hourly forecast (24h) |
| City + daily AQI/pollutants | Air quality daily forecast (3d) |
| Typhoon id / name / year / active | Typhoon list (last 2 years, NP basin) |
| Nowcast | Typhoon real-time and track |
| Forecast position / grade / pressure / wind | Typhoon forecast (active storms) |
| High/low tides + hourly sea level | Tides (next 10 days) |
| Sunrise / sunset times | Astronomy: sunrise & sunset (60 days) |
| Moonrise / moonset + hourly phases | Astronomy: moonrise, moonset & phase (60 days) |
| Solar elevation / azimuth | Astronomy: solar elevation angle |
| Active official warning list | Weather warnings (most countries worldwide) |
| Ready-to-send Markdown (today's overview + 3-day forecast + tips) | Push / notification scenarios |
location accepts a city name, a LocationID, or "lon,lat" (e.g. "116.41,39.92"). Weather tools query by lat-lon via the v1 API (1 km resolution, global coverage); get_weather_report is generated from v1 daily forecast data. Only life indices still use the v7 endpoint (/v7/indices, no v1 equivalent).
Endpoint-to-docs mapping lives in docs/. Adding a new API = one method in client.py + one @mcp.tool() in server.py.
Related MCP server: Weather MCP Server
Configuration
Environment variables only (12-factor); no config file. CLI flags (--transport/--host/--port) only control how the server runs. A missing required variable fails at startup, naming exactly what's missing.
Variable | Description |
| Your dedicated API host, e.g. |
| Project ID, JWT |
| Credential ID, JWT |
| Ed25519 private key path, default |
The private key never leaves the filesystem: no client config file, no LLM context. Only the host and the two non-secret IDs live in client configs.
Run
Install as a global tool:
uv tool install .# stdio (default; local clients spawn it)
qweather-mcp
# streamable-http (deploy as a shared service; clients just point at a URL)
qweather-mcp --transport streamable-http --host 0.0.0.0 --port 8111Reinstall after code changes: uv tool install --force .. For development, uv tool install -e . gives you edit-in-place behavior.
For quick development runs of streamable-http:
uv run qweather-mcp --transport streamable-http # 127.0.0.1:8111/mcp by defaultClient integration
Claude Code (.mcp.json):
{
"mcpServers": {
"qweather": {
"command": "/Users/you/.local/bin/qweather-mcp",
"env": {
"QWEATHER_API_HOST": "<your dedicated API host>",
"QWEATHER_PROJECT_ID": "<project ID>",
"QWEATHER_CREDENTIAL_ID": "<credential ID>"
}
}
}
}Other MCP clients (Claude Desktop, Gemini, agents, …): the same command + the three env vars above in each client's MCP config.
Shared-service mode: run qweather-mcp --transport streamable-http --host 0.0.0.0 --port 8111, then register http://127.0.0.1:8111/mcp in any client that speaks streamable-http (e.g. LangChain/LangGraph load_mcp_tools). Network isolation (cluster-internal only) is recommended for deployments.
Container deployment: uv tool install . (or pip install) inside the image, run qweather-mcp --transport streamable-http; config all via container env, mount the private key as a secret and point QWEATHER_PRIVATE_KEY_PATH at it.
License
This server cannot be deployed
Maintenance
Related MCP Connectors
Hosted MCP server for Xweather weather data: conditions, forecasts, alerts, and more.
WeatherAPI.com MCP — wraps WeatherAPI.com (api.weatherapi.com)
OpenWeather MCP — wraps the OpenWeatherMap API (openweathermap.org)
航班管家 DAST 官方航空数据 MCP,支持 Remote HTTP 与 npm STDIO,提供航班动态、天气、轨迹及延误风险。Official Flight Master MCP.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceProvides weather forecasts and active alerts for US locations using the National Weather Service API. It supports both local stdio and remote HTTP/SSE transport modes for flexible integration with MCP clients.102 npmGPL 3.0
- FlicenseAqualityCmaintenanceProvides weather alerts and forecasts via MCP tools, supporting both STDIO and SSE transports.2-
- AlicenseNot gradedqualityBmaintenanceMCP server that provides tools to retrieve weather information from a weather API, supporting both local stdio and remote Streamable HTTP transports.221 npm1MIT
- AlicenseNot gradedqualityAmaintenanceGeocode places, fetch global weather forecasts, ERA5 historical climate, marine conditions, air quality, and terrain elevation via MCP. Provides 11 tools over STDIO or Streamable HTTP.476 npm8Apache 2.0