#!/usr/bin/env python3
"""
Test script for upgraded robotics MCP tools with conversational responses.
"""
import asyncio
async def test_robotics_conversational():
print('Testing upgraded robotics MCP tools with conversational responses...')
print('=' * 70)
# Test that the conversational response builders are available
try:
from src.robotics_mcp.utils.response_builders import (
build_success_response,
build_error_response,
build_hardware_error_response,
build_network_error_response,
build_configuration_error_response,
build_robotics_error_response,
)
print('SUCCESS: Conversational response builders imported successfully!')
print()
except Exception as e:
print(f'ERROR: Failed to import response builders: {e}')
return
# Test sample robotics error scenarios
print('Testing error scenario handling...')
print()
# Test ROS master connection error
print('1. ROS MASTER CONNECTION ERROR:')
ros_error = build_network_error_response(
error='Unable to connect to ROS master at localhost:11311',
service='ROS Master'
)
print('Recovery options:')
for i, option in enumerate(ros_error['recovery_options'], 1):
print(f' {i}. {option}')
print()
# Test Scout robot hardware error
print('2. SCOUT ROBOT HARDWARE ERROR:')
scout_error = build_robotics_error_response(
error='Unable to connect to Moorebot Scout robot',
robot_type='scout',
robot_id='scout_01'
)
print('Recovery options:')
for i, option in enumerate(scout_error['recovery_options'], 1):
print(f' {i}. {option}')
print()
# Test Unity MCP mounting error
print('3. UNITY MCP MOUNTING ERROR:')
unity_error = build_network_error_response(
error='Unity MCP server not mounted or unreachable',
service='Unity MCP'
)
print('Recovery options:')
for i, option in enumerate(unity_error['recovery_options'], 1):
print(f' {i}. {option}')
print()
# Test virtual robot creation success
print('4. VIRTUAL ROBOT CREATION SUCCESS:')
vbot_success = build_success_response(
operation='spawn_virtual_robot',
summary='Successfully spawned Scout virtual robot in Unity',
result={'robot_id': 'vbot_scout_01', 'platform': 'unity'},
recommendations=[
'Use robot_behavior tool to control the virtual robot movements',
'Test navigation with robot_behavior navigation actions'
],
next_steps=[
'Try robot_behavior get_status to check robot state',
'Use robot_behavior move for basic movement control'
]
)
print(f'Success: {vbot_success["success"]}')
print(f'Operation: {vbot_success["operation"]}')
print(f'Summary: {vbot_success["summary"]}')
print(f'Has recommendations: {"recommendations" in vbot_success}')
print(f'Has next_steps: {"next_steps" in vbot_success}')
print()
print('SUCCESS: All robotics conversational response scenarios tested successfully!')
print('SUCCESS: Intelligent error recovery for robotics hardware is working!')
print('SUCCESS: FastMCP 2.14.1 conversational patterns are fully implemented!')
if __name__ == '__main__':
asyncio.run(test_robotics_conversational())