Ecovacs Mcp
/install ecovacs-mcp
Ecovacs Robot Vacuum Control
Control Ecovacs robot vacuums through the official Ecovacs MCP server. This is the first official MCP integration for robotic cleaning devices.
Prerequisites
- API Key (
ECO_API_KEY) from open.ecovacs.com uvx(recommended) orpython3withecovacs-robot-mcpinstalled- A robot registered in the Ecovacs mobile app, bound to the same account
MCP Server Configuration
The MCP server entry should look like this in your settings:
{
"ecovacs_mcp": {
"command": "uvx",
"args": ["--from", "ecovacs-robot-mcp", "python", "-m", "ecovacs_robot_mcp"],
"env": {
"ECO_API_KEY": "YOUR_API_KEY",
"ECO_API_URL": "https://open.ecovacs.com"
}
}
}
Regional endpoints:
- International:
https://open.ecovacs.com - China mainland:
https://open.ecovacs.cn
MCP Tools Reference
The server exposes four tools. All device operations use a nickname parameter that supports fuzzy matching — you don't need the exact name.
get_device_list
Lists all robots bound to the account. No parameters. Always call this first to discover available robots and their nicknames.
start_cleaning
Controls cleaning operations.
| Parameter | Values | Description |
|---|---|---|
nickname |
string | Robot name (fuzzy match) |
act |
s |
Start cleaning |
act |
p |
Pause cleaning |
act |
r |
Resume cleaning |
act |
h |
Stop cleaning |
control_recharging
Controls dock/charging operations.
| Parameter | Values | Description |
|---|---|---|
nickname |
string | Robot name (fuzzy match) |
act |
go-start |
Return to charging dock |
act |
stopGo |
Cancel return to dock |
query_working_status
Returns real-time robot state. No input besides nickname. Returns three status fields:
cleanSt— Cleaning state (sweeping, mopping, paused, idle, mapping)chargeSt— Charging state (returning to dock, docking, charging, idle)stationSt— Dock station state (washing mop, drying, dust collection, idle)
Operating Guidance
- Always list devices first — call
get_device_listbefore any operation to get the correct nickname. Cache the nickname for the session. - Confirm actions — after starting or stopping cleaning, call
query_working_statusto verify the command took effect. - Standard workflows:
- Start cleaning: list devices →
start_cleaning(act:s) → check status - Send home:
control_recharging(act:go-start) → check status - Pause and resume:
start_cleaning(act:p) → later (act:r)
- Start cleaning: list devices →
- Natural language mapping:
- "vacuum the house" / "clean the floor" / "start cleaning" →
start_cleaningact:s - "send it back" / "dock" / "go home" / "charge" →
control_rechargingact:go-start - "stop" / "pause" →
start_cleaningact:porh - "what's it doing?" / "is it charging?" →
query_working_status
- "vacuum the house" / "clean the floor" / "start cleaning" →
Troubleshooting
- No devices found — robot must be set up in the Ecovacs app and bound to the same account used for the API key
- Authentication errors — verify
ECO_API_KEYis correct andECO_API_URLmatches your region - Server won't start — ensure
uvxis available (pip install uv), or install directly:pip install ecovacs-robot-mcp
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install ecovacs-mcp - After installation, invoke the skill by name or use
/ecovacs-mcp - Provide required inputs per the skill's parameter spec and get structured output
What is Ecovacs Mcp?
Control Ecovacs robot vacuums (DEEBOT series) via the official Ecovacs MCP server — start/stop/pause cleaning, send the robot to its dock, check battery and... It is an AI Agent Skill for Claude Code / OpenClaw, with 257 downloads so far.
How do I install Ecovacs Mcp?
Run "/install ecovacs-mcp" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is Ecovacs Mcp free?
Yes, Ecovacs Mcp is completely free, licensed under MIT-0. You can download, install and use it at no cost.
Which platforms does Ecovacs Mcp support?
Ecovacs Mcp is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created Ecovacs Mcp?
It is built and maintained by Federico Liva (@f-liva); the current version is v1.0.0.