ROS MCP Server – README | MCP Marketplace

✨ From vibe coding to vibe deployment. UBOS MCP turns ideas into infra with one message.

Learn more

Overview

Static Badge Static Badge smithery badge Static Badge

The ROS MCP Server is designed to support robots in performing complex tasks and adapting effectively to various environments by providing a set of functions that transform natural language commands, entered by a user through an LLM, into ROS commands for robot control. Furthermore, by utilizing rosbridge, it is configured to operate with both ROS and ROS2 systems, and its WebSocket-based communication enables broad applicability across diverse platforms.

Supported Types

  • geometry_msgs/Twist
  • sensor_msgs/Image

Installation

Installing via Smithery

To install ros-mcp-server for Claude Desktop automatically via Smithery:

npx -y @smithery/cli install @lpigeon/ros-mcp-server --client claude

Installing Locally

uv Installation

  • To install uv, you can use the following command:
curl -LsSf https://astral.sh/uv/install.sh | sh

or

pip install uv
  • Create virtual environment and activate it (Optional)
uv venv
source .venv/bin/activate

MCP Server Configuration

Set MCP setting to mcp.json.

"ros-mcp-server": {
  "command": "uv",
  "args": [
    "--directory",
    "/ABSOLUTE/PATH/TO/PARENT/FOLDER/ros-mcp-server",,
    "run",
    "server.py"
  ]
}

If you use Claude Desktop, you can find mcp.json using the following command:

  • MacOS/Linux
code ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows
code $env:AppDataClaudeclaude_desktop_config.json

MCP Functions

get_topics

  • Purpose: Retrieves the list of available topics from the robot’s ROS system.
  • Returns: List of topics (List[Any])

pub_twist

  • Purpose: Sends movement commands to the robot by setting linear and angular velocities.
  • Parameters:
    • linear: Linear velocity (List[Any])
    • angular: Angular velocity (List[Any])

pub_twist_seq

  • Purpose: Sends a sequence of movement commands to the robot, allowing for multi-step motion control.
  • Parameters:
    • linear: List of linear velocities (List[Any])
    • angular: List of angular velocities (List[Any])
    • duration: List of durations for each step (List[Any])

sub_image

  • Purpose: Receive images from the robot’s point of view or of the surrounding environment.
  • Parameters:
    • save_path: By default, the image is saved to the Downloads folder.

How To Use

1. Set IP and Port to connect rosbridge.

  • Open server.py and change your LOCAL_IP, ROSBRIDGE_IP and ROSBRIDGE_PORT. (ROSBRIDGE_PORT’s default value is 9090)

2. Run rosbridge server.

ROS 1

roslaunch rosbridge_server rosbridge_websocket.launch

ROS 2

ros2 launch rosbridge_server rosbridge_websocket_launch.xml

3. Run any AI system that has imported ros-mcp-server.

4. Type “Make the robot move forward.”.

5. Check rosbridge_server and ros topic.

  • rosbridge_server
  • ros topic

Simulation Test

MCP-based control using the MOCA mobile manipulator within the NVIDIA Isaac Sim simulation environment.

Featured Templates

View More
Customer service
Multi-language AI Translator
135 645
AI Agents
AI Video Generator
249 1347 5.0
AI Characters
Sarcastic AI Chat Bot
128 1440
AI Engineering
Python Bug Fixer
119 1080

Start your free trial

Build your solution today. No credit card required.

Sign In

Register

Reset Password

Please enter your username or email address, you will receive a link to create a new password via email.