Weather MCP Agent
Provides current weather and forecast data for any city via OpenWeatherMap. Can be used with Ollama or Claude Desktop for natural-language weather queries.
README
Weather MCP Agent
Introduction
This project was built by Yehya Abou Khechfe.
The project is a Weather MCP Agent that retrieves current weather conditions and forecasts for any city, using the OpenWeatherMap API.
The MCP server exposes weather tools that can be consumed in multiple ways:
- Connected to Ollama (local LLM) for natural-language interaction — see
ollama_weather_mcp/ollama_mcp_client.pyandollama_weather_mcp/ollama_mcp_server.py. - Connected to Claude Desktop — add the server to your Claude configuration file (
claude_desktop_config.json) as described below. - A simple client with no LLM integrated, used for testing the server directly — see
weather_mcp/mcp_client.pyandweather_mcp/mcp_server.py.
Project Structure
wheather-mcp-agent/
├── ollama_weather_mcp/
│ ├── ollama_mcp_client.py # Interactive client powered by Ollama
│ └── ollama_mcp_server.py # MCP server extended with a prompt for Ollama
├── weather_mcp/
│ ├── __init__.py
│ ├── mcp_client.py # Simple client (no LLM) for testing the server
│ └── mcp_server.py # Core MCP server exposing the weather tools
├── .env # Environment variables (OpenWeatherMap API key)
├── main.py
├── pyproject.toml
└── README.md
Prerequisites
- Python 3.10+
- uv — used as the package and project manager
- Ollama installed and running locally, with a pulled model (e.g.
llama3) mcp[cli]— the MCP Python SDKhttpx— for async HTTP requests to the OpenWeatherMap APIpython-dotenv— for loading environment variables from.env- An OpenWeatherMap API key — get one at openweathermap.org/api
Installing dependencies with uv
uv sync
Setting up your .env file
Create a .env file at the project root:
OPENWEATHER_API_KEY=your_api_key_here
Connecting to Claude Desktop
To use this MCP server with Claude Desktop, add it to your Claude configuration file (claude_desktop_config.json):
{
"mcpServers": {
"weather": {
"command": "uv",
"args": ["run", "--directory", "C:\\path\\to\\wheather-mcp-agent", "weather_mcp/mcp_server.py"]
}
}
}
Restart Claude Desktop after saving the configuration — the weather tools should then appear as available tools in a new conversation.
Running the Ollama-powered client
uv run .\ollama_weather_mcp\ollama_mcp_client.py
Example session
[INFO] Server-client connection initialized
Weather Assistant — ask about current conditions or the forecast for any city.
You can also ask general questions.
Type 'q', 'exit', or 'quit' to leave.
You: what is the current weather in paris
[INFO] Requesting Ollama to extract tool and arguments...
Current weather in Paris, FR: clear sky, 32.79°C (feels like 31.48°C), ranging from 32.3°C to 35.03°C, with 28% humidity.
You: and tomorrow ?
[INFO] Requesting Ollama to extract tool and arguments...
--------------------
Weather Forecast in Paris, FR
2026-07-29 12:00:00 — 33.5°C, clear sky
2026-07-29 15:00:00 — 35.88°C, clear sky
2026-07-29 18:00:00 — 37.16°C, clear sky
2026-07-29 21:00:00 — 30.5°C, clear sky
2026-07-30 00:00:00 — 25.28°C, clear sky
2026-07-30 03:00:00 — 22.37°C, scattered clouds
2026-07-30 06:00:00 — 21.97°C, broken clouds
2026-07-30 09:00:00 — 24.71°C, overcast clouds
2026-07-30 12:00:00 — 28.47°C, overcast clouds
2026-07-30 15:00:00 — 33.05°C, clear sky
--------------------
You: what is the capital of lebanon
[INFO] Requesting Ollama to extract tool and arguments...
[INFO] Requesting Ollama to answer a general question ...
Answer: The capital of Lebanon is Beirut (بيروت).
You:
Running the simple test client (no LLM)
Useful for testing the MCP server's tools directly, without going through an LLM:
uv run .\weather_mcp\mcp_client.py
Available Tools
| Tool | Description |
|---|---|
fetch_current_weather |
Fetches the current weather conditions for a given city. |
fetch_weather_forecast |
Fetches the weather forecast (3-hour intervals) for a given city. |
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.