get_device_list
Retrieve a list of connected Ecovacs robot vacuums to identify available devices for cleaning, charging, or status monitoring tasks.
Instructions
Query robot list
Returns: Dict: Dictionary containing list of robot nicknames
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Implementation Reference
- ecovacs_mcp/robot_mcp_stdio.py:106-114 (handler)The handler function implementing the 'get_device_list' tool logic. Decorated with @mcp.tool() for registration in the MCP server. Calls the shared call_api helper with the specific device list endpoint to retrieve the list of devices.@mcp.tool() async def get_device_list() -> dict: """ Query robot list Returns: Dict: Dictionary containing list of robot nicknames """ return await call_api(ENDPOINT_ROBOT_DEVICE_LIST, {}, method='get')
- ecovacs_mcp/robot_mcp_stdio.py:18-18 (helper)Helper constant defining the API endpoint specifically used by the get_device_list tool.ENDPOINT_ROBOT_DEVICE_LIST = "robot/deviceList"
- ecovacs_mcp/robot_mcp_stdio.py:21-57 (helper)Shared helper function used by get_device_list (and other tools) to make authenticated HTTP requests to the Ecovacs API.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": []}
- ecovacs_mcp/robot_mcp_stdio.py:106-106 (registration)The @mcp.tool() decorator registers the get_device_list function as an MCP tool in the FastMCP server.@mcp.tool()