get_robot_capabilities
Retrieve supported API endpoints and functionality for a specific GS cleaning robot using its serial number to understand available control operations.
Instructions
获取机器人支持的API能力。
显示该机器人支持哪些API端点和功能。
Args:
serial_number: 机器人序列号
Returns:
机器人能力信息字典
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| serial_number | Yes |
Implementation Reference
- src/gs_openapi/main.py:357-370 (registration)Registration and thin handler for the 'get_robot_capabilities' tool using @mcp.tool() decorator. Delegates to router.get_capabilities()@mcp.tool() async def get_robot_capabilities(serial_number: str): """获取机器人支持的API能力。 显示该机器人支持哪些API端点和功能。 Args: serial_number: 机器人序列号 Returns: 机器人能力信息字典 """ return await router.get_capabilities(serial_number)
- Core implementation of get_robot_capabilities logic in RobotAPIRouter class. Determines robot series from serial number prefix and returns supported API capabilities based on M-line or S-line classification.async def get_capabilities(self, serial_number: str) -> Dict[str, Any]: """获取机器人支持的API能力。""" # 基于序列号前缀判断机器人系列 detected_series = self._determine_robot_series_from_sn(serial_number) capabilities = { "basic_status": True, "command_control": True, "task_reports": True, "maps": True, "site_info": False, "advanced_tasks": False } if self.is_s_line_robot(detected_series): capabilities.update({ "site_info": True, "advanced_tasks": True, "v2_status": True, "v1_status": False }) robot_series = "S-line" elif self.is_m_line_robot(detected_series): capabilities.update({ "v1_status": True, "v2_status": False, "command_control": True }) robot_series = "M-line" else: # 未知前缀默认使用V1 API capabilities.update({ "v1_status": True, "v2_status": False, "command_control": True }) robot_series = "Unknown (Default V1)" return { "serial_number": serial_number, "robot_series": robot_series, "detected_series": detected_series, "prefix": serial_number[:5] if len(serial_number) >= 5 else serial_number, "capabilities": capabilities }