daikin-remote-mcp
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., "@daikin-remote-mcpTurn on the AC and set it 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.
daikin-remote-mcp — web panel remote and MCP server for Daikin air conditioners
Local control for Daikin units with a WiFi module, over the unit's own HTTP API. No cloud, no Onecta account, no official app — everything stays on your network.
Two things sharing one client:
a web panel you open in a browser to control the unit from your computer;
an MCP server, so an assistant (Claude Code, Claude Desktop, …) can read the state and drive the unit through tools.
Requirements
Python 3.11+
a Daikin unit whose WiFi module exposes the local HTTP API (see Compatibility)
your machine on the same network as the unit
Related MCP server: Home Assistant MCP
Install
git clone <repo-url>
cd daikin-local
python3 -m venv .venv
.venv/bin/pip install -r requirements.txt # only needed for the MCP serverThe web panel needs nothing installed — it runs on the standard library.
Web panel
python3 web.py # http://127.0.0.1:8765
python3 web.py --port 9000
python3 web.py --bind 0.0.0.0 # reachable from the LAN, e.g. from a phoneType the unit's IP address and press Connect. The address is saved to
localStorage and appears as a chip; × removes it from the list. You can keep
several units and switch between them. The list is mirrored into devices.json,
so the MCP server sees the same units.
The panel shows the state, room and outdoor temperature, instantaneous and daily power use, and controls power, mode, temperature, fan, louvres and special modes.
Why a local server rather than a plain .html file: the Daikin module sends no
CORS headers. A static page could fire commands blind (mode: 'no-cors') but could
never read back the state, the temperature or the power figures. web.py proxies
the requests and solves that.
MCP server
claude mcp add daikin --scope user \
--env DAIKIN_HOST=192.168.1.50 \
-- /path/to/.venv/bin/python /path/to/server.pyOr, in any MCP client, through configuration:
{
"mcpServers": {
"daikin": {
"command": "/path/to/.venv/bin/python",
"args": ["/path/to/server.py"],
"env": { "DAIKIN_HOST": "192.168.1.50" }
}
}
}Tools: daikin_status, daikin_energy, daikin_set, daikin_set_special_mode,
daikin_list_devices, daikin_add_device, daikin_remove_device, daikin_discover.
When host is omitted, the default unit from devices.json or DAIKIN_HOST is used.
Layout
File | What it does |
| Protocol client (standard library only) |
| Device list, shared by the panel and the MCP server |
| Diagnostic logging, off by default |
| MCP server (stdio) |
| Local server: serves the page and proxies to the unit |
| The web panel |
Troubleshooting
DAIKIN_DEBUG=1 python3 web.py
tail -f daikin.logThe log records every request to the unit and its raw response, plus events from the
page if you set const DEBUG = true in web/index.html. Note: the log contains
the unit's IP, MAC address, SSID and id, which is why it is in .gitignore.
Protocol notes
Gathered by testing against a real unit (BRP069, adp_kind=2, firmware 4_0_3).
There is no public documentation for this API, so most of what follows was worked out
empirically. Other modules or firmware versions may behave differently.
The endpoints are plain
GETrequests with no authentication, returning comma-separatedkey=valuepairs with percent-encoded values.set_control_infowants the complete set (pow,mode,stemp,shum,f_rate,f_dir) on every write and resets whatever is missing. Hence the read-modify-write in the client.Each mode remembers its own setpoint in
dt1..dt7. When the mode changes without an explicit temperature, the client reuses the new mode's remembered value.Dry mode uses
dt2=M(no numeric setpoint), and fan mode may have nodt6field at all — in those modes the temperature is not adjustable.Energy comes in units of 100Wh.
datasfromget_week_poweris a legacy field that does not correlate with the rest; useget_week_power_exinstead (index 0 = today). Verified by comparing against the hourly series fromget_day_power_ex.Special modes are read from the
advfield, separated by/. The write parameters are not the codes fromadv:Mode
Code in
advHow to write it
powerful (on)
2set_special_mode?spmode_kind=1&set_spmode=1powerful (off)
set_special_mode?spmode_kind=1&set_spmode=0&en_powerful=0econo
12set_special_mode?spmode_kind=2&set_spmode=0|1streamer
13set_special_mode?en_streamer=0|1Switching powerful off requires
en_powerful=0alongsideset_spmode=0; without it the unit answersret=OKand does nothing.en_powerfulon its own returnsPARAM NG.The unit silently ignores some special-mode commands: it answers
ret=OKbutadvdoes not change, especially when one command follows another closely. The client resends untiladvconfirms (up to 4 attempts).powerfulandeconoare mutually exclusive.powerfulswitches itself off after about 20 minutes, and opens the louvres wide while it is active.ret=ADV NGshows up occasionally onset_control_info. It was observed once, with powerful active and a changed setpoint. The hypothesis that "powerful locks the setpoint" did not hold: a later temperature change with powerful on went through fine. The client does not switch any mode off on its own — it reports the refusal and leaves the decision to the user.Error codes seen:
PARAM NG(invalid or out-of-range parameter),ADV NG(conflict with a special mode).
Compatibility
Works with modules that expose the local HTTP API: BRP069A/B, BRP072A,
BRP15B61 "Airbase", SKYFi. The path prefix (/ or /skyfi) is detected
automatically.
It does not work with BRP069C and newer, which use HTTPS with a token, nor with the Onecta cloud. In that case the client returns an explicit message rather than a timeout.
License
MIT — see LICENSE.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
No tool schema history has been recorded yet.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Drive WhatsApp from any MCP client: pair devices, send text and media, manage contacts and groups.
Self-hosted MCP gateway: turn any API, database or MCP server into AI connectors — no code.
- ZapierOAuthcom.zapier
Hosted MCP server connecting AI assistants to 9,000+ apps and 40,000+ actions via Zapier.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables control of OXII smart home devices through the Model Context Protocol, supporting device switching, air conditioner control, cronjobs, and room scenarios. Integrates with chatbots and MCP-compatible clients for natural language home automation.-
- AlicenseNot gradedqualityDmaintenanceEnables control and monitoring of Home Assistant smart home devices through MCP protocol. Automatically manages authentication tokens and provides simplified tools for device discovery, switch control, and light brightness adjustment.MIT
- FlicenseNot gradedqualityFmaintenanceEnables AI assistants to control and query smart home devices through Homey Pro via an HTTP-based MCP server.2-
- AlicenseNot gradedqualityAmaintenanceEnables control of local Xiaomi smart home devices via MCP, allowing reading real-time status and setting properties through natural language, without relying on the Xiaomi cloud.MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- 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/himnosiss/daikin-remote-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server