IoTaWatt MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| IOTAWATT_HOST | Yes | The IoTaWatt device address, given as an IP address, hostname, or full URL (e.g. 192.168.1.50, iotawatt.local, or https://iotawatt.example.net). Can also be provided with the --host flag. | |
| IOTAWATT_USER | No | Account to use for authentication. Defaults to 'admin'. Set to 'user' to use the device's restricted account instead. Optional. | |
| IOTAWATT_PASSWORD | No | Password for a password-protected IoTaWatt device. Optional. |
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
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| discoverA | List all IoTaWatt inputs (physical CTs/VTs) and calculated outputs with their units. Always call this first to learn what channels are available before querying. |
| statusA | IoTaWatt device status: firmware version, uptime, WiFi SSID/RSSI/IP, heap memory, AC frequency, and data log ranges. |
| get_configB | Get the full IoTaWatt device configuration from /config.txt: input channel definitions (names, CT models, calibration factors) and output scripts showing how calculated values are derived. |
| snapshotA | Latest instantaneous power: a single averaged value over the last 5 minutes. Defaults to all discovered output channels. Optionally restrict to specific channels. |
| queryA | Flexible IoTaWatt time-series query against the on-device log. Use discover first to know valid channel names. Results come back one row per line. The device stops sampling while it answers, so prefer a few well-scoped queries. |
| energy_by_intervalB | Energy consumption (Wh) broken down by interval for all or selected output channels. Use for today's hourly breakdown, daily totals, etc. |
| watchA | Live view at 1 second resolution, finer than the stored log. Polls the device once a second for the given number of seconds and returns one CSV row per second with the watts on each input (volts for a voltage input). Use it to catch an appliance being switched on or off right now. The call takes as long as the duration asked for. |
| sample_waveformA | Capture one AC cycle of raw voltage and current samples (about 640 pairs) from a single CT input and describe the shape of the current: crest factor, 3rd/5th/7th harmonics, distortion and phase lag. This shows what kind of load is on the circuit right now: a heater draws a clean sine in phase with voltage, a motor lags, electronics draw a peaky current rich in harmonics. It is a snapshot of everything on that CT, not of one appliance. Values are raw ADC counts, not amps or volts, and have no CT/VT phase correction, so angles are approximate. Needs the admin user on a password-protected device. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 8 tools
Each tool targets a distinct access mode or temporal resolution: device status, channel discovery, configuration, instantaneous snapshot, flexible historical query, aggregated energy, live 1-second polling, and raw waveform capture. Although all are read operations, the scopes are clearly differentiated in the descriptions.
Mixed conventions are present: single-word nouns/verbs (status, discover, snapshot, query, watch) alongside verb_noun (get_config, sample_waveform) and noun_prep_noun (energy_by_interval). All names are lowercase snake_case and readable, but there is no single predictable pattern.
Eight tools is well-scoped for an IoTaWatt device monitoring server. Each tool covers a distinct access pattern—status/config discovery, historical query, aggregated energy, live monitoring, and waveform analysis—with no obvious filler.
The surface covers device status, channel discovery, configuration read, raw and aggregated historical queries, live monitoring, and detailed waveform analysis, which is strong for a monitoring-oriented server. Minor gap: there are no tools to modify configuration, reboot the device, or manage firmware/logs, though these may be intentionally out of scope.