Ros2 MCP Server

# ros2-mcp-server `ros2-mcp-server` is a Python-based server that integrates the Model Context Protocol (MCP) with ROS 2, enabling AI assistants to

Local serverstdioPython

What is the Ros2 MCP server?

Connect Ros2 to Claude, Cursor or any other MCP client and it stops being a tab you switch to. # ros2-mcp-server ros2-mcp-server is a Python-based server that integrates the Model Context Protocol (MCP) with ROS 2, enabling AI assistants to control robots via ROS 2 topics. It processes commands through FastMCP and runs as a ROS 2. The ros2 mcp server is what makes that connection.

What the server does

  • MCP Integration — Uses FastMCP to handle commands from MCP clients (e.g., Claude)
  • ROS 2 Native — Operates as a ROS 2 node, directly publishing to /cmd_vel
  • Time-Based Control — Supports duration-based movement commands (e.g., move for a specified time and stop)
  • Asynchronous Processing — Combines FastMCP's asyncio with ROS 2's event loop for efficient operation

Installation

Setup follows the usual MCP pattern — install or clone the server, register it in your client's configuration file, restart the client.

Credentials and setup notes

Configuration is passed through the environment: ROS_LOG_DIR, TURTLEBOT3_MODEL. Treat anything key-shaped as a real credential — scope it to the minimum the server needs, and rotate it if it ever lands in a shared config.

  • ROS 2: Humble distribution installed and sourced. - Python: Version 3.10 (required for compatibility with ROS 2 Humble). - uv: Python package manager for dependency management. - Dependencies: - rclpy: ROS 2 Python client library (installed with ROS 2). - fastmcp: FastMCP framework for MCP server implementation. - numpy: Required by ROS 2 message types.

Worth knowing first

  • It runs with your machine's permissions. That is convenient and also the reason to think about what you point it at before you approve a tool call.
  • Keep per-call confirmation enabled while you learn its behaviour; it is the cheapest safeguard you have.

Where it fits

Among the developer tooling options, the useful question is rarely "what can it do" but "what does it cost you to run" — permissions, credentials, and how much of your context its toolset consumes. It is maintained by kakimochi; worth a glance at recent repository activity before you build anything load-bearing on it.

SyncDev reviews every entry in this directory against the project's own documentation before publishing, and revisits them as servers change.

Configuration

  • ROS 2: Humble distribution installed and sourced. - Python: Version 3.10 (required for compatibility with ROS 2 Humble). - uv: Python package manager for dependency management. - Dependencies: - rclpy: ROS 2 Python client library (installed with ROS 2). - fastmcp: FastMCP framework for MCP server implementation. - numpy: Required by ROS 2 message types.
VariableDescriptionRequired
ROS_LOG_DIRFilesystem location the server is allowed to use.Optional
TURTLEBOT3_MODELConfiguration value read at startup.Optional

Frequently asked questions

ROS 2 Humble must be installed and sourced.