Skip to main content
Glama
Sunilk240

MCP Weather Service

by Sunilk240

MCP Weather Service

A weather service built using Model-Context-Protocol (MCP) that provides current weather and forecasts for Indian cities using WeatherAPI.com.

Prerequisites

  • Python 3.13 or higher

  • uv package manager

  • WeatherAPI.com API key

  • Groq API key (for the chat interface)

  • Claude for Desktop (for testing with Claude)

Related MCP server: Weather MCP Tool

Installation

  1. Clone the repository:

git clone <your-repo-url>
cd mcp-server
  1. Create a .env file in the project root with your API keys:

# WeatherAPI.com API Key
WEATHER_API_KEY=your_weather_api_key_here

# Groq API Key
GROQ_API_KEY=your_groq_api_key_here
  1. Install dependencies using uv:

uv pip install -e .

Running the Service

Development Mode

To run the weather service in development mode:

uv run mcp dev server/weather.py

Install and Run

To install and run the service on desktop claude:

uv run mcp install server/weather.py

Setting up weather.json

The weather.json configuration file is required for the chat interface.

1, Testing your server with Claude for Desktop:

  • Open VS Code and run:

    code $env:AppData\Claude\claude_desktop_config.json
  • Add the following configuration:

    {
        "mcpServers": {
            "weather": {
                "command": "uv",
                "args": [
                    "--directory",
                    "C:\\ABSOLUTE\\PATH\\TO\\YOUR\\mcp-server",
                    "run",
                    "server/weather.py"
                ]
            }
        }
    }
  • Replace C:\\ABSOLUTE\\PATH\\TO\\YOUR\\mcp-server with your actual project path

  1. For Chat Interface (client.py):

    • The weather.json file should be in your server directory

    • Make sure it contains:

      {
          "mcpServers": {
              "weather": {
                  "command": "uv",
                  "args": [
                      "--directory",
                      "C:\\ABSOLUTE\\PATH\\TO\\YOUR\\mcp-server",
                      "run",
                      "server/weather.py"
                  ]
              }
          }
      }
    • Replace C:\\ABSOLUTE\\PATH\\TO\\YOUR\\mcp-server with your actual project path

  2. Restart Claude for Desktop after making changes

Using the Chat Interface

Run the chat client to interact with the weather service:

python server/client.py

The chat interface supports:

  • Getting current weather for any Indian city

  • Getting 3-day weather forecasts

  • Natural language queries about weather

Commands:

  • Type 'exit' or 'quit' to end the conversation

  • Type 'clear' to clear conversation history

Features

  • Current weather information:

    • Temperature in Celsius

    • Weather condition

    • Humidity

    • Wind speed

    • Last updated timestamp

  • 3-day weather forecast:

    • Daily high and low temperatures

    • Weather conditions

    • Date-specific forecasts

Project Structure

mcp-server/
├── server/
│   ├── weather.py      # Weather service implementation
│   ├── client.py       # Chat interface
│   └── weather.json    # MCP server configuration
├── .env               # API keys configuration
├── pyproject.toml     # Project dependencies
└── README.md         # This file

API Keys

  1. WeatherAPI.com:

    • Sign up at WeatherAPI.com

    • Get your free API key

    • Add it to .env as WEATHER_API_KEY

  2. Groq API:

    • Sign up at Groq Console

    • Get your API key

    • Add it to .env as GROQ_API_KEY

Contributing

Feel free to submit issues and enhancement requests!

Related MCP Connectors

Related MCP Servers