Weather-MCP-Server
Enables sending severe-weather alerts and automated reports via email
Enables sending severe-weather alerts and automated reports via SMS or phone calls
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Weather-MCP-Serverwhat's the weather in London?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Weather MCP Platform
Agentic weather intelligence, built production-first. Weather data exposed as MCP tools, orchestrated by a LangGraph agent with persistent memory, grounded by citation-aware RAG over disaster-management documents — with automated reports, severe-weather alerts, and published eval numbers gating every release.
Why this project
Most GenAI demos stop at "it answers questions." This one is built solo, to production standards, and every claim below has a testable definition of done:
MCP-native — five typed weather tools + resources + prompts, served over stdio and streamable HTTP; plugs into Claude Desktop or any MCP host
Agentic — LangGraph planning agent with per-user persistent memory, token streaming, human-in-the-loop on outbound actions, and a per-request cost ledger
Grounded — hybrid retrieval (BM25 + pgvector, RRF-fused, cross-encoder reranked) over 20+ disaster/climate documents; every corpus-derived claim carries a citation, and empty retrieval means "the corpus has no answer" — never fabrication
Evaluated — a frozen golden dataset and RAGAS-style quality gates wired into CI; releases are blocked if faithfulness or retrieval quality regresses
Operated — HTTPS deployment with tracing, metrics, uptime monitoring, retries, and dead-letter queues; numbers, not vibes
Related MCP server: Weather MCP Server
Architecture (target)
flowchart TB
subgraph CLIENTS["Clients"]
CD["Claude Desktop / any MCP host"]
UI["Next.js chat UI"]
CRON["Schedules (cron)"]
end
subgraph APP["FastAPI · single deployable"]
REST["REST /v1 + WebSocket<br/>JWT · RBAC · rate limits"]
MCP["MCP server<br/>stdio + streamable HTTP"]
AGENT["LangGraph agent<br/>LiteLLM · memory · HITL"]
RAG["RAG pipeline<br/>hybrid retrieve · rerank · cite"]
JOBS["Workers<br/>APScheduler · retries · DLQ"]
end
subgraph DATA["Data"]
PG[("PostgreSQL 16 + pgvector")]
RS[("Redis 7")]
end
subgraph EXT["External (outbound only)"]
OM["Open-Meteo"]
LLM["OpenAI / Ollama"]
NOTIFY["Resend / Twilio"]
LS["LangSmith"]
end
CD --> MCP
UI --> REST
CRON --> JOBS
REST --> AGENT
AGENT --> MCP
AGENT --> RAG
AGENT --> LLM
AGENT -. traces .-> LS
MCP --> OM
MCP -. cache .-> RS
RAG --> PG
AGENT --> PG
JOBS --> NOTIFYFull component rationale, data model, and non-functional targets live in docs/PRD.md.
MCP tools (ship in v0.1)
Tool | Returns |
| temp, feels-like, humidity, wind speed/direction, condition |
| 1–7 day forecast: min/max, precipitation probability, sunrise/sunset |
| AQI (US + EU), PM2.5, PM10, O₃, NO₂, category + health advice |
| current + daily max UV, category, safe exposure minutes |
| active alerts: type, severity, onset, expiry, area, source |
Shared conventions: location as {city} or {lat, lon}; metric/imperial units; structured errors (INVALID_INPUT, LOCATION_NOT_FOUND, UPSTREAM_UNAVAILABLE, RATE_LIMITED); Redis-cached with per-tool TTLs. Weather data from Open-Meteo (free, keyless).
Tech stack — and why
Layer | Choice | Why |
API | FastAPI (async) | typed, async-native, OpenAPI docs for free |
Database | PostgreSQL 16 + pgvector | one store for relational + vectors + full-text (BM25) |
Cache / queues | Redis 7 | response cache, semantic cache, rate limits, pub/sub |
Agent runtime | LangGraph | explicit state graphs; checkpointing gives durable memory |
LLM gateway | LiteLLM | OpenAI default, local Ollama fallback — swap via env |
MCP | official Python SDK | stdio for Claude Desktop, streamable HTTP for the web |
Evals | RAGAS / DeepEval | spiking both, keeping one (decision D-03) |
Observability | LangSmith + OpenTelemetry | LLM traces + infra spans, separately cheap |
Jobs | APScheduler + SQLAlchemy store | survives restarts; no Celery needed at this scale |
Deploy | Docker Compose + Caddy + GitHub Actions | single VPS, automatic HTTPS, CD on tag |
UI | Next.js + Tailwind | existing skills; hard one-week timebox |
Quickstart
The standing promise from v0.1 onward: clean machine → running MCP server in ≤ 10 minutes. Until then, this brings up the current state.
# Prerequisites: Python 3.12, uv, Docker
git clone https://github.com/AbhishekRaj0037/weather-mcp-platform.git
cd weather-mcp-platform
cp .env.example .env # config is env-only, app fails fast on missing keys
docker compose up -d # Postgres 16 (+pgvector) and Redis 7
uv sync
uv run pytest # same suite CI runsConnect to Claude Desktop (from v0.1)
Add the server to claude_desktop_config.json and the five tools appear in any conversation:
{
"mcpServers": {
"weather": {
"command": "uv",
"args": [
"run",
"--directory",
"/absolute/path/to/weather-mcp-platform",
"weather-mcp-server"
]
}
}
}Docs
docs/PRD.md— requirements & architecture spec v1.0: functional requirements with acceptance criteria, NFRs, tool contracts, data model, risks, open decisions
Author
Abhishek Raj — Python backend / GenAI engineer. GitHub · LinkedIn
License
This server cannot be deployed
Maintenance
Related MCP Connectors
Weather, code search, currency & Solana trust scoring as MCP tools. Free, no API key needed.
The official Model Context Protocol server for Ambee. It gives any MCP-compatible AI assistant — Claude, ChatGPT, Cursor, VS Code, Ollama, and more direct access to live air quality, pollen, and weather data. To get started, including information on signing up and obtaining your Ambee key, check out the Ambee documentation on https://docs.ambeedata.com
- geoOAuthco.thinair
Geocoding, routing, isochrones, traffic, weather, and place search for AI agents. 19 MCP tools.
US weather & geo for AI agents: forecasts, alerts, earthquakes, elevation, geocoding. No keys.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables AI agents to access real-time and historical weather data through multiple weather APIs including OpenMeteo, Tomorrow.io, and OpenWeatherMap. Provides comprehensive meteorological information including current conditions, forecasts, historical data, and weather alerts.-
- AlicenseNot gradedqualityDmaintenanceProvides weather data from OpenWeatherMap API through MCP tools and a REST API with OpenAPI support. Enables LLM agents to retrieve current weather, forecasts, and temperature ranges by city or coordinates.7 npmMIT
- FlicenseNot gradedqualityCmaintenanceProvides real-time weather data via 12 tools (current weather, forecasts, air quality, umbrella advice, etc.) using Open-Meteo and FastMCP, enabling LLMs to answer weather-related queries.1-
- AlicenseAqualityDmaintenanceProvides real-time weather and forecast data via MCP tools, enabling AI agents to query current weather and up to 3-day forecasts for any city.3MIT