mcp-server
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
- Clone the repository:
git clone <your-repo-url>
cd mcp-server
- 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
- 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
-
For Chat Interface (client.py):
- The
weather.json
file should be in yourserver
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
- The
-
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
-
WeatherAPI.com:
- Sign up at WeatherAPI.com
- Get your free API key
- Add it to
.env
asWEATHER_API_KEY
-
Groq API:
- Sign up at Groq Console
- Get your API key
- Add it to
.env
asGROQ_API_KEY
Contributing
Feel free to submit issues and enhancement requests!