Skip to main content
Glama
hh186011

mcp-estacion-meteorologica-iot

by hh186011

🌦️ MCP Estación Meteorológica IoT — BIU

Servidor Model Context Protocol (MCP) basado en FastMCP que expone los datos de la estación meteorológica IoT (ESP32-S3 + BME280 → AWS → Supabase) como herramientas consultables en lenguaje natural desde cualquier cliente MCP compatible (Claude Desktop, Claude.ai, Cursor, etc.).

Proyecto del caso de estudio Estación Meteorológica IoT, Maestría en Estructuras Computacionales, asignatura CSE611 — Broward International University.

Arquitectura completa del proyecto

ESP32-S3 + BME280 → WiFi → AWS API Gateway → AWS Lambda → Supabase PostgreSQL
                                                                    ↓
                                                    [Este servidor MCP en FastMCP Cloud]
                                                                    ↓
                                              Cualquier cliente MCP (Claude, Cursor, etc.)

Related MCP server: MCP Supabase Server

Base de datos

Tabla sensor_readings en Supabase:

Campo

Tipo

Descripción

id

UUID

Clave primaria

device_id

VARCHAR

Identificador del sensor (ESP32S3_SENSOR_01)

temperature

NUMERIC

Temperatura en °C

humidity

NUMERIC

Humedad relativa en %

pressure

NUMERIC

Presión atmosférica en hPa

created_at

TIMESTAMPTZ

Marca de tiempo UTC

Instalación local

pip install -r requirements.txt
cp .env.example .env
# Editar .env con tus credenciales reales de Supabase
python server.py

Variables de entorno

Variable

Descripción

SUPABASE_URL

URL del proyecto Supabase

SUPABASE_KEY

API Key de Supabase (anon o service_role)

DEVICE_ID

ID del dispositivo a consultar (default: ESP32S3_SENSOR_01)

Herramientas (Tools) disponibles

  1. obtener_ultima_lectura() — Lectura más reciente del sensor

  2. obtener_ultimas_lecturas(limite) — Historial de lecturas recientes

  3. obtener_datos_grafico(limite) — Serie temporal para visualización

  4. obtener_resumen_estacion(limite) — Estadísticas (promedio, máx, mín)

  5. detectar_alertas() — Alertas según umbrales climáticos de Santiago

  6. datos_para_dashboard(limite) — Toda la información agregada

Recursos (Resources) disponibles

  • clima://config/bme280 — Especificaciones técnicas del sensor

  • clima://config/umbrales — Umbrales de alerta configurados

Prompts disponibles

  1. prompt_dashboard_tendencias(fecha_inicio, fecha_fin) — Genera HTML con análisis de tendencias entre fechas

  2. prompt_dashboard_personalizado(tipo_dashboard, limite) — Genera HTML de dashboard ejecutivo o técnico

Umbrales de alerta (ajustados para Santiago, Chile)

Condición

Umbral

Temperatura alta

≥ 30°C

Temperatura baja / helada

≤ 5°C

Humedad elevada

≥ 85%

Presión baja (posible lluvia)

< 1000 hPa

Despliegue en FastMCP Cloud

  1. Subir este repositorio a GitHub

  2. Conectar en gofastmcp.com con tu cuenta de GitHub

  3. Configurar las variables de entorno (SUPABASE_URL, SUPABASE_KEY, DEVICE_ID)

  4. FastMCP Cloud genera una URL pública tipo https://tu-proyecto.fastmcp.app/mcp

Conexión desde Claude Desktop

{
  "mcpServers": {
    "estacion-meteorologica": {
      "url": "https://tu-proyecto.fastmcp.app/mcp"
    }
  }
}

Última actualización: Junio 2026

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that wraps the Ambient Weather REST API. Query your personal weather stations conversationally from Claude Code, Claude.ai, or any MCP-compatible client.
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Provides weather data including current conditions, forecasts, and summaries via Open-Meteo with no API key required, enabling natural language queries through an MCP interface.
    MIT
  • F
    license
    Not graded
    quality
    A
    maintenance
    MCP server for querying hydroponic sensor data stored in PostgreSQL/TimescaleDB. Provides tools to list tables, describe schemas, read recent sensor readings, fetch latest data, and perform time-series aggregations via natural language.
    -