Skip to main content
Glama
sandraschi

Robotics MCP Server

by sandraschi

robot_control

Operate physical and virtual robots from a single interface, executing actions like navigation, vacuuming, docking, and status checks with conversational AI responses.

Instructions

Unified robot control with conversational responses.

Provides a single interface for controlling physical robots, virtual robots, and specialized devices with intelligent routing and rich conversational responses. Primary: Dreame D20 Pro vacuum. Also supports Yahboom ROSMASTER, Moorebot Scout, Unitree (when hardware available), and virtual robots in Unity/VRChat.

PORTMANTEAU PATTERN RATIONALE: Instead of creating separate tools for each robot type and operation, this tool consolidates all robot control operations into a single interface. This design:

  • Prevents tool explosion (15+ tools -> 1 tool) while maintaining full functionality

  • Enables seamless switching between physical and virtual robots

  • Provides consistent error handling and safety protocols across all robot types

  • Supports conversational AI interaction with context-aware responses

  • Follows FastMCP 2.13+ best practices for feature-rich MCP servers

SUPPORTED ROBOT TYPES:

  • Dreame D20 Pro: Primary platform - LIDAR vacuum with mapping, zone cleaning, mop, auto-empty

  • Yahboom Robots: ROSMASTER series with AI, navigation, and optional robotic arms

  • Moorebot Scout: ROS1 wheeled robot

  • Elegoo Robots: ROS-on-PC robots with serial communication

  • Unitree Go2/G1: Quadrupedal robots (when hardware available)

  • Virtual Robots: Unity3D/VRChat robots

  • Hue HomeAware: Philips Hue Bridge Pro with RF-based movement detection

SUPPORTED OPERATIONS:

  • Universal: "get_status", "move", "stop"

  • Physical Robots: "return_to_dock", "stand", "sit", "walk", "sync_vbot"

  • Yahboom: "home_patrol", "camera_capture", "arm_move", "gripper_control", "navigate_to", "ai_query"

  • Elegoo: "emergency_stop" (ROS-on-PC serial communication)

  • Dreame: "start_auto_empty", "stop_auto_empty", "start_self_clean", "stop_self_clean", "set_suction_level", "set_water_volume", "set_mop_humidity", "clean_zone", "clean_spot", "start_mapping", "rename_room", "set_cleaning_sequence", "set_restricted_zones", "get_cleaning_history", "clear_error"

  • Hue HomeAware: "hue_get_movement_events", "hue_get_sensor_status", "hue_get_movement_zones"

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
xNoTarget X coordinate (meters) for navigation operations
yNoTarget Y coordinate (meters) for navigation operations
queryNoAI query text for multimodal analysis (Yahboom robots)
thetaNoTarget orientation (radians) for navigation operations
zonesNoList of zone coordinates [[x1,y1,x2,y2], ...] for zone cleaning
actionYesOperation to perform. MUST be one of the supported operations above: Universal Operations: - "get_status": Get comprehensive robot status (battery, position, sensors, capabilities) - "move": Control movement with linear/angular velocities (all mobile robots) - "stop": Emergency stop all movement (all robots) Physical Robot Operations: - "return_to_dock": Return to charging dock (vacuums only) - "stand": Stand up from sitting position (legged robots) - "sit": Sit down (legged robots) - "walk": Start walking gait (legged robots) - "sync_vbot": Synchronize virtual robot with physical robot state Yahboom Robot Operations: - "home_patrol": Start autonomous home security patrol - "camera_capture": Capture image from robot camera - "arm_move": Move robotic arm to specified joint angles - "gripper_control": Control gripper open/close/stop - "navigate_to": Navigate to specific coordinates - "ai_query": Multimodal AI query (text/vision/voice/multimodal) Dreame Vacuum Operations: - "start_auto_empty": Start automatic dust bin emptying - "stop_auto_empty": Stop automatic dust bin emptying - "start_self_clean": Start mop self-cleaning cycle - "stop_self_clean": Stop mop self-cleaning cycle - "set_suction_level": Set vacuum suction power (1-4) - "set_water_volume": Set mopping water volume (1-3) - "set_mop_humidity": Set mop pad humidity (1-3) - "clean_zone": Clean specific rectangular zones - "clean_spot": Intensive spot cleaning at coordinates - "start_mapping": Start new map creation/mapping - "rename_room": Rename a detected room - "set_cleaning_sequence": Set room cleaning order - "set_restricted_zones": Create virtual walls/restricted zones - "get_cleaning_history": Retrieve cleaning history - "clear_error": Clear error conditions
linearNoLinear velocity (m/s) for move operations. Range: -2.0 to 2.0 m/s
spot_xNoX coordinate for intensive spot cleaning
spot_yNoY coordinate for intensive spot cleaning
angularNoAngular velocity (rad/s) for rotation. Range: -3.14 to 3.14 rad/s
room_idNoRoom identifier for room-specific operations
durationNoMovement duration in seconds. Default: continuous until stopped
robot_idYesUnique robot identifier. MUST follow naming convention: - Physical: "scout_01", "go2_01", "g1_01", "yahboom_01", "elegoo_01", "dreame_01", "hue_01" - Virtual: "vbot_scout_01", "unity_bot_01", "vrchat_bot_01"
room_nameNoNew name for room renaming operations
query_typeNoAI query type. MUST be "text", "vision", "voice", or "multimodal"
joint_anglesNoDictionary of joint names to target angles (degrees) for arm control
mop_humidityNoMop pad humidity level (1-3, where 3 is maximum humidity)
patrol_routeNoName of predefined patrol route for autonomous navigation
water_volumeNoMopping water volume level (1-3, where 3 is maximum)
suction_levelNoVacuum suction power level (1-4, where 4 is maximum)
gripper_actionNoGripper action. MUST be "open", "close", or "stop"
restricted_zonesNoDictionary with 'walls' and 'zones' keys for virtual barriers
cleaning_sequenceNoList of room IDs defining cleaning order [room1, room2, ...]

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations available, the description carries the full transparency burden. It does disclose some behavioral traits: 'intelligent routing', 'rich conversational responses', and 'consistent error handling and safety protocols across all robot types'. But it is mostly promotional and vague—there is no mention of side effects, what happens on failure, software requirements, whether actions require confirmation, or how physical safety is enforced. The description is not contradictory, but it gives only partial transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is far too long for an agent-facing tool definition. The PORTMANTEAU PATTERN RATIONALE section explains internal design philosophy rather than how to call the tool, and the SUPPORTED OPERATIONS list duplicates the action enum that is already in the schema. While the description uses headings and bullet formatting, many sentences (e.g., 'Follows FastMCP 2.13+ best practices') do not help an agent invoke the tool correctly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (23 parameters, 40 actions, many robot types), the description is incomplete: the SUPPORTED OPERATIONS section omits at least six actions that appear in the schema's `action` enum—`start_cleaning`, `stop_cleaning`, `clean_room`, `go_to`, `get_map`, and `start_fast_mapping`. It also fails to map which parameters are required for specific actions, leaving the agent to infer or scout a large parameter space. The presence of an output schema helps, but the gap between the narrative operations and the actual enum is a meaningful completeness error.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides 100% parameter description coverage, including descriptions for every action enum value and ranges for velocity, water/suction levels, and coordinates. The description mostly restates or duplicates this information (especially the SUPPORTED OPERATIONS list) without adding actionable param semantics beyond what the schema already provides. Per the baseline, 3 is appropriate when schema does this heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states this is a 'Unified robot control' interface and lists the exact platforms it supports ('Dreame D20 Pro', 'Yahboom', 'Moorebot', 'Unitree', 'virtual robots'). It is more specific than the name alone and conveys it is an aggregation tool. However, it does not explicitly differentiate from siblings like robot_virtual, dreame_control, or drone_control, so the boundary of what this tool owns vs. those tools is inferred rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains why a consolidated tool exists ('Instead of creating separate tools for each robot type...') and what robot types it supports, which implies when to use it. However, it never says 'use this instead of X' and does not list exclusions or conditions that would route the agent to sibling tools such as dreame_control, drone_control, robot_behavior, or robot_virtual. There is no practical guidance for selecting between this and the many sibling tools that appear to overlap in purpose.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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/sandraschi/robotics-mcp'

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