Qweather Mcp

io.github.overstarryPublished by GitHub account overstarryv1.0.12Updated Oct 24, 2026

a qweather mcp server

VerifiedSTDIODesktop onlyLocation & LifestyleData & Analytics

Overview

AI-generated overview

A local MCP server that gives an assistant QWeather weather, forecast, air quality, warning, and life-index data for a location.

What you can do
Wraps the QWeather API as MCP tools. Tools cover current conditions, multi-day forecasts (3/7/10/15/30 days), minute-by-minute precipitation for the next two hours, hourly forecasts up to 168 hours, weather warnings, life indices such as dressing or UV, and current, hourly, and 3-day air quality. It runs over stdio and supports a custom API base URL.
When to use it
Useful when an assistant should answer weather, forecast, air quality, or weather-warning questions for a location, including short-term rain timing and daily planning indices. Add it if you already have QWeather API credentials and want that data inside your assistant rather than in a browser.
Requirements
Runs locally over stdio, typically via npx qweather-mcp, so Node.js is needed. Requires QWeather credentials: either the legacy API Key mode with QWEATHER_API_BASE and QWEATHER_API_KEY, or the recommended JWT mode with QWEATHER_API_BASE, QWEATHER_PROJECT_ID, QWEATHER_KEY_ID, and an Ed25519 private key supplied via QWEATHER_PRIVATE_KEY_PATH or QWEATHER_PRIVATE_KEY. Network access to the QWeather host is required.
Before you install
Requires secrets: QWEATHER_API_KEY, or QWEATHER_PRIVATE_KEY / QWEATHER_PRIVATE_KEY_PATH plus QWEATHER_PROJECT_ID and QWEATHER_KEY_ID. The private key is a signing credential, so store it carefully and avoid exposing it in shared configs or logs. Location queries and credentials are sent to the QWeather API host you configure. API Key authentication is documented as deprecated in 2027, so plan a JWT migration.

Installation

In SourceWeft

  1. Open Qweather Mcp in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

qweather-mcp

[Verified on MseeP] [MseeP.ai Security Assessment Badge] [smithery badge]

English | 简体中文

MCP server for QWeather API, providing comprehensive weather information query capabilities through Model Context Protocol (MCP).

✨ Features

  • 🌤️ Real-time weather queries
  • 📅 Multi-day weather forecasts (3/7/10/15/30 days)
  • 🔐 JWT (EdDSA/Ed25519) and legacy API Key authentication
  • 🔌 Custom API base URL support
  • 🛠️ Complete tool integration

📦 Installation

Via Smithery

Recommended: Install automatically for Claude Desktop using Smithery:

bash
npx -y @smithery/cli install @overstarry/qweather-mcp --client claude

Manual Configuration

  1. First, get your credentials from the QWeather Console.
  2. Start the server:
bash
# stdio servernpx -y qweather-mcp
  1. Configure environment variables (pick one of the two auth modes below).

🔐 JWT Authentication (recommended)

QWeather has announced that API Key authentication will be deprecated in 2027 and recommends migrating to JWT (EdDSA + Ed25519). Generate an Ed25519 key pair, upload the public key to the QWeather console, and configure:

bash
QWEATHER_API_BASE=https://<your-host>.qweatherapi.comQWEATHER_PROJECT_ID=<project-id>QWEATHER_KEY_ID=<credential-id># Either pass the PEM path…QWEATHER_PRIVATE_KEY_PATH=/path/to/ed25519-private.pem# …or the PEM content directly (newlines preserved)# QWEATHER_PRIVATE_KEY="-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----"

If both QWEATHER_PRIVATE_KEY_PATH and QWEATHER_PRIVATE_KEY are provided, the path takes precedence. For QWEATHER_PRIVATE_KEY, the literal two-character sequence \n is auto-converted to real newlines, so the single-line form above works in shells, .env files, and JSON configs.

JSON config example:

