mcp-server

mcp-server

0

The MCP Weather Service is an MCP server providing weather information and forecasts for Indian cities using WeatherAPI.com and a chat interface for natural language interaction. It allows users to access up-to-date weather details and forecasts easily.

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)

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!