Skip to main content
Glama
0xConsole

Thermal Sentinel MCP Server

by 0xConsole

๐ŸŒก๏ธ Thermal Sentinel

Heat-risk monitoring agent powered by the FortyGuard Temperature API. Detects heat waves and temperature anomalies, generates alerts with urban-planning recommendations, and exposes an MCP tool interface. Built for the FortyGuard Hackathon'26 (Agentic AI track).

Live demo: https://thermal-sentinel-agent.vercel.app ยท GitHub: 0xConsole/thermal-sentinel-agent

What It Does

Thermal Sentinel is an AI agent that:

  1. Queries the FortyGuard Temperature API for real-time urban temperature data

  2. Detects heat waves and anomalies using Sentinel-style multi-signal anomaly detection (WHO heat bands + z-score + sustained-heat + rate-of-change)

  3. Generates heat-risk alerts with actionable urban-planning recommendations

  4. Exposes 11 tools via the MCP (Model Context Protocol) โ€” any AI agent can call them

  5. Displays a live dashboard with city grid, alerts, charts, and one-click demo

Related MCP server: Weather MCP Server

Quick Start

# Clone
git clone https://github.com/0xConsole/thermal-sentinel-agent.git
cd thermal-sentinel-agent

# Install deps
pip install -r requirements.txt

# Run locally (no API key needed โ€” mock data works out of the box)
uvicorn app.main:app --reload --port 8000

# Open dashboard
open http://localhost:8000

With Real FortyGuard API

export FORTYGUARD_API_KEY="your-api-key"
export FORTYGUARD_API_BASE="https://api.fortyguard.com"  # default
uvicorn app.main:app --reload --port 8000

Architecture

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                    Dashboard UI (static)                 โ”‚
โ”‚              REST API  +  MCP Tool Interface              โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚                     FastAPI (app/main.py)                โ”‚
โ”‚         /api/* routes  +  /mcp/tools  /mcp/call          โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚                    Agent (app/agent.py)                   โ”‚
โ”‚     scan_cities โ†’ monitor_city โ†’ heat_risk_report        โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ FortyGuard   โ”‚  Anomaly Detector โ”‚     Store (SQLite)    โ”‚
โ”‚  Client      โ”‚  (Sentinel-style) โ”‚   /tmp persistence    โ”‚
โ”‚ Real or mock โ”‚  4 signals + score โ”‚  readings + alerts   โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

MCP Tools (11)

Tool

Endpoint

Description

scan_cities

POST /mcp/call

Scan multiple cities for heat risk

get_temperature

POST /mcp/call

Current temperature for a city

get_temperature_history

POST /mcp/call

Hourly temperature history

detect_heat_anomaly

POST /mcp/call

Run anomaly detection

monitor_city

POST /mcp/call

Deep single-city monitoring

get_heat_risk_report

POST /mcp/call

Consolidated risk report

get_alerts

POST /mcp/call

Active alerts from log

acknowledge_alert

POST /mcp/call

Dismiss an alert

list_monitored_cities

POST /mcp/call

List monitorable cities

get_monitoring_stats

POST /mcp/call

Monitoring statistics

run_demo

POST /mcp/call

One-click demo scan

List tools: GET /mcp/tools Call tool: POST /mcp/call with {"name": "scan_cities", "arguments": {"cities": ["Dubai", "Phoenix"]}}

REST API

Method

Path

Description

GET

/

Dashboard UI

GET

/health

Health check (shows live/mock mode)

POST

/api/scan

Scan cities

GET

/api/temperature/{city}

Current temperature

GET

/api/history/{city}?hours=24

Temperature history

GET

/api/monitor/{city}?hours=24

Deep city monitoring

GET

/api/report?city=...

Heat-risk report

GET

/api/alerts?city=...&limit=50

Active alerts

POST

/api/alerts/{id}/ack

Acknowledge alert

GET

/api/stats

Monitoring stats

GET

/api/cities

List cities

POST

/api/demo

One-click demo

Anomaly Detection

Multi-signal, composite 0-100 risk score:

Signal

Max Points

Catches

WHO heat-risk band

40

Absolute heat level

Z-score (vs 24h baseline)

25

Statistical outlier

Sustained heat-wave (consecutive โ‰ฅ38ยฐC)

20

Heat wave declaration

Rate-of-change (โ‰ฅ5ยฐC/hr)

15

Rapid shifts

Severity: info โ†’ low โ†’ medium โ†’ high โ†’ critical

Project Structure

thermal-sentinel-agent/
โ”œโ”€โ”€ api/
โ”‚   โ””โ”€โ”€ index.py              # Vercel entry
โ”œโ”€โ”€ app/
โ”‚   โ”œโ”€โ”€ __init__.py
โ”‚   โ”œโ”€โ”€ main.py               # FastAPI app + routes
โ”‚   โ”œโ”€โ”€ fortyguard_client.py  # API client + mock transport
โ”‚   โ”œโ”€โ”€ anomaly_detector.py   # Sentinel-style detection
โ”‚   โ”œโ”€โ”€ agent.py              # Orchestration
โ”‚   โ”œโ”€โ”€ mcp_server.py         # MCP tool registry
โ”‚   โ””โ”€โ”€ store.py              # SQLite persistence
โ”œโ”€โ”€ static/
โ”‚   โ””โ”€โ”€ index.html            # Dashboard UI
โ”œโ”€โ”€ CONCEPT.md
โ”œโ”€โ”€ README.md
โ”œโ”€โ”€ vercel.json
โ”œโ”€โ”€ requirements.txt
โ””โ”€โ”€ .gitignore

What's Real vs Mocked

  • โœ… Real: FortyGuard API integration (when FORTYGUARD_API_KEY set), anomaly detection engine, MCP tool protocol, alert generation, dashboard UI, Vercel deployment

  • ๐Ÿ”ถ Mock (fallback): When no API key, temperature data is generated from per-city climate baselines with realistic diurnal variation and anomaly injection โ€” for zero-credential demos

Deploy

# Vercel (auto-creates project on first deploy)
vercel --prod --yes --token "$VERCEL_TOKEN"

# Or set env var on Vercel
vercel env add FORTYGUARD_API_KEY production

License

MIT

Built For

FortyGuard Hackathon'26 โ€” Agentic AI track

  • Prize: $6K + NVIDIA Jetson

  • Judging: Impact (40%), Technical Execution (35%), Innovation (15%), Communication (10%)

  • See CONCEPT.md for full concept and judging-criteria alignment

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Exposes public weather and climate data through a standardized API, allowing AI agents to retrieve current conditions, 7-day forecasts, and historical data. It enables weather-aware automation and data enrichment for conversational agents and travel planning.
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    Global weather intelligence for AI assistants providing 10 weather tools โ€” forecasts, historical data, air quality, marine, geocoding, elevation, and climate projections at 1km resolution with 80+ years of archive.
    1
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides AI agents with access to CO2 emissions data, climate projections, and risk assessments for heat, flooding, and drought, supporting ESG analysis and CSRD compliance.
    MIT