json
{  "mcpServers": {    "qweather": {      "command": "npx",      "args": ["-y", "qweather-mcp"],      "env": {        "QWEATHER_API_BASE": "https://<your-host>.qweatherapi.com",        "QWEATHER_PROJECT_ID": "<project-id>",        "QWEATHER_KEY_ID": "<credential-id>",        "QWEATHER_PRIVATE_KEY_PATH": "/path/to/ed25519-private.pem"      }    }  }}

JWT details: tokens are signed with alg=EdDSA, iat is back-dated 30s to tolerate clock skew, exp = iat + 900s (15 min, well under QWeather's 24h cap), and tokens are cached and reused until ~30s before expiry. See the official authentication docs.

🔑 API Key Authentication (legacy)

bash
QWEATHER_API_BASE=https://api.qweather.comQWEATHER_API_KEY=<your-api-key>

JSON config example:

json
{  "mcpServers": {    "qweather": {      "command": "npx",      "args": ["-y", "qweather-mcp"],      "env": {        "QWEATHER_API_BASE": "<your-api-url>",        "QWEATHER_API_KEY": "<your-api-key>"      }    }  }}

Mode detection

Env vars presentMode
Full JWT vars (QWEATHER_PROJECT_ID + QWEATHER_KEY_ID + QWEATHER_PRIVATE_KEY[_PATH])JWT (wins even if QWEATHER_API_KEY is also set)
Full JWT vars + QWEATHER_API_KEYJWT (API Key is ignored)
Partial JWT vars + QWEATHER_API_KEYAPI Key, with a startup warning to stderr
Partial JWT vars onlystartup error
QWEATHER_API_KEY onlyAPI Key
neitherstartup error

The active mode is logged to stderr at startup, e.g. Weather MCP Server running on stdio (auth: JWT/EdDSA).

🛠️ Available Tools

get-weather-now

Get current weather information for a specified location.

get-weather-forecast

Get weather forecast information for a specified location with customizable forecast days:

  • 3-day forecast
  • 7-day forecast
  • 10-day forecast
  • 15-day forecast
  • 30-day forecast

Forecast data includes:

  • Temperature range (min/max)
  • Day/night weather conditions
  • Sunrise/sunset times
  • Precipitation
  • Humidity
  • Wind conditions
  • UV index

get-minutely-precipitation

Provides minute-by-minute precipitation forecast for the next 2 hours, including:

  • Precipitation type (rain/snow)
  • Precipitation amount per minute
  • Precise time predictions
  • Real-time forecast descriptions

get-hourly-forecast

Provides hourly weather forecasts for 24, 72, or 168 hours, including:

  • Temperature changes
  • Weather conditions
  • Wind direction and force
  • Relative humidity
  • Atmospheric pressure
  • Precipitation probability
  • Cloud coverage

get-weather-warning

Provides real-time weather warning information, including:

  • Warning issuing authority
  • Warning level and type
  • Detailed warning content
  • Warning validity period
  • Related recommendations

get-weather-indices

Provides weather life indices information, supporting various index types:

  • Sports index
  • Car wash index
  • Dressing index
  • Fishing index
  • UV index
  • Tourism index
  • Allergy index and 16 other life indices

get-air-quality

Provides real-time air quality data, including:

  • AQI index
  • Air quality level
  • Primary pollutants
  • Health advice
  • Pollutant concentrations

get-air-quality-hourly

Provides hourly air quality forecast for the next 24 hours:

  • Hourly AQI predictions
  • Pollutant concentration changes
  • Health impact assessment
  • Protection recommendations

get-air-quality-daily

Provides air quality forecast for the next 3 days:

  • Daily AQI predictions
  • Primary pollutant forecasts
  • Air quality level changes
  • Health protection advice

🤝 Contributing

Issues and improvements are welcome! Please check our contribution guidelines.

📄 License

MIT

🔗 Related Links

Source: README.md at commit 97a7a98

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v1.0.12LatestSep 16, 2026

Score

40% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

    Declare a license in the repository or the registry entry.