机器人吸尘器控制服务器

一个用于控制Eufy RoboVac设备的模型上下文协议(MCP)服务器,提供网络扫描、设备连接和多种清洁控制功能。

  • by appleton
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 appleton/sam

使用说明

Eufy RoboVac MCP服务器

用于控制Eufy RoboVac设备的模型上下文协议(MCP)服务器。使用TypeScript和Vite构建。

设置

  1. 安装依赖项:
npm install
  1. 获取您的设备凭据:
    • 来自Eufy Home应用程序或网络分析的设备ID和本地密钥
    • 在您的网络上查找RoboVac的IP地址

发展

在热重载的开发模式下运行:

npm run dev

类型检查:

npm run typecheck

生产

构建项目:

npm run build

运行内置服务器:

npm start

可用工具

连接和设置

  • robovac_scan_network -扫描本地网络以查找RoboVac设备(🆕 无需凭据!)
  • robovac_connect_discovered -使用IP连接到已发现的设备
  • robovac_connect -使用设备凭据手动连接
  • robovac_auto_initialize -基于云的发现(⚠️ 由于API更改,可能无法工作)

基本控制

  • robovac_start_cleaning -开始清洁循环
  • robovac_stop_cleaning -停止清洁循环
  • robovac_return_home -返回充电座
  • robovac_play -开始/恢复清洁
  • robovac_pause -暂停清洁
  • robovac_find_robot -让RoboVac发出蜂鸣声以定位它

高级控制

  • robovac_set_work_mode -设置清洁模式(AUTO、SMALL_ROOM、SPOT、EDGE、NO_SWEEP)
  • robovac_set_clean_speed -设置抽吸功率(标准、增压、最大、NO_抽吸)

状态信息

  • robovac_get_status -获取当前设备状态(旧版)
  • robovac_get_battery -获取电池电量
  • robovac_get_error_code -获取当前错误代码
  • robovac_get_work_mode -获取当前清洁模式
  • robovac_get_clean_speed -获取当前吸入水平
  • robovac_get_work_status -获取详细的工作状态
  • robovac_get_play_pause -获取播放/暂停状态

工具函数

  • robovac_format_status -将格式化状态打印到控制台
  • robovac_get_all_statuses -一次获取所有状态信息

使用MCP客户端

🆕 使用网络扫描轻松设置(推荐)

  1. 扫描您的本地网络以查找RoboVac设备:
robovac_scan_network()

这将向您展示:

  • 所有具有开放Tuya/Eufy端口的设备(6668、6667、443)
  • 具有Anker/Eyfy MAC地址的设备(⭐ 可能是RoboVacs)
  • 潜在设备的IP地址
  1. 连接到已发现的设备:
robovac_connect_discovered(ip="192.168.1.100", deviceId="your_device_id", localKey="your_local_key")

获取设备凭据

您仍然需要设备ID和本地密钥:

  1. 尝试社区工具:

    • eufy-security-client 或类似项目
    • 检查GitHub上更新的凭证抓取器
  2. 网络流量分析:

    • 监控Eufy应用程序网络流量
    • 使用Wireshark或Charles Proxy等工具
  3. 路由器/固件方法:

    • 某些路由器记录设备信息
    • 检查您的RoboVac固件是否暴露凭据

替代方法

手动连接(如果您拥有所有凭据):

robovac_connect(deviceId="your_device_id", localKey="your_local_key", ip="192.168.1.100")

云发现(可能由于API更改而无法工作):

robovac_auto_initialize(email="your@email.com", password="your_password")

控制您的RoboVac

连接后,使用任何控制工具:

robovac_start_cleaning()
robovac_get_status()
robovac_return_home()
robovac_set_work_mode(mode="SPOT")
robovac_set_clean_speed(speed="MAX")