Skip to main content

Add your description here

Project description

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.

Research based on this project can be found in the video linked below.

Supported Types

  • geometry_msgs/Twist
  • sensor_msgs/Image
  • sensor_msgs/JointState

Features

  • WebSocket-based universal compatibility: Communicates with both ROS and ROS2 systems using rosbridge, enabling seamless integration regardless of ROS version.
  • Cross-platform support: Works on Linux, Windows, and MacOS, making it suitable for diverse development and deployment environments.
  • Easy integration with LLMs and AI systems: Natural language commands can be directly translated into robot actions via MCP functions.
  • Extensible function set: Easily add new robot control or sensor functions by extending the MCP tool interface.
  • No ROS node modification required: Interacts with existing ROS/ROS2 topics and services without changing your robot's core code.
  • Native ROS/ROS2 command compatibility: Optionally supports using local ROS/ROS2 libraries, so you can run native ROS commands and tools alongside WebSocket-based control.

Contributing

Contributions are welcome!
Whether you're fixing a typo, adding a new function, or suggesting improvements, your help is appreciated.
Please follow the contributing guidelines for more details on how to contribute to this project.

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:AppData\Claude\claude_desktop_config.json

MCP Functions

You can find the list of functions in the MCPFUNCTIONS.md.

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mseep_ros_mcp_server-0.1.1.tar.gz (4.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mseep_ros_mcp_server-0.1.1-py3-none-any.whl (4.1 kB view details)

Uploaded Python 3

File details

Details for the file mseep_ros_mcp_server-0.1.1.tar.gz.

File metadata

  • Download URL: mseep_ros_mcp_server-0.1.1.tar.gz
  • Upload date:
  • Size: 4.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.12

File hashes

Hashes for mseep_ros_mcp_server-0.1.1.tar.gz
Algorithm Hash digest
SHA256 8c8b7045cb77eed253a5f537afd24fd8202fb68ce5807887ba6bee8039e8240d
MD5 6160349bcc05889e2543d1a2636d3cfe
BLAKE2b-256 f812c563d4ba5d2a12a15ec3a543cb5e53f979e2b5c8c29a7744a791b39afbce

See more details on using hashes here.

File details

Details for the file mseep_ros_mcp_server-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for mseep_ros_mcp_server-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e53fc3b2a1a3e36b441e2f2f74ec2625b6834130d8515091efc3da236530b785
MD5 f86d4e9829aa8a880c32499e608fa9a0
BLAKE2b-256 f1d6bf0fe9a61fb62409729772e0837149a9d0897200177be0269f68193e471f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page