Skip to main content
Glama
appleton
by appleton

robovac_set_work_mode

Configure the cleaning mode for Eufy RoboVac, enabling users to select specific cleaning patterns such as AUTO, SMALL_ROOM, SPOT, EDGE, or NO_SWEEP.

Instructions

Set the cleaning mode of the robovac

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
modeYesThe work mode to set

Implementation Reference

  • Handler implementation for the robovac_set_work_mode tool. Ensures RoboVac is initialized and calls setWorkMode(mode) on the RoboVac instance with the provided mode argument.
    case "robovac_set_work_mode": this.ensureRoboVacInitialized(); await this.robovac!.setWorkMode(args?.mode as WorkMode); return { content: [ { type: "text", text: `Work mode set to: ${args?.mode}`, }, ], };
  • Schema definition and registration of the robovac_set_work_mode tool in the ListTools handler, specifying the input schema with 'mode' parameter as a string enum.
    name: "robovac_set_work_mode", description: "Set the cleaning mode of the robovac", inputSchema: { type: "object", properties: { mode: { type: "string", description: "The work mode to set", enum: ["AUTO", "SMALL_ROOM", "SPOT", "EDGE", "NO_SWEEP"], }, }, required: ["mode"], }, },
  • Helper method used by the handler to ensure the RoboVac instance is initialized before executing commands.
    private ensureRoboVacInitialized(): void { if (!this.robovac) { throw new Error( "RoboVac not initialized. Please run robovac_auto_initialize or robovac_connect first." ); }
  • src/server.ts:115-386 (registration)
    Overall tool registration in the ListToolsRequestSchema handler where robovac_set_work_mode is listed among other tools.
    this.server.setRequestHandler( ListToolsRequestSchema, async (): Promise<{ tools: Tool[] }> => ({ tools: [ { name: "robovac_set_work_mode", description: "Set the cleaning mode of the robovac", inputSchema: { type: "object", properties: { mode: { type: "string", description: "The work mode to set", enum: ["AUTO", "SMALL_ROOM", "SPOT", "EDGE", "NO_SWEEP"], }, }, required: ["mode"], }, }, { name: "robovac_set_clean_speed", description: "Set the suction speed of the robovac", inputSchema: { type: "object", properties: { speed: { type: "string", description: "The cleaning speed to set", enum: ["STANDARD", "BOOST_IQ", "MAX", "NO_SUCTION"], }, }, required: ["speed"], }, }, { name: "robovac_play", description: "Start/resume robovac cleaning", inputSchema: { type: "object", properties: {}, }, }, { name: "robovac_pause", description: "Pause robovac cleaning", inputSchema: { type: "object", properties: {}, }, }, { name: "robovac_find_robot", description: "Make the robovac beep to help locate it", inputSchema: { type: "object", properties: { enable: { type: "boolean", description: "Whether to enable or disable find robot mode", default: true, }, }, }, }, { name: "robovac_get_error_code", description: "Get the current error code of the robovac", inputSchema: { type: "object", properties: { force: { type: "boolean", description: "Force refresh of cached data", default: false, }, }, }, }, { name: "robovac_get_work_mode", description: "Get the current work mode of the robovac", inputSchema: { type: "object", properties: { force: { type: "boolean", description: "Force refresh of cached data", default: false, }, }, }, }, { name: "robovac_get_clean_speed", description: "Get the current cleaning speed of the robovac", inputSchema: { type: "object", properties: { force: { type: "boolean", description: "Force refresh of cached data", default: false, }, }, }, }, { name: "robovac_get_work_status", description: "Get the current work status of the robovac", inputSchema: { type: "object", properties: { force: { type: "boolean", description: "Force refresh of cached data", default: false, }, }, }, }, { name: "robovac_get_play_pause", description: "Get the current play/pause state of the robovac", inputSchema: { type: "object", properties: { force: { type: "boolean", description: "Force refresh of cached data", default: false, }, }, }, }, { name: "robovac_format_status", description: "Get a formatted display of all robovac status information", inputSchema: { type: "object", properties: {}, }, }, { name: "robovac_get_all_statuses", description: "Get all status information from the robovac at once", inputSchema: { type: "object", properties: { force: { type: "boolean", description: "Force refresh of cached data", default: false, }, }, }, }, { name: "robovac_auto_initialize", description: "Automatically discover and initialize the first RoboVac device found", inputSchema: { type: "object", properties: { email: { type: "string", description: "Your Eufy account email address", }, password: { type: "string", description: "Your Eufy account password", }, deviceIndex: { type: "number", description: "Index of device to connect to (0 for first device)", default: 0, }, }, required: ["email", "password"], }, }, { name: "robovac_connect_discovered", description: "Connect to a discovered RoboVac device by IP (requires device ID and local key)", inputSchema: { type: "object", properties: { ip: { type: "string", description: "IP address of the discovered device", }, deviceId: { type: "string", description: "The device ID of your Eufy RoboVac", }, localKey: { type: "string", description: "The local key for your Eufy RoboVac", }, }, required: ["ip", "deviceId", "localKey"], }, }, { name: "robovac_connect", description: "Connect to your RoboVac using device credentials (manual setup)", inputSchema: { type: "object", properties: { deviceId: { type: "string", description: "The device ID of your Eufy RoboVac", }, localKey: { type: "string", description: "The local key for your Eufy RoboVac", }, ip: { type: "string", description: "The IP address of your Eufy RoboVac (optional, defaults to 192.168.1.100)", }, }, required: ["deviceId", "localKey"], }, }, { name: "robovac_start_cleaning", description: "Start the robovac cleaning cycle", inputSchema: { type: "object", properties: {}, }, }, { name: "robovac_stop_cleaning", description: "Stop the robovac cleaning cycle", inputSchema: { type: "object", properties: {}, }, }, { name: "robovac_return_home", description: "Send the robovac back to its charging dock", inputSchema: { type: "object", properties: {}, }, }, { name: "robovac_get_status", description: "Get the current status of the robovac", inputSchema: { type: "object", properties: {}, }, }, { name: "robovac_get_battery", description: "Get the battery level of the robovac", inputSchema: { type: "object", properties: {}, }, }, ], }) );

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/appleton/sam'

If you have feedback or need assistance with the MCP directory API, please join our Discord server