Skip to content

Latest commit

 

History

History
105 lines (70 loc) · 2.14 KB

README.md

File metadata and controls

105 lines (70 loc) · 2.14 KB

Weather MCP Server

A Model Context Protocol (MCP) server that provides weather forecast data from the Government of Canada Weather API.

Features

  • Fetch weather forecasts for any location in Canada by providing latitude and longitude
  • Easily integrates with Claude Desktop or any MCP-compatible client

Weather Forecast Screenshot

Installation

Prerequisites

  • Python 3.13 or higher
  • mise or another Python version manager (optional)

Installation Steps

  1. Clone this repository:

    git clone https://github.com/seanlf/weather-mcp.git
    cd weather-mcp
  2. Set up a virtual environment (optional but recommended):

    python -m venv .venv
    source .venv/bin/activate  # On Windows: .venv\Scripts\activate
  3. Install the package and dependencies:

    pip install -e .

Usage

Running as a standalone server

Run the server directly:

python weather.py

Integration with Claude Desktop

To integrate with Claude Desktop:

  1. Edit your Claude Desktop configuration (typically at ~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
{
  "mcpServers": {
    "weather": {
      "command": "/path/to/python", 
      "args": [
        "/path/to/weather-mcp/weather.py"
      ]
    }
  }
}
  1. Restart Claude Desktop to apply changes

Using with other MCP hosts

To use with other MCP hosts, configure the host to execute weather.py using Python 3.13 or higher.

API Reference

get_forecast(latitude: float, longitude: float) -> str

Gets a 5-day weather forecast for the specified location.

Parameters:

  • latitude: Latitude of the location
  • longitude: Longitude of the location

Returns:

  • A formatted string containing the 5-day forecast

Example usage in Claude:

Please get the weather forecast for Ottawa, Canada (45.4215, -75.6972)

Development

Running Tests

pytest

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

This project is licensed under the terms of the license included in the repository.