get_robot_capabilities
Discover which API endpoints and functions a GS cleaning robot supports by providing its serial number to understand available control and monitoring capabilities.
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:358-370 (handler)MCP tool registration and handler for 'get_robot_capabilities'. Delegates execution to RobotAPIRouter.get_capabilities method.async def get_robot_capabilities(serial_number: str): """获取机器人支持的API能力。 显示该机器人支持哪些API端点和功能。 Args: serial_number: 机器人序列号 Returns: 机器人能力信息字典 """ return await router.get_capabilities(serial_number)
- Exact implementation of the tool logic. Determines robot series from serial number prefix using predefined mapping 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 }
- Predefined mapping of robot serial number prefixes to series codes, used by get_capabilities to classify robots and determine capabilities.ROBOT_SERIES_MAPPING = { # M-line 机器人 "GS100": "75", # 75系列 "GS400": "75", # 75系列 (新发现) "GS500": "75", # 75系列 "GS301": "50", # 50系列 "GS401": "50", # 50系列 "GS501": "50", # 50系列 (新发现) "GS442": "40", # 40系列 # S-line 机器人 "GS438": "S", # S系列 "GS408": "S", # S系列 "GS43C": "SW", # SW系列 }