MCP Server
Eufy RoboVac MCP Server
A Model Context Protocol server for controlling Eufy RoboVac vacuum cleaners, enabling users to scan for devices, connect to them, and execute various cleaning commands through natural language.
1
GitHub Stars
8/24/2025
Last Updated
No Configuration
Please check the documentation below.
README Documentation
Eufy RoboVac MCP Server
A Model Context Protocol (MCP) server for controlling Eufy RoboVac devices. Built with TypeScript and Vite.
Setup
- Install dependencies:
npm install
- Get your device credentials:
- Device ID and Local Key from your Eufy Home app or network analysis
- Find your RoboVac's IP address on your network
Development
Run in development mode with hot reload:
npm run dev
Type checking:
npm run typecheck
Production
Build the project:
npm run build
Run the built server:
npm start
Available Tools
Connection & Setup
robovac_scan_network
- Scan local network for RoboVac devices (🆕 no credentials needed!)robovac_connect_discovered
- Connect to a discovered device using its IProbovac_connect
- Manual connection using device credentialsrobovac_auto_initialize
- Cloud-based discovery (⚠️ May not work due to API changes)
Basic Controls
robovac_start_cleaning
- Start cleaning cyclerobovac_stop_cleaning
- Stop cleaning cyclerobovac_return_home
- Return to charging dockrobovac_play
- Start/resume cleaningrobovac_pause
- Pause cleaningrobovac_find_robot
- Make the RoboVac beep to locate it
Advanced Controls
robovac_set_work_mode
- Set cleaning mode (AUTO, SMALL_ROOM, SPOT, EDGE, NO_SWEEP)robovac_set_clean_speed
- Set suction power (STANDARD, BOOST_IQ, MAX, NO_SUCTION)
Status Information
robovac_get_status
- Get current device status (legacy)robovac_get_battery
- Get battery levelrobovac_get_error_code
- Get current error coderobovac_get_work_mode
- Get current cleaning moderobovac_get_clean_speed
- Get current suction levelrobovac_get_work_status
- Get detailed work statusrobovac_get_play_pause
- Get play/pause state
Utility Functions
robovac_format_status
- Print formatted status to consolerobovac_get_all_statuses
- Get all status information at once
Usage with MCP Client
🆕 Easy Setup with Network Scan (Recommended)
- Scan your local network to find RoboVac devices:
robovac_scan_network()
This will show you:
- All devices with open Tuya/Eufy ports (6668, 6667, 443)
- Devices with Anker/Eufy MAC addresses (⭐ likely RoboVacs)
- IP addresses of potential devices
- Connect to a discovered device:
robovac_connect_discovered(ip="192.168.1.100", deviceId="your_device_id", localKey="your_local_key")
Getting Device Credentials
You still need the device ID and local key:
-
Try community tools:
eufy-security-client
or similar projects- Check GitHub for updated credential grabbers
-
Network traffic analysis:
- Monitor Eufy app network traffic
- Use tools like Wireshark or Charles Proxy
-
Router/firmware methods:
- Some routers log device information
- Check if your RoboVac firmware exposes credentials
Alternative Methods
Manual connection (if you have all credentials):
robovac_connect(deviceId="your_device_id", localKey="your_local_key", ip="192.168.1.100")
Cloud discovery (may not work due to API changes):
robovac_auto_initialize(email="your@email.com", password="your_password")
Control Your RoboVac
Once connected, use any control tools:
robovac_start_cleaning()
robovac_get_status()
robovac_return_home()
robovac_set_work_mode(mode="SPOT")
robovac_set_clean_speed(speed="MAX")
Quick Actions
Key Features
Model Context Protocol
Secure Communication
Real-time Updates
Open Source