Skip to main content
Glama
sandraschi

Robotics MCP Server

robot_behavior

Control robot behaviors including animation, camera, navigation, and manipulation operations through a unified interface for physical and virtual robots.

Instructions

Robot behavior control portmanteau - Animation, camera, navigation, and manipulation.

PORTMANTEAU PATTERN: Consolidates animation, camera, navigation, and manipulation operations into a single unified tool. This reduces tool explosion while maintaining full functionality across all behavior categories.

CATEGORIES:

  • animation: Animation and pose control

  • camera: Camera feed and visual control

  • navigation: Path planning and navigation

  • manipulation: Arm and gripper control

ANIMATION ACTIONS:

  • animate_wheels: Rotate wheels during movement (Scout mecanum wheels)

  • animate_movement: Play movement animations (walk, turn, etc.)

  • set_pose: Set robot pose (sitting, standing, etc. for Unitree)

  • play_animation: Play custom animations

  • stop_animation: Stop current animation

  • get_animation_state: Get current animation state

CAMERA ACTIONS:

  • get_camera_feed: Get live camera feed (physical Scout camera)

  • get_virtual_camera: Get Unity camera view from robot perspective

  • set_camera_angle: Adjust camera angle

  • capture_image: Capture still image

  • start_streaming: Start video stream

  • stop_streaming: Stop video stream

  • get_camera_status: Get camera status and settings

NAVIGATION ACTIONS:

  • plan_path: Plan path from A to B (A* or RRT)

  • follow_path: Execute planned path

  • set_waypoint: Set navigation waypoint

  • clear_waypoints: Clear waypoint list

  • get_path_status: Check path execution status

  • avoid_obstacle: Dynamic obstacle avoidance

  • get_current_path: Get current path being followed

MANIPULATION ACTIONS:

  • move_arm: Move arm to target joint positions or end-effector pose

  • set_joint_positions: Set individual joint positions (dict of joint_name: angle)

  • set_end_effector_pose: Move end-effector to target pose (position + orientation)

  • get_arm_state: Get current arm joint positions and end-effector pose

  • open_gripper: Open gripper fully

  • close_gripper: Close gripper fully

  • set_gripper_position: Set gripper position (0.0 = open, 1.0 = closed)

  • get_gripper_state: Get current gripper position and force feedback

  • move_to_pose: Move arm to target pose with IK (inverse kinematics)

  • home_arm: Return arm to home/rest position

Args: robot_id: Robot identifier (e.g., "scout_01", "vbot_scout_01"). category: Behavior category: "animation", "camera", or "navigation". action: Action to perform (see category-specific actions above). # Animation parameters (used when category="animation") wheel_speeds: Wheel speeds for animate_wheels. animation_name: Animation name for play_animation. pose: Pose name for set_pose. animation_speed: Animation speed multiplier. loop: Whether to loop animation. # Camera parameters (used when category="camera") angle_x: Camera angle X (pitch) in degrees. angle_y: Camera angle Y (yaw) in degrees. output_path: Output file path for capture_image. stream_url: Stream URL for start_streaming. # Navigation parameters (used when category="navigation") start_position: Start position (x, y, z) for plan_path. goal_position: Goal position (x, y, z) for plan_path. waypoint: Waypoint position (x, y, z) for set_waypoint. obstacle_position: Obstacle position (x, y, z) for avoid_obstacle. path_id: Path identifier for follow_path or get_path_status. # Manipulation parameters (used when category="manipulation") joint_positions: Joint positions dict (e.g., {"shoulder": 45.0, "elbow": 90.0}). end_effector_pose: End-effector pose dict with position and orientation. gripper_position: Gripper position (0.0 = open, 1.0 = closed). arm_id: Arm identifier for multi-arm robots (e.g., "left", "right"). force_limit: Maximum force/torque limit for movement. manipulation_speed: Movement speed (0.0-1.0) for arm/gripper motion.

Returns: Dictionary containing operation result.

Examples: # Animation result = await robot_behavior( robot_id="scout_01", category="animation", action="play_animation", animation_name="walk", animation_speed=1.0, loop=True )

# Camera
result = await robot_behavior(
    robot_id="scout_01",
    category="camera",
    action="capture_image",
    output_path="C:/Images/capture.jpg"
)

# Navigation
result = await robot_behavior(
    robot_id="scout_01",
    category="navigation",
    action="plan_path",
    start_position={"x": 0, "y": 0, "z": 0},
    goal_position={"x": 5, "y": 0, "z": 0}
)

# Manipulation - Move arm
result = await robot_behavior(
    robot_id="g1_01",
    category="manipulation",
    action="move_arm",
    joint_positions={"shoulder": 45.0, "elbow": 90.0, "wrist": 0.0}
)

# Manipulation - Open gripper
result = await robot_behavior(
    robot_id="g1_01",
    category="manipulation",
    action="open_gripper"
)

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
robot_idYes
categoryYes
actionYes
wheel_speedsNo
animation_nameNo
poseNo
animation_speedNo
loopNo
angle_xNo
angle_yNo
output_pathNo
stream_urlNo
start_positionNo
goal_positionNo
waypointNo
obstacle_positionNo
path_idNo
joint_positionsNo
end_effector_poseNo
gripper_positionNo
arm_idNo
force_limitNo
manipulation_speedNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Behavior2/5

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

With no annotations provided, the description carries full burden but provides minimal behavioral context. It lists actions but doesn't disclose critical traits like whether operations are destructive, require specific robot states, have rate limits, or involve safety considerations. The description focuses on what can be done rather than how it behaves during execution.

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

Conciseness3/5

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

While well-structured with clear sections, the description is excessively long with detailed action listings and examples that could be condensed. The front-loaded purpose statement is good, but subsequent sections contain repetitive information that could be streamlined while maintaining clarity.

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

Completeness4/5

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

Given the tool's high complexity (23 parameters, 4 categories) with no annotations but an output schema, the description provides comprehensive coverage of operations and parameters. It includes examples for all major categories, though it could benefit from more behavioral context and usage guidance relative to sibling tools.

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

Parameters5/5

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

With 0% schema description coverage and 23 parameters, the description compensates excellently by organizing parameters by category, explaining their usage context, and providing clear examples. It adds substantial meaning beyond the bare schema, clarifying which parameters apply to which categories and actions with specific examples like wheel_speeds for animate_wheels or joint_positions for move_arm.

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

Purpose5/5

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

The description clearly states the tool's purpose as consolidating animation, camera, navigation, and manipulation operations into a unified tool to reduce tool explosion. It distinguishes from siblings by specifying the exact behavior categories covered, making it clear this is a comprehensive robot behavior controller rather than a general control or manufacturing tool.

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

Usage Guidelines3/5

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

The description implies usage through the category and action structure, showing how to select operations, but provides no explicit guidance on when to use this tool versus sibling tools like robot_control or robotics_system. It lacks context about prerequisites, dependencies, or alternative tools for specific scenarios.

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