Skip to main content
Glama
yting27

Weather MCP MY

by yting27
README.md
# Weather MCP Server

A basic Model Context Protocol (MCP) server that provides weather information retrieved from Open API of Malaysia's official open data portal. This server enables LLMs to get weather forecast, warnings, water level associated with flood, and earthquake reports.

<a href="https://glama.ai/mcp/servers/@yting27/weather-my-mcp">
  <img width="380" height="200" src="https://glama.ai/mcp/servers/@yting27/weather-my-mcp/badge" alt="Weather MY MCP server" />
</a>

API Documentation: [data.gov.my](https://developer.data.gov.my/)

## Components

### Tools

1. get_water_level_condition
    - Retrieve the water level conditions associated with flood warnings for a specified district or state.
        If both district and state are provided, the district takes precedence.
        If district or state is not specified, use an empty string for that field.

    - Args:
        - district: The name of the district within the specified state for which to retrieve flood warning conditions.
        - state: The name of the state in Malaysia for which to retrieve flood warning conditions.

2. get_warning
    - Retrieve general weather warnings issued within a specified date range.

    - Args:
        - datetime_start: The earliest timestamp in the form of `YYYY-MM-DD HH:MM:SS` (inclusive) from which to retrieve weather warnings. If omitted, defaults to the current date.
        - datetime_end: The latest timestamp in the form of `YYYY-MM-DD HH:MM:SS` (inclusive) to stop retrieving the weather warnings. If omitted, defaults to the current date.

3. get_weather_forecast
    - Retrieve a weather forecast for a specific location within a given date range.

    - Args:
        - location_name: The name or identifier of the location for which the forecast is retrieved.
        - date_start: The earliest date (inclusive) to begin retrieving the weather forecast. If omitted, defaults to the current date.
        - date_end: The latest date (inclusive) to stop retrieving the weather forecast. If omitted, defaults to the current date.

4. get_earthquake_news
    - Fetch earthquake news for a given location within a specified date range.

    - Args:
        - location: Name or identifier of the place where the earthquake(s) occurred.
        - date_start: The earliest date (inclusive) to start searching for earthquake news. If omitted, defaults to the current date.
        - date_end: The latest date (inclusive) to stop searching for earthquake news. If omitted, defaults to the current date.

## Claude Desktop configuration

Add the following into `claude_desktop_config.json` file. For more information, refer to [For Claude Desktop Users](https://modelcontextprotocol.io/quickstart/user).

### Using `uv`

```json
{
    "mcpServers": {
        "weather": {
            "command": "uv",
            "args": [
                "--directory",
                "weather-my-mcp",
                "run",
                "weather.py"
            ]
        }
    }
}
```

### Using Docker

1. Create docker image

    ```bash
    docker build . --tag weather-my-mcp
    ```

2. Edit `claude_desktop_config.json` file as follows:

    ```json
    {
        "mcpServers": {
            "weather": {
                "command": "docker",
                "args": [
                    "run",
                    "-i",
                    "--rm",
                    "weather-my-mcp"
                ]
            }
        }
    }
    ```

## License

This MCP server is licensed under the MIT License. This means you are free to use, modify, and distribute the software, subject to the terms and conditions of the MIT License. For more details, please see the LICENSE file in the project repository.

TDQS

A3.5/5.0

Scored across 4 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: get_earthquake_news for earthquake-related news, get_warning for general weather warnings, get_water_level_condition for flood-specific water level data, and get_weather_forecast for general weather predictions. There is no overlap in functionality, and the descriptions clearly differentiate their domains (earthquakes, warnings, floods, forecasts).

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern with 'get_' as the prefix, followed by a descriptive noun phrase (e.g., get_earthquake_news, get_warning, get_water_level_condition, get_weather_forecast). This uniformity makes the tool set predictable and easy to understand.

Tool Count4/5

With 4 tools, the count is reasonable for a weather-focused server, covering key areas like earthquakes, warnings, floods, and forecasts. It is slightly lean but well-scoped, as each tool addresses a distinct aspect of weather and related hazards without redundancy.

Completeness3/5

The tool set covers specific weather-related data (earthquakes, warnings, floods, forecasts) but has notable gaps for a general 'Weather MCP' server. Missing operations include current weather conditions, historical data, or broader meteorological tools (e.g., humidity, wind speed), which limits comprehensive coverage of the weather domain.

Maintenance

ActivityInactive
ResponsivenessNo issues