Skip to main content
Glama

set_cleaning

Control Ecovacs robot vacuum cleaning operations: start, pause, resume, or stop cleaning cycles using robot nickname and action codes.

Instructions

Start robot cleaning

Args: nickname: Robot nickname, used to find device act: Cleaning action s-start cleaning, r-resume cleaning, p-pause cleaning, h-stop cleaning Returns: Dict: Dictionary containing execution results

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nicknameNoRobot nickname, supports fuzzy matching
actNoCleaning action, s-start cleaning, r-resume cleaning, p-pause cleaning, h-stop cleanings

Implementation Reference

  • Registers the set_cleaning tool using the @mcp.tool() decorator.
    @mcp.tool()
  • The main handler function implementing the set_cleaning tool logic. It calls the API with the 'Clean' command and the specified action (start, resume, pause, stop).
    async def set_cleaning(
        nickname: str = Field(description="Robot nickname, supports fuzzy matching", default=""),
        act: str = Field(description="Cleaning action, s-start cleaning, r-resume cleaning, p-pause cleaning, h-stop cleaning", default="s")
    ) -> dict:
        """
        Start robot cleaning
        
        Args:
            nickname: Robot nickname, used to find device
            act: Cleaning action s-start cleaning, r-resume cleaning, p-pause cleaning, h-stop cleaning
        Returns:
            Dict: Dictionary containing execution results
        """
        return await call_api(ENDPOINT_ROBOT_CTL, {"nickName": nickname, "cmd": "Clean", "act": act})
  • Input schema definitions using Pydantic Field for the nickname and act parameters.
    nickname: str = Field(description="Robot nickname, supports fuzzy matching", default=""),
    act: str = Field(description="Cleaning action, s-start cleaning, r-resume cleaning, p-pause cleaning, h-stop cleaning", default="s")
  • Helper function for making API calls to the Ecovacs service, used by set_cleaning.
    async def call_api(endpoint: str, params: dict, method: str = 'post') -> dict:
        """
        General API call function
        
        Args:
            endpoint: API endpoint
            params: Request parameters
            method: Request method, 'get' or 'post'
        
        Returns:
            Dict: API response result, format {"msg": "OK", "code": 0, "data": [...]}
        """
        # Build complete URL
        url = f"{API_URL}/{endpoint}"
        
        # Ensure all parameters are strings
        params = {k: str(v) for k, v in params.items()}
        
        # Add API key
        if API_KEY:
            params.update({"ak": API_KEY})
        
        try:
            async with httpx.AsyncClient() as client:
                headers = {"Content-Type": "application/json"}
                if method.lower() == 'get':
                    response = await client.get(url, params=params, timeout=REQUEST_TIMEOUT)
                else:
                    response = await client.post(url, json=params, headers=headers, timeout=REQUEST_TIMEOUT)
                
                response.raise_for_status()
                return response.json()
        
        except Exception as e:
            # Return unified error format when an error occurs
            return {"msg": f"Request failed: {str(e)}", "code": -1, "data": []}
  • Constant defining the API endpoint for robot control operations.
    ENDPOINT_ROBOT_CTL = "robot/ctl"

Tool Definition Quality

Score is being calculated. Check back soon.

Install Server

Other Tools

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/ecovacs-ai/ecovacs-mcp'

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