Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
TRANSPORTNoTransport used by the server. Set to streamable-http to serve HTTP on port 8002; defaults to stdio.stdio
SMARTPOT_API_URLYesURL of the SmartPot API the MCP server should call (e.g. http://localhost:8091).
MCP_ALLOWED_HOSTSNoAllowed hosts used for DNS rebinding protection.
SMARTPOT_API_TOKENNoSmartPot connection token (spt_…) used in stdio mode to authenticate to SmartPot-API. In HTTP mode the client sends this token per request as an Authorization: Bearer header instead.
MCP_ALLOWED_ORIGINSNoAllowed origins used for DNS rebinding protection.

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_accountA

Nombre y correo de la cuenta de SmartPot a la que pertenece esta conexión.

list_cropsA

Lista los cultivos de la cuenta con tipo, forma, salud, estado del dispositivo y última lectura.

get_cropA

Devuelve el detalle de un cultivo: lugar, automatización, salud y última lectura.

create_cropB

Crea un cultivo. VIRTUAL lo alimenta el simulador; REAL devuelve una sola vez las credenciales MQTT del dispositivo, que el servidor oculta al modelo.

update_cropA

Cambia nombre, tipo, forma o lugar del cultivo. Los campos omitidos conservan su valor actual.

delete_cropA

Elimina el cultivo con sus lecturas, comandos, actuadores y avisos. No se puede deshacer.

set_crop_automationB

Activa o pausa el agente que acciona los actuadores del cultivo según la IA.

get_crop_weatherB

Clima actual del lugar del cultivo (requiere que el cultivo tenga ubicación).

get_latest_readingC

Última lectura: temperatura, humedad, luz, pH, TDS, presión y humedad del sustrato.

get_readings_historyB

Lecturas del cultivo en un rango de fechas, de la más reciente a la más antigua.

get_readings_summaryC

Mínimo, promedio y máximo de cada variable en las últimas horas.

record_readingC

Registra una medición tomada a mano (al menos una variable).

list_actuatorsA

Actuadores del cultivo (bomba, luz UV, ventilador, humidificador, dosificadores) y si están encendidos.

send_actuator_commandB

Enciende o apaga un actuador por MQTT. Mueve hardware real en cultivos REAL: confirma antes.

send_bulk_commandB

Acciona el mismo tipo de actuador en varios cultivos; devuelve enviados, omitidos y fallidos.

list_commandsB

Comandos recientes del cultivo con su estado (PENDING, SENT, EXECUTED, FAILED, EXPIRED) y origen.

get_crop_insightsB

Diagnóstico de SmartPot-AI: índice de salud 0-100, conclusiones, acciones sugeridas y pronóstico.

get_crop_profilesB

Rangos óptimos recomendados por tipo de cultivo.

get_learning_statusB

Estado del aprendizaje continuo de la IA (muestras y versión de modelos).

get_overviewB

Resumen de la cuenta: cultivos, salud, dispositivos en línea, comandos y avisos.

get_metric_seriesB

Promedios por intervalo de una variable para todos los cultivos (agregados de TimescaleDB).

get_fleetC

Comparativa de todos los cultivos de la cuenta.

list_notificationsC

Avisos de la cuenta (alertas de la IA, comandos, dispositivos).

get_unread_countB

Cantidad de notificaciones sin leer.

mark_notification_readC

Marca una notificación como leída.

Prompts

Interactive templates invoked by user choice

NameDescription
agronomic_diagnosisEvalúa un cultivo con su telemetría, el diagnóstico de la IA y el perfil de la especie.
emergency_triageGuía para atender una alerta crítica (calor, pH fuera de rango, sustrato seco).
fleet_daily_summaryInforme breve del estado de todos los cultivos.

Resources

Contextual data attached and managed by the client

NameDescription
crop_profilesRangos óptimos por tipo de cultivo (público).
healthEstado de la API y sus dependencias (base, caché, broker, IA, simulador); público.

TDQS

B3.4/5.0

Scored across 25 tools

Disambiguation4/5

Most tools map to a distinct resource+action (crop CRUD, actuators, notifications, AI insights), but the reading cluster — get_latest_reading, get_readings_history, get_readings_summary, get_metric_series — has four similar-sounding retrieval tools whose boundaries (single crop vs all crops, raw vs aggregated) require reading descriptions carefully. Similarly get_crop vs get_overview vs get_fleet can be confused at a glance, though descriptions do disambiguate.

Naming Consistency5/5

All 25 tools use consistent snake_case verb_noun form with a small predictable verb set (get_/list_/create_/update_/delete_/set_/send_/record_/mark_). Singular/plural nouns align with whether the tool returns one or many resources, reinforcing the pattern.

Tool Count3/5

25 tools is at the heavy end for a single IoT/grow-management server; while the domain is broad (crops, readings, actuators, commands, AI, notifications), several tools could plausibly be folded together (e.g. get_unread_count into list_notifications, get_fleet into get_overview). It is defensible but borderline bloated.

Completeness4/5

Crop lifecycle (create/get/update/delete), readings (record, latest, history, summary, series), actuators and commands, AI insights/learning, and notifications are all covered, giving a solid end-to-end surface. Minor gaps exist: no way to cancel or retry a PENDING command, no bulk mark-all-read for notifications, and no credential rotation for REAL devices.

Maintenance

ActivityMaintained
ResponsivenessNo issues