# 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 cleaning status, list devices. Use this skill whenever the user mentions their robot vacuum, DEEBOT, Ecovacs, floor cleaning robot, or wants to vacuum, mop, clean the house, check if the vacuum is charging, or send it home — even if they don't say "Ecovacs" explicitly.

- Skill: `f-liva/ecovacs-mcp` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds@latest add f-liva/ecovacs-mcp`
- Raw SKILL.md: https://api.skillmd.com/api/skills/f-liva/ecovacs-mcp/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: f-liva (https://skillmd.com/u/f-liva)
- Updated: 2026-09-10
- Page: https://skillmd.com/skills/f-liva/ecovacs-mcp

---


# Ecovacs Robot Vacuum Control

Control Ecovacs robot vacuums through the [official Ecovacs MCP server](https://github.com/ecovacs-ai/ecovacs-mcp). This is the first official MCP integration for robotic cleaning devices.

## Prerequisites

- **API Key** (`ECO_API_KEY`) from [open.ecovacs.com](https://open.ecovacs.com)
- **`uvx`** (recommended) or `python3` with `ecovacs-robot-mcp` installed
- 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:

```json
{
  "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

1. **Always list devices first** — call `get_device_list` before any operation to get the correct nickname. Cache the nickname for the session.
2. **Confirm actions** — after starting or stopping cleaning, call `query_working_status` to verify the command took effect.
3. **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`)
4. **Natural language mapping:**
   - "vacuum the house" / "clean the floor" / "start cleaning" → `start_cleaning` act: `s`
   - "send it back" / "dock" / "go home" / "charge" → `control_recharging` act: `go-start`
   - "stop" / "pause" → `start_cleaning` act: `p` or `h`
   - "what's it doing?" / "is it charging?" → `query_working_status`

## 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_KEY` is correct and `ECO_API_URL` matches your region
- **Server won't start** — ensure `uvx` is available (`pip install uv`), or install directly: `pip install ecovacs-robot-mcp`

