EightyAndSunny
by omeirhaeghe
README.md
<div align="center">
# โ๏ธ Eighty & Sunny
**A colorful, weather-reactive MCP app.** Rich weather widgets that render right
inside your MCP host โ backed by [Open-Meteo](https://open-meteo.com), with
**no API key required**.




</div>
---
The background reacts to **two things at once** โ the time of day and the
weather. The sky palette follows each city's real sunrise/sunset (๐
dawn glows
peach, โ๏ธ day is blue-and-gold, ๐ dusk turns purple-orange, ๐ night dims to
indigo), and the weather tints it on top (๐ง๏ธ rain cools it blue, โ๏ธ snow turns
icy, โ๏ธ storms go deep purple, โ๏ธ overcast mutes to grey). It cross-fades when
you switch cities.
## โจ Widgets
| Tool | Shows |
|------|-------|
| `show_weather` | Current-conditions card โ big temp, animated icon, feels-like, today's high/low, 6-stat grid |
| `show_weather_forecast` | 7-day grid with icons, precip chance and highโlow range bars |
| `show_weather_hourly` | Next-24h strip with an SVG temperature curve |
| `show_weather_dashboard` | Everything at once โ current + hourly + 7-day + extra stats |
| `get_weather` | Plain JSON (current + hourly + daily), no widget |
Every widget has city **chips** to switch locations instantly and a live
**ยฐF / ยฐC** toggle.
## ๐ Run it
```bash
uv sync
uv run python server/server.py # โ http://localhost:8778/mcp
```
Point your MCP host at `http://localhost:8778/mcp`. No key, no signup.
## โ๏ธ Configure (all optional)
| Env var | Default | Meaning |
|---------|---------|---------|
| `WEATHER_CITIES` | `San Francisco,New York,London,Tokyo,Sydney,Paris` | The city chips |
| `WEATHER_UNITS` | `imperial` | Default units (`imperial` / `metric`) |
| `WEATHER_CACHE_TTL` | `600` | Forecast cache seconds (`0` disables) |
| `WEATHER_PREFETCH` | _off_ | `all` = fetch every city up front |
> One tool call fetches only the **active** city (โค2 requests) and caches it, so
> you stay well under Open-Meteo's free rate limit. Other chips warm from cache.
## โ๏ธ Deploy
**Render** โ push to GitHub, then **New โ Blueprint** (uses the bundled
`render.yaml`). No env vars needed.
**Docker**
```bash
docker build -t es-weather-mcp . && docker run -p 8080:8080 es-weather-mcp
```
**Azure Container Apps** โ one command via the bundled Bicep (`infra/`) +
`azure.yaml`:
```bash
azd up # provision + build + deploy โ prints the /mcp URL
```
No secrets required; tweak cities/units in the Azure dashboard or via
`azd env set WEATHER_UNITS metric`.
---
<div align="center">
Weather by [Open-Meteo](https://open-meteo.com) ยท Built as an
[MCP App](https://modelcontextprotocol.io)
`#MCP` `#ModelContextProtocol` `#Weather` `#OpenMeteo` `#WeatherApp`
`#Python` `#FastMCP` `#Claude` `#AIagents` `#OpenSource`
</div>
This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues