echonetlite-mcp
This MCP server enables monitoring and control of ECHONETLite-compatible home automation devices (primarily HVAC/air conditioners) over a local network.
Device Discovery
discover_devices— Scan the local network via multicast to find all ECHONETLite devices, probing Node Profiles for manufacturer, product code, UID, and EOJ instances.
HVAC Status & Monitoring
get_device_status— Retrieve the full status of an air conditionerget_temperatures— Read room and outdoor temperature sensor valuesget_humidity— Read current room relative humidityReal-time asynchronous updates via multicast listeners and
device://statusresource
HVAC Control
set_operation— Turn the device ON or OFFset_operating_mode— Switch between auto, cool, heat, dry, or fan_onlyset_temperature— Set target temperature (0–50°C)set_fan_speed— Adjust fan speed: auto or levels 1–8set_airflow_vertical— Control vertical vane positionset_airflow_horizontal— Control horizontal vane position (28 options)set_swing_mode— Configure swing (not-used, vertical, horizontal, or both)set_auto_direction— Set automatic airflow directionset_silent_mode— Choose normal, high-speed, or silent operationset_power_saving— Toggle power-saving mode
Generic ECHONETLite Property Introspection
query_epc/set_epc— Query or set any EPC property on any EOJ instanceget_property_maps— Retrieve STATMAP/SETMAP/GETMAP with MRA-based namesget_epc_definition— Look up MRA definitions (enums, bitmaps, level ranges) without querying the device
Notes
All tools accept an optional
hostparameter to target a specific device IPA Lite Mode is available that restricts tools to generic EPC introspection only
Allows control of Mitsubishi air conditioners via ECHONETLite, including setting operation mode, temperature, fan speed, airflow direction, and reading temperature/humidity sensor data.
Provides tools for controlling Panasonic air conditioners via ECHONETLite, including setting operation mode, temperature, fan speed, airflow direction, and reading temperature/humidity sensor data.
Enables control of Toshiba air conditioners via ECHONETLite, including setting operation mode, temperature, fan speed, airflow direction, and reading temperature/humidity sensor data.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@echonetlite-mcpturn on the air conditioner and set to 24 degrees"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
echonetlite-mcp
An MCP (Model Context Protocol) server for ECHONETLite home automation — control air conditioners, discover devices, and read sensors via the Model Context Protocol.
ECHONETLite is a Japanese IoT protocol widely used in smart home devices, particularly HVAC systems by major manufacturers like Daikin, Panasonic, Mitsubishi Electric, and Toshiba.
Features
🌡️ Real-time HVAC monitoring — temperature, humidity, operating status
❄️ Full climate control — mode, fan speed, airflow direction, swing
🔍 Network device discovery — find ECHONETLite devices via multicast UDP
🔬 Node Profile probing — discover manufacturer, product code, UID, and all EOJ instances on any device
⚡ Real-time notifications — async updates from device multicast listeners
📖 MRA enrichment — Machine Readable Index integration for property names, descriptions, and value decoding
🔬 EPC introspection — query property maps (STATMAP/SETMAP/GETMAP) with MRA-based names
🏷️ Human-readable values — raw EPC values decoded to human-friendly format using MRA definitions
🧩 EPC element parsing — parse complex object/array-type EPC values into named elements with MRA definitions
🎯 Multi-EPC queries — query multiple EPC codes in a single request
🔧 Generic EOJ support — set/query any ECHONETLite object by group/class/instance codes
📦 TypeScript-first — full type definitions included
🔌 MCP compatible — works with any MCP client (Claude Desktop, LM Studio, VS Code extensions, etc.)
Related MCP server: OXII Smart Home MCP Server
Prerequisites
Node.js 18+
An ECHONETLite-compatible device on the same local network
Installation
npm install echonetlite-mcpOr use it as an MCP server directly:
git clone https://github.com/scottyphillips/echonetlite-mcp.git
cd echonetlite-mcp
npm install
npm run buildConfiguration
The server defaults to communicating with a device at 192.168.1.6 on UDP port 3610, using multicast address 224.0.23.0:3610 for discovery and notifications.
Setting the Default Device IP
Option A: Environment variable (recommended)
# Windows CMD
set ECHONET_DEFAULT_HOST=192.168.1.10 && node dist/index.js
# PowerShell
$env:ECHONET_DEFAULT_HOST="192.168.1.10"; node dist/index.js
# Linux/macOS
ECHONET_DEFAULT_HOST=192.168.1.10 node dist/index.jsOption B: Edit config.ts
export const DEFAULT_HOST = '192.168.1.10'; // Change to your device IPLite Mode (Restricted Tool Set)
Enable Lite Mode to restrict exposed tools to a minimal subset. In lite mode, only these 6 tools are available:
Tool | Description |
| Discover all ECHONETLite devices on the local network |
| Active Node Profile probing of a specific device |
| Generic EPC setter for any EOJ instance |
| Query STATMAP/SETMAP/GETMAP with MRA names |
| Query EPC codes from device with decoded values |
| Get MRA definition for EPC codes without querying |
All HVAC-specific tools (get_device_status, set_operation, set_temperature, etc.) are hidden in lite mode.
Enable Lite Mode:
# Windows CMD
set ECHONET_LITE_MODE=true && node dist/index.js
# PowerShell
$env:ECHONET_LITE_MODE="true"; node dist/index.js
# Linux/macOS
ECHONET_LITE_MODE=true node dist/index.jsWhen lite mode is enabled, the server logs (Mode: LITE) on startup. When disabled (default), it logs (Mode: FULL) with all tools available.
Per-Tool Override
Every tool accepts an optional host parameter to override the default for that specific call:
{ "name": "get_device_status", "arguments": { "host": "192.168.1.20" } }Running the Server
# Build first
npm run build
# Run (stdio transport)
node dist/index.jsThe server communicates via stdio, making it compatible with any MCP client.
Integration with AI Clients
Claude Desktop
Add to your Claude Desktop MCP configuration (claude_desktop_config.json):
{
"mcpServers": {
"echonetlite": {
"command": "node",
"args": ["/path/to/echonetlite-mcp/dist/index.js"],
"env": {
"ECHONET_DEFAULT_HOST": "192.168.1.6"
}
}
}
}LM Studio
LM Studio supports MCP servers via stdio transport. Create or edit the MCP config file:
Windows: %APPDATA%\lm-studio\mcp_config.json
macOS/Linux: ~/.config/lm-studio/mcp_config.json
{
"mcpServers": {
"echonetlite-mcp": {
"command": "node",
"args": ["C:\\path\\to\\echonetlite-mcp\\dist/index.js"],
"env": {
"ECHONET_DEFAULT_HOST": "192.168.1.6"
}
}
}
}VS Code MCP Extension
Configure in your VS Code MCP extension settings:
{
"mcp.servers": [
{
"name": "echonetlite",
"command": "node",
"args": ["/path/to/echonetlite-mcp/dist/index.js"],
"env": {
"ECHONET_DEFAULT_HOST": "192.168.1.6"
}
}
]
}Available Tools
Note: When
ECHONET_LITE_MODE=true, onlydiscover_devices,discover_nodes,set_epc,get_property_maps,query_epc, andget_epc_definitionare available.
Device Discovery
Tool | Description | Parameters |
| Discover all ECHONETLite devices on the local network via multicast |
|
| Active Node Profile probing of a specific device — discovers manufacturer, product code, UID, and all EOJ instances with MRA enrichment |
|
HVAC Control (Full Mode Only)
Tool | Description | Parameters |
| Get full status of the HVAC device |
|
| Turn HVAC ON or OFF |
|
| Set operating mode |
|
| Set target temperature |
|
| Set air flow rate |
|
| Set vertical vane position |
|
| Set horizontal vane position |
|
| Set swing mode function |
|
| Set automatic direction mode |
|
| Set silent operation mode |
|
| Set power-saving mode |
|
Sensor Readings (Full Mode Only)
Tool | Description | Parameters |
| Get room + outdoor temperatures |
|
| Get room humidity |
|
EPC Introspection & MRA Lookup (Available in All Modes)
Tool | Description | Parameters |
| Query STATMAP/SETMAP/GETMAP with MRA-based property names and descriptions |
|
| Query one or more EPC codes from device, returns raw + human-readable decoded values |
|
| Get MRA definition for EPC codes without querying the device — includes enum values, bitmaps, level ranges, $ref-resolved definitions |
|
| Generic EPC setter — set any writable property on any EOJ instance by hex value |
|
| Parse object/array-type EPC values into named elements with raw hex bytes per element — use after querying EPC data (e.g., 0xE2) to get structured breakdown |
|
Available Resources
Resource URI | Description |
| Current HVAC status (updated via async notifications from multicast listener) |
| Device property map (GETMAP, SETMAP, NTFMAP) |
EPC Reference Table
EPC | Property | Access | Values |
0x80 | Operation status | Set/Get | 0x30=ON, 0x31=OFF |
0x8F | Power-saving operation | Set/Get | Saving/Normal |
0xA0 | Air flow rate (fan speed) | Set/Get | Auto=0x41, Levels=0x31-0x38 |
0xA1 | Automatic airflow direction | Set/Get | Auto/Non-auto/Auto-vert/Auto-horiz |
0xA3 | Air swing mode | Set/Get | Not-used/Vert/Horiz/Vert-horiz |
0xA4 | Airflow direction (vertical) | Set/Get | Upper/Upper-central/Central/Lower-central/Lower |
0xA5 | Airflow direction (horizontal) | Set/Get | 28 positions (rc-right, left-lc, center, etc.) |
0xB0 | Operation mode | Set/Get | Auto=0x41, Cool=0x42, Heat=0x43, Dry=0x44, Fan-only=0x45 |
0xB1 | Automatic temperature control | Set/Get | — |
0xB2 | Normal/High-speed/Silent operation | Set/Get | — |
0xB3 | Set temperature | Set/Get | 0-50°C (signed int) |
0xB4 | Set humidity in dehumidifying mode | Set/Get | — |
0xBA | Room relative humidity | Get | Percentage |
0xBB | Room temperature | Get | -127 to 125°C (signed int) |
0xBE | Outdoor air temperature | Get | Signed int |
0xC0 | Ventilation function | Set/Get | — |
0xC1 | Humidifier function | Set/Get | — |
0xCC | Special function setting | Set/Get | Clothes dryer, Mite/mold control, etc. |
0xCF | Air purification mode | Set/Get | — |
0x9D | STATMAP (access capability) | Get | Property access map |
0x9E | SETMAP (settable properties) | Get | Settable property map |
0x9F | GETMAP (readable properties) | Get | Readable property map |
Example Prompts
Try these natural language prompts with your MCP client:
"Turn on my air conditioner"→ callsset_operationwithoperation="on"(Full Mode)"Set temperature to 23 degrees"→ callsset_temperaturewithtemperature=23"Switch to cooling mode"→ callsset_operating_modewithmode="cool""What are the current temperatures?"→ callsget_temperatures"Find all ECHONET devices on my network"→ callsdiscover_devices"Set fan speed to level 3"→ callsset_fan_speedwithspeed="level3""What EPC codes can I query on this device?"→ callsget_property_maps"Get the current operation status and target temperature"→ callsquery_epcwithepcs=["0x80", "0xB3"]"What settings are available for operating mode?"→ callsget_epc_definitionwithepcs=["0xB0"]"Discover all nodes on 192.168.1.6"→ callsdiscover_nodeswith full MRA enrichment"Parse the EPC 0xE2 value 0x00 0x0A 0xFF 0xFF for EOJ 0x02 0x88 0x01"→ callsparse_epc_elementsto split raw bytes into named elements
Project Structure
echonetlite-mcp/
├── src/
│ ├── index.ts # MCP server entry point & tool definitions (~1200 lines)
node dist/index.jsMRA Integration
This server includes full MRA (Machine Readable Index) data integration:
Property names & descriptions — human-readable labels for each EPC code from MRA definitions
Value decoding — raw hex values decoded to meaningful strings/numbers using MRA type schemas
Enum/bitmap support — full enumeration of possible values with $ref resolution
Level ranges & number formats — signed/unsigned integers, fixed-point decimals
$ref resolution — external definition references from definitions.json resolved automatically
MRA enrichment in all tools —
query_epc,get_property_maps,get_epc_definitionreturn enriched responses
The MRA data enables intelligent discovery of what settings are available for any EPC code without needing to query the device first.
References
License
MIT License — see LICENSE for details.
Support
For issues, questions, or contributions, please open an issue on GitHub.

Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Appeared in Searches
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/scottyphillips/echonetlite-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server