Thermal Sentinel MCP Server

Thermal Sentinel MCP Server

Enables AI agents to monitor urban heat risk, detect heat waves and anomalies, and generate alerts with urban-planning recommendations via the FortyGuard Temperature API.

Category
Visit Server

README

๐ŸŒก๏ธ 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

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

Recommended Servers

playwright-mcp

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.

Official
Featured
TypeScript
Magic Component Platform (MCP)

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.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

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.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

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.

Official
Featured
TypeScript
Kagi MCP Server

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.

Official
Featured
Python
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Exa Search

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.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured