Weather MCP Server
README.md
# š¦ļø MCP Weather Assistant
A Model Context Protocol (MCP) project that connects a Groq-hosted LLM to a custom **Weather MCP Server**, allowing you to ask natural-language questions about weather and get real-time, tool-grounded answers sourced from the **National Weather Service (NWS) API**.
## How It Works
```
User
ā
"Are there any weather alerts for CA?"
ā
Groq LLM
ā
Decides to call get_alerts_tool
ā
MCP Client
ā
MCP Weather Server
ā
National Weather Service API
ā
Real-time weather alerts
ā
Groq LLM
ā
Natural-language answer
```
1. The user asks a question in plain English.
2. The **Groq LLM** interprets the question and decides which tool to call (e.g. `get_alerts_tool`, `get_forecast_tool`).
3. The **MCP Client** sends that tool call to the **MCP Weather Server** over the Model Context Protocol.
4. The server queries the **National Weather Service API** for live data.
5. Results flow back through the client to the LLM.
6. The LLM turns the raw data into a clear, natural-language response for the user.
## Features
- š¦ļø Real-time weather alerts by U.S. state
- š Weather forecasts by location (lat/long)
- š Built on the **Model Context Protocol (MCP)** ā tools are exposed in a standardized way any MCP-compatible client can use
- ā” Powered by **Groq** for fast LLM inference
- š§© Clean separation between the LLM client and the weather tool server
## Project Structure
```
.
āāā client/ # MCP client ā connects to Groq LLM and the MCP server
āāā server/ # MCP weather server ā exposes get_alerts_tool, get_forecast_tool, etc.
āāā requirements.txt # or package.json, depending on stack
āāā README.md
```
*(Adjust this tree to match your actual folder layout.)*
## Prerequisites
- Python 3.10+ (or Node.js, depending on your implementation)
- A [Groq API key](https://console.groq.com/)
- Internet access (the server calls the public NWS API ā no API key required for NWS)
## Installation
```bash
git clone https://github.com/Krishna-Dhawangale/MCP.git
cd MCP
pip install -r requirements.txt
```
## Configuration
Create a `.env` file in the project root:
```env
GROQ_API_KEY=your_groq_api_key_here
```
## Usage
1. Start the MCP weather server:
```bash
python server/weather_server.py
```
2. Run the client:
```bash
python client/main.py
```
3. Ask a question:
```
> Are there any weather alerts for CA?
```
The client will route the query to the LLM, which calls the appropriate tool on the MCP server and returns a natural-language answer.
## Available Tools
| Tool | Description |
|---|---|
| `get_alerts_tool` | Fetches active weather alerts for a given U.S. state |
| `get_forecast_tool` | Fetches the weather forecast for a given latitude/longitude |
## Roadmap
- [ ] Add support for more locations (international)
- [ ] Add caching for repeated queries
- [ ] Add unit tests for tool handlers
- [ ] Support additional MCP clients beyond Groq
## Contributing
Contributions are welcome! Feel free to open an issue or submit a pull request.
This server cannot be deployed
Maintenance
ActivityMaintained
ResponsivenessNo issues