Skip to main content

mcp-cwa

PyPI version Python License: MIT GitHub release Publish to PyPI MCP

MCP server for CWA (中央氣象署, Central Weather Administration) Open Data API. Provides 36 read-only tools across 7 weather data categories for AI agents such as Claude.

繁體中文

Part of the Asgard AI Platform open-source ecosystem.

Features

  • 36 tools covering all major CWA Open Data categories
  • 80 API endpoints accessible via intelligent tool grouping (e.g. 44 township forecasts → 2 tools with county parameter)
  • 22 county mapping for township-level weather forecasts
  • All tools are read-only with readOnlyHint=True annotations

Categories

Category Tools Description
Forecast (預報) 9 36-hour, 3-day, 1-week forecasts; township forecasts; tidal; cold injury; temperature diff
Observation (觀測) 7 Weather stations, rainfall, 10-min observations, UV index, ozone, marine
Earthquake (地震海嘯) 5 Tsunami info, significant/local earthquake reports (zh/en)
Climate (氣候) 5 30-day observations, daily rainfall, monthly average, station info
Warning (天氣警特報) 7 Weather warnings by county, heavy rain, cold, heat, typhoon, tropical cyclone
Numerical (數值預報) 1 Heat injury index
Astronomy (天文) 2 Sunrise/sunset, moonrise/moonset

Quick Start

Install from PyPI

pip install mcp-cwa

Or clone and install locally

git clone https://github.com/asgard-ai-platform/mcp-cwa.git
cd mcp-cwa
uv venv && source .venv/bin/activate
uv pip install -e .

Claude Desktop / Claude Code

Add to your MCP configuration:

{
  "mcpServers": {
    "mcp-cwa": {
      "command": "python3",
      "args": ["mcp_server.py"],
      "cwd": "/path/to/mcp-cwa",
      "env": {
        "CWA_API_KEY": "CWA-your-authorization-code"
      }
    }
  }
}

Get API Key

  1. Register at CWA Open Data Platform
  2. After registration, obtain your authorization code from the member page

Environment Variables

Variable Required Description
CWA_API_KEY Yes CWA Open Data API authorization code

Example Usage

User: 臺北市現在天氣如何?
Agent: [calls get_weather_observation(county_name="臺北市")]

User: 最近有地震嗎?
Agent: [calls get_significant_earthquake(limit=3)]

User: 明天高雄日出時間?
Agent: [calls get_sunrise_sunset(county_name="高雄市", date="2025-04-16")]

Development

# Install dependencies
uv venv && source .venv/bin/activate
uv pip install -e .

# Run E2E tests (requires real API key)
CWA_API_KEY=CWA-xxx python3 tests/test_all_tools.py

API Reference

All tools query the CWA Open Data API at https://opendata.cwa.gov.tw/api/v1/rest/datastore/{dataset_id}.

See _spec/api-tools-list.md for the complete endpoint inventory.

License

MIT — see LICENSE

Metadata

Release files for mcp-cwa 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mcp-cwa 0.1.0
File Size Uploaded
mcp_cwa-0.1.0.tar.gz 14.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for mcp-cwa 0.1.0
File Interpreter ABI Platform
mcp_cwa-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 31.5 kB

Release files / mcp_cwa-0.1.0.tar.gz

Download URL mcp_cwa-0.1.0.tar.gz
Size 14.3 kB
Tags Source
SHA-256 checksum
How to use checksums
fd7e9be323a810461fad711670bf95d040d97dd0935b9a1aa295a9f1b2c7bdf6
BLAKE2b-256 checksum
How to use checksums
1f6506229fc20e15df8a710622aab2e6fa1631f977fc1e2229109b96c4328c0c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 23, 2026.

Transparency log

Release files / mcp_cwa-0.1.0-py3-none-any.whl

Download URL mcp_cwa-0.1.0-py3-none-any.whl
Size 17.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
adb17a6ed56f6c8cbe2af0362fd003013ed4352b7f0aeda49ff145c7c0ebd4ea
BLAKE2b-256 checksum
How to use checksums
fcc3619a6b3a075ca00b475bdf83845aa39124d19433f37714dbc045ba35ca95
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 23, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page