
Weather MCP Server
io.github.isdaniel由 GitHub 帳號 isdaniel 發布v0.6.1更新於 Oct 24, 2026
providing weather information, air quality data, and timezone utilities using the Open-Meteo API.
概覽
本機 MCP 伺服器,透過免費的 Open-Meteo API 讓助理查詢即時與預報天氣、空氣品質和時區,不需 API 金鑰。
- 可以做什麼
- 查詢城市目前天氣,包含溫度、風況、降水、紫外線指數、能見度以及日出日落時間;也可依日期範圍取得逐小時天氣與趨勢和提醒,並提供對應的原始 JSON 詳情工具。取得城市空氣品質,包含污染物濃度、等級、健康建議以及與 WHO 和 EPA 標準的比較,或回傳結構化 JSON 資料。查詢任一 IANA 時區的目前時間、時區位移與日光節約時間資訊,並在兩個時區之間轉換時間。
- 適用情境
- 適合讓助理回答全球城市的天气、預報、空氣品質或時區問題,而不必註冊天氣服務。適用於 Claude Desktop、Cline 等桌面 MCP 用戶端,也可作為 HTTP 伺服器供網頁整合使用。
- 執行需求
- 以本機 Python 程序執行,從 PyPI 安裝 mcp_weather_server 後以 python -m mcp_weather_server 啟動;Node.js 僅用於選用的 Smithery 安裝器。SSE 或 streamable-http 模式另需 starlette 和 uvicorn,或使用已發布的 Docker 映像。不需 API 金鑰或帳號,但需要能連線至 Open-Meteo 介面的網路。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 Weather MCP Server,將其新增到工作區。
- 為需要使用其工具的對話啟用該服務。
Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。
其他 MCP 客戶端
參照 儲存庫 中的啟動說明。
README
[LightNow] [PyPI - Downloads] [PyPI - Version] [PyPI Downloads] [Docker Pulls]
[圖片]Weather MCP Server
mcp-name: io.github.isdaniel/mcp_weather_server
A Model Context Protocol (MCP) server that provides weather information using the Open-Meteo API. This server supports multiple transport modes: standard stdio, HTTP Server-Sent Events (SSE), and the new Streamable HTTP protocol for web-based integration.
Features
Weather & Air Quality
- Get current weather information with comprehensive metrics:
- Temperature, humidity, dew point
- Wind speed, direction, and gusts
- Precipitation (rain/snow) and probability
- Atmospheric pressure and cloud cover
- UV index and visibility
- "Feels like" temperature
- Sunrise and sunset times (local time at the location)
- Get weather data for a date range with hourly details and daily sunrise/sunset times
- Get air quality information including:
- PM2.5 and PM10 particulate matter
- Ozone, nitrogen dioxide, carbon monoxide
- Sulfur dioxide, ammonia, dust
- Aerosol optical depth
- Health advisories and recommendations
Time & Timezone
- Get current date/time in any timezone
- Convert time between timezones
- Get timezone information
Transport Modes
- Multiple transport modes:
- stdio - Standard MCP for desktop clients (Claude Desktop, etc.)
- SSE - Server-Sent Events for web applications
- streamable-http - Modern MCP Streamable HTTP protocol with stateful/stateless options
- RESTful API endpoints via Starlette integration
Installation
Installing via Smithery
To install Weather MCP Server automatically via Smithery:
Standard Installation (for MCP clients like Claude Desktop)
This package can be installed using pip:
Manual Configuration for MCP Clients
This server is designed to be installed manually by adding its configuration to the cline_mcp_settings.json file.
- Add the following entry to the
mcpServersobject in yourcline_mcp_settings.jsonfile:
- Save the
cline_mcp_settings.jsonfile.
HTTP Server Installation (for web applications)
For HTTP SSE or Streamable HTTP support, you'll need additional dependencies:
Server Modes
This MCP server supports stdio, SSE, and streamable-http modes in a single unified server:
Mode Comparison
1. Standard MCP Mode (Default)
The standard mode communicates via stdio and is compatible with MCP clients like Claude Desktop.
2. HTTP SSE Mode (Web Applications)
The SSE mode runs an HTTP server that provides MCP functionality via Server-Sent Events, making it accessible to web applications.
SSE Endpoints:
GET /sse- SSE endpoint for MCP communicationPOST /messages/- Message endpoint for sending MCP requests
3. Streamable HTTP Mode (Modern MCP Protocol)
The streamable-http mode implements the new MCP Streamable HTTP protocol with a single /mcp endpoint. This mode supports both stateful (default) and stateless operations.
Streamable HTTP Features:
- Stateful mode (default): Maintains session state across requests using session IDs
- Stateless mode: Creates fresh transport per request with no session tracking
- Single endpoint: All MCP communication happens through
/mcp - Modern protocol: Implements the latest MCP Streamable HTTP specification
Streamable HTTP Endpoint:
POST /mcp- Single endpoint for all MCP communication (initialize, tools/list, tools/call, etc.)
Command Line Options:
Example SSE Usage:
Example Streamable HTTP Usage:
Configuration
This server does not require an API key. It uses the Open-Meteo API, which is free and open-source.
Usage
This server provides several tools for weather and time-related operations:
Available Tools
Weather Tools
get_current_weather- Get current weather for a city with comprehensive metricsget_weather_by_datetime_range- Get weather data for a date range with hourly detailsget_weather_details- Get detailed weather information as structured JSON data
Air Quality Tools
get_air_quality- Get air quality information with pollutant levels and health adviceget_air_quality_details- Get detailed air quality data as structured JSON
Time & Timezone Tools
get_current_datetime- Get current time in any timezoneget_timezone_info- Get timezone informationconvert_time- Convert time between timezones
Tool Details
get_current_weather
Retrieves comprehensive current weather information for a given city with enhanced metrics.
Parameters:
city(string, required): The name of the city (English names only)
Returns: Detailed weather data including:
- Temperature and "feels like" temperature
- Humidity, dew point
- Wind speed, direction (as compass direction), and gusts
- Precipitation details (rain/snow) and probability
- Atmospheric pressure and cloud cover
- UV index with warning levels
- Visibility
Example Response:
get_weather_by_datetime_range
Retrieves hourly weather information with comprehensive metrics for a specified city between start and end dates.
Parameters:
city(string, required): The name of the city (English names only)start_date(string, required): Start date in format YYYY-MM-DD (ISO 8601)end_date(string, required): End date in format YYYY-MM-DD (ISO 8601)
Returns: Comprehensive weather analysis including:
- Hourly weather data with all enhanced metrics
- Temperature trends (highs, lows, averages)
- Precipitation patterns and probabilities
- Wind conditions assessment
- UV index trends
- Weather warnings and recommendations
Example Response:
get_weather_details
Get detailed weather information for a specified city as structured JSON data for programmatic use.
Parameters:
city(string, required): The name of the city (English names only)
Returns: Raw JSON data with all weather metrics suitable for processing and analysis
get_air_quality
Get current air quality information for a specified city with pollutant levels and health advisories.
Parameters:
city(string, required): The name of the city (English names only)variables(array, optional): Specific pollutants to retrieve. Options:pm10- Particulate matter ≤10μmpm2_5- Particulate matter ≤2.5μmcarbon_monoxide- CO levelsnitrogen_dioxide- NO2 levelsozone- O3 levelssulphur_dioxide- SO2 levelsammonia- NH3 levelsdust- Dust particle levelsaerosol_optical_depth- Atmospheric turbidity
Returns: Comprehensive air quality report including:
- Current pollutant levels with units
- Air quality classification (Good/Moderate/Unhealthy/Hazardous)
- Health recommendations for general population
- Specific warnings for sensitive groups
- Comparison with WHO and EPA standards
Example Response:
get_air_quality_details
Get detailed air quality information as structured JSON data for programmatic analysis.
Parameters:
city(string, required): The name of the city (English names only)variables(array, optional): Specific pollutants to retrieve (same options asget_air_quality)
Returns: Raw JSON data with complete air quality metrics and hourly data
get_current_datetime
Retrieves the current time in a specified timezone.
Parameters:
timezone_name(string, required): IANA timezone name (e.g., 'America/New_York', 'Europe/London'). Use UTC if no timezone provided.
Returns: Current date and time in the specified timezone
Example:
get_timezone_info
Get information about a specific timezone.
Parameters:
timezone_name(string, required): IANA timezone name
Returns: Timezone details including offset and DST information
convert_time
Convert time from one timezone to another.
Parameters:
time_str(string, required): Time to convert (ISO format)from_timezone(string, required): Source timezoneto_timezone(string, required): Target timezone
Returns: Converted time in target timezone
MCP Client Usage Examples
Using with Claude Desktop or MCP Clients
Web Integration (SSE Mode)
When running in SSE mode, you can integrate the weather server with web applications:
HTML/JavaScript Example
Docker Deployment
The project is available as a Docker image on Docker Hub and includes configurations for easy deployment.
Quick Start with Docker Hub
Pull and run the latest image directly from Docker Hub:
Available Docker Images
- Latest:
dog830228/mcp_weather_server:latest - Versioned:
dog830228/mcp_weather_server:<version>(e.g.,0.5.0)
Images are automatically built and published when new versions are released.
Building from Source
If you want to build the Docker image yourself:
Standard Build
Streamable HTTP Build
Development
Project Structure
Running for Development
Standard MCP Mode (stdio)
SSE Server Mode
Streamable HTTP Mode
Adding New Tools
To add new weather or time-related tools:
- Create a new tool handler in the appropriate file under
tools/ - Inherit from the
ToolHandlerbase class - Implement the required methods (
get_name,get_description,call) - Register the tool in
server.py
Dependencies
Core Dependencies
mcp>=1.0.0- Model Context Protocol implementationhttpx>=0.28.1- HTTP client for API requestspython-dateutil>=2.8.2- Date/time parsing utilities
SSE Server Dependencies
starlette- ASGI web frameworkuvicorn- ASGI server
Development Dependencies
pytest- Testing framework
API Data Sources
This server uses free and open-source APIs:
Weather Data: Open-Meteo Weather API
- Free and open-source
- No API key required
- Provides accurate weather forecasts
- Supports global locations
- Historical and current weather data
- Comprehensive metrics (wind, precipitation, UV, visibility)
Air Quality Data:
- Free and open-source
- No API key required
- Real-time air quality data
- Multiple pollutant measurements (PM2.5, PM10, O3, NO2, CO, SO2)
- Global coverage
- Health-based air quality indices
Troubleshooting
Common Issues
1. City not found
- Ensure city names are in English
- Try using the full city name or include country (e.g., "Paris, France")
- Check spelling of city names
2. HTTP Server not accessible (SSE or Streamable HTTP)
- Verify the server is running with the correct mode:
- SSE:
python -m mcp_weather_server --mode sse - Streamable HTTP:
python -m mcp_weather_server --mode streamable-http
- SSE:
- Check firewall settings for the specified port
- Ensure all dependencies are installed:
pip install starlette uvicorn - Verify the correct endpoint:
- SSE:
http://localhost:8080/sseandhttp://localhost:8080/messages/ - Streamable HTTP:
http://localhost:8080/mcp
- SSE:
3. MCP Client connection issues
- Verify Python path in MCP client configuration
- Check that
mcp_weather_serverpackage is installed - Ensure Python environment has required dependencies
4. Date format errors
- Use ISO 8601 format for dates: YYYY-MM-DD
- Ensure start_date is before end_date
- Check that dates are not too far in the future
Error Responses
The server returns structured error messages:
來源:README.md,提交 a26ad58
工具
0版本歷史
1- v0.6.1最新Sep 16, 2026
評分
已滿足適用檢查項的 50%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
- 近 30 天內可連通25 分
請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。
- 已宣告認證方式10 分
請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。
- 已列出工具15 分
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
- 描述必需15 分
- 圖示10 分
- 文件15 分
- 授權條款10 分