Skip to main content
Glama
appleton

Eufy RoboVac MCP Server

by appleton

robovac_get_play_pause

Check whether your Eufy RoboVac vacuum cleaner is currently running or paused to monitor cleaning status and manage cleaning sessions.

Instructions

Get the current play/pause state of the robovac

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
forceNoForce refresh of cached data

Implementation Reference

  • Handler function for the 'robovac_get_play_pause' tool. Ensures the RoboVac instance is initialized, retrieves the play/pause state using the library method, and returns it as text content.
    case "robovac_get_play_pause":
      this.ensureRoboVacInitialized();
      const playPause = await this.robovac!.getPlayPause(
        args?.force as boolean
      );
      return {
        content: [
          {
            type: "text",
            text: `Play/Pause State: ${playPause}`,
          },
        ],
      };
  • Tool schema definition including name, description, and input schema for optional 'force' parameter, used in the listTools response.
    {
      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,
          },
        },
      },
    },
  • src/server.ts:118-384 (registration)
    The tool is registered by including it in the tools array returned by the ListToolsRequest handler.
    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