Overview

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 theDownloadsfolder.
How To Use
1. Set IP and Port to connect rosbridge.
- Open
server.pyand change yourLOCAL_IP,ROSBRIDGE_IPandROSBRIDGE_PORT. (ROSBRIDGE_PORT’s default value is9090)
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.

ROS MCP Server
Project Details
- lpigeon/ros-mcp-server
- MIT License
- Last Updated: 5/1/2025
Recomended MCP Servers
Codacy's MCP Server implementation
マルチエージェント型MCP
Solana Model Context Protocol (MCP) Demo
🤖 ↔️ 🪐 Extended Jupyter Model Context Protocol (MCP) Server.
DirectX 12 Headers for Delphi and FPC
A Model Context Protocol (MCP) server that enables AI models to interact with the Zerodha trading platform. This...
A powerful Model Context Protocol (MCP) server that helps refine AI-generated content to sound more natural and human-like....
Let LLM help you achieve your regression with Stata.





