melcloud-ac
An MCP server that enables LLMs to control Mitsubishi Electric AC units through MELCloud, supporting device listing, power on/off, temperature changes, and smart auto comfort mode.
README
MELCloud AC Control (Python CLI + MCP)
Simple project to control Mitsubishi Electric AC units through MELCloud.
Goal
This repository is designed as an LLM-ready execution backend. An LLM/agent can interpret natural language and call this project (CLI or MCP) to perform real AC actions.
It supports:
- MELCloud authentication
- device listing
- power on/off per room
- target temperature changes
1) Requirements
- Python 3.10+
- A MELCloud account with configured devices
Install dependencies:
cd integrations/melcloud-ac
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
2) Configuration
Create your local environment file:
cp .env.example .env
Fill in your credentials:
MELCLOUD_EMAIL=your_email
MELCLOUD_PASSWORD=your_password
MELCLOUD_LANGUAGE=0
# Optional: lock to a specific building/home name
# MELCLOUD_BUILDING=Home
⚠️ Never commit
.env.
3) Usage
Option A: CLI (simple)
List devices:
python control_ac.py list
Power control:
python control_ac.py power office on
python control_ac.py power office off
Set temperature:
python control_ac.py temp office 22
Smart automatic control (decides mode + target temperature from room temp):
python control_ac.py auto office
Custom thresholds/targets:
python control_ac.py auto office --cool-above 26 --heat-below 19 --cool-target 23 --heat-target 22 --neutral-target 23 --neutral-mode auto
Notes:
- Device resolution is alias-free and generic: the client fetches your MELCloud devices and picks the best match (with ambiguity safeguards).
- Temperature guardrail in client: 16°C to 31°C.
Option B: MCP server (for LLM clients)
An MCP wrapper is included in mcp_server.py with 4 tools:
list_devices()set_power(room, state)set_temperature(room, value)auto_comfort(room, ...)(smart mode + target temperature selection)
Run MCP server:
python mcp_server.py
Example MCP client configuration (generic):
{
"mcpServers": {
"melcloud-ac": {
"command": "python",
"args": ["/path/to/integrations/melcloud-ac/mcp_server.py"],
"env": {
"MELCLOUD_EMAIL": "...",
"MELCLOUD_PASSWORD": "...",
"MELCLOUD_LANGUAGE": "0"
}
}
}
}
Tip: you can either pass env in your MCP client config or rely on local .env.
4) Project structure
melcloud-ac/
├── control_ac.py # Main CLI
├── mcp_server.py # MCP wrapper for LLM tools
├── melcloud_client.py # MELCloud API client (auth + actions)
├── requirements.txt
├── .env.example
└── README.md
5) LLM integration examples
Typical flow:
- User says: “Turn on office AC”
- LLM maps intent to action (
power on,room=office) - LLM executes CLI or MCP tool
- LLM returns a friendly response
Natural language → CLI mapping examples:
-
“Turn on office AC”
python control_ac.py power office on
-
“Turn off living room AC”
python control_ac.py power sala off
-
“Set office AC to 22 degrees”
python control_ac.py temp office 22
-
“What devices are available?”
python control_ac.py list
Quick Python wrapper example:
import json
import subprocess
def ac_command(*args: str) -> dict:
proc = subprocess.run(
["python", "control_ac.py", *args],
capture_output=True,
text=True,
check=False,
)
try:
return json.loads(proc.stdout)
except json.JSONDecodeError:
return {"ok": False, "error": proc.stdout or proc.stderr}
print(ac_command("list"))
print(ac_command("power", "office", "on"))
print(ac_command("temp", "office", "22"))
Function-calling schema example:
{
"name": "ac_control",
"description": "Control MELCloud AC by room",
"parameters": {
"type": "object",
"properties": {
"action": { "type": "string", "enum": ["list", "power", "temp"] },
"room": { "type": "string" },
"state": { "type": "string", "enum": ["on", "off"] },
"value": { "type": "number" }
},
"required": ["action"]
}
}
6) Quick troubleshooting
- Login error: verify email/password and MELCloud account.
- Room not found: run
python control_ac.py listand use the exact device name. - Network timeout: check connectivity and MELCloud availability.
7) Next improvements (optional)
- consolidated status command
- mode support (
heat/cool/auto) and fan speed - automated tests (requests mocking)
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。
mcp-server-qdrant
这个仓库展示了如何为向量搜索引擎 Qdrant 创建一个 MCP (Managed Control Plane) 服务器的示例。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。