/ 디렉터리 / 플레이그라운드 / ros-mcp-server
● 커뮤니티 robotmcp ⚡ 바로 사용

ros-mcp-server

제작: robotmcp · robotmcp/ros-mcp-server

Let Claude or GPT drive a ROS-connected robot — publish topics, call services, read sensors — via rosbridge, no code changes.

robotmcp/ros-mcp-server connects AI models to ROS 1 and ROS 2 robots via rosbridge. Publish to topics, subscribe, call services and actions, set parameters, read sensor data. Works across ROS distros including Humble and Jazzy.

왜 쓰나요

핵심 기능

라이브 데모

실제 사용 모습

ros.replay ▶ 준비됨
0/0

설치

클라이언트 선택

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "ros": {
      "command": "uvx",
      "args": [
        "ros-mcp-server"
      ],
      "_inferred": true
    }
  }
}

Claude Desktop → Settings → Developer → Edit Config 열기. 저장 후 앱 재시작.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "ros": {
      "command": "uvx",
      "args": [
        "ros-mcp-server"
      ],
      "_inferred": true
    }
  }
}

Cursor는 Claude Desktop과 동일한 mcpServers 스키마 사용. 프로젝트 설정이 전역보다 우선.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "ros": {
      "command": "uvx",
      "args": [
        "ros-mcp-server"
      ],
      "_inferred": true
    }
  }
}

Cline 사이드바의 MCP Servers 아이콘 클릭 후 "Edit Configuration" 선택.

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "ros": {
      "command": "uvx",
      "args": [
        "ros-mcp-server"
      ],
      "_inferred": true
    }
  }
}

Claude Desktop과 같은 형식. Windsurf 재시작 후 적용.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "ros",
      "command": "uvx",
      "args": [
        "ros-mcp-server"
      ]
    }
  ]
}

Continue는 맵이 아닌 서버 오브젝트 배열 사용.

~/.config/zed/settings.json
{
  "context_servers": {
    "ros": {
      "command": {
        "path": "uvx",
        "args": [
          "ros-mcp-server"
        ]
      }
    }
  }
}

context_servers에 추가. 저장 시 Zed가 핫 리로드.

claude mcp add ros -- uvx ros-mcp-server

한 줄 명령. claude mcp list로 확인, claude mcp remove로 제거.

사용 사례

실전 활용법: ros-mcp-server

How to drive a simulated robot from chat

👤 ROS learners, robotics devs prototyping behaviors ⏱ ~30 min intermediate

언제 쓸까: You want to test high-level robot behaviors quickly.

사전 조건
  • ROS 2 (Humble/Jazzy) or ROS 1 running — Docker containers for Humble work great for quick starts
  • rosbridge_suite installed + running — ros2 launch rosbridge_server rosbridge_websocket_launch.xml
  • Python 3.10+ + uvx — brew install [email protected] uv
흐름
  1. Connect to rosbridge
    Configure the MCP with ROSBRIDGE_URL=ws://localhost:9090 and verify connection.✓ 복사됨
    → List of active topics returned
  2. Move the robot
    Publish to /cmd_vel a Twist message moving forward at 0.2 m/s for 3 seconds, then stop.✓ 복사됨
    → Robot moves in sim
  3. Read a sensor
    Subscribe to /scan for 2 seconds and report obstacles within 1m.✓ 복사됨
    → Range data summary

결과: A live robot responding to natural-language commands.

함정
  • Sending too-fast velocity commands crashes/tips the robot — Rate-limit commands in your prompt; start with small velocities
  • Unsafe autonomy — no geofence — Always run first in simulation (Gazebo); never wire this to a physical robot without e-stop

How to produce a natural-language robot health summary

👤 Robotics ops teams ⏱ ~15 min beginner

언제 쓸까: You want a quick 'what's the robot doing' readout.

흐름
  1. List topics
    List all active topics.✓ 복사됨
    → Topic catalog
  2. Sample key sensors
    Subscribe to /battery_state and /odom for 3 seconds each; summarize.✓ 복사됨
    → Battery % + pose summary
  3. Check parameters
    Get the value of /navigation.max_velocity.✓ 복사됨
    → Parameter value

결과: Operator-friendly summary of robot state.

How to call a ROS action (e.g., navigate to pose) from chat

👤 Robotics devs testing nav stacks ⏱ ~15 min intermediate

언제 쓸까: You want to trigger a goal without writing a client.

흐름
  1. Send goal
    Call action /navigate_to_pose with goal x=2.0 y=1.0 yaw=0.✓ 복사됨
    → Goal accepted, feedback streamed
  2. Monitor feedback
    Stream feedback until goal reached or 30s elapses.✓ 복사됨
    → Progress + outcome

결과: Navigation test without writing a client.

함정
  • rosbridge action support varies by version — Use ROS 2 + rosbridge 2.x for best action coverage

조합

다른 MCP와 조합해 10배 효율

Log robot runs to disk for later analysis

Subscribe to /odom for 60 seconds and write the trajectory to /logs/run-2026-04-14.csv.✓ 복사됨

도구

이 MCP가 노출하는 것

도구입력언제 호출비용
list_topics Discover the robot free
publish_topic topic: str, type: str, msg: obj Command the robot free
subscribe_topic topic: str, duration_s?: int Read sensor data free
call_service service: str, request: obj One-shot RPC to the robot free
send_action_goal action: str, goal: obj Long-running tasks (nav, manipulation) free
get_param name: str Inspect config free
set_param name, value Tune at runtime free

비용 및 제한

운영 비용

API 쿼터
None — local rosbridge WebSocket
호출당 토큰
Topic messages can be large (images, pointclouds); avoid streaming high-bandwidth topics into the LLM
금액
Free
Never subscribe to image or pointcloud topics into an LLM — summarize on the robot side first.

보안

권한, 시크릿, 파급범위

최소 스코프: Network access to the rosbridge WebSocket
자격 증명 저장: None by default; put rosbridge behind auth for non-local use
데이터 외부 송신: ROS topics flow to the LLM provider — treat sensor data as going to a third party
절대 부여 금지: Do not expose rosbridge to the public internet Do not grant autonomy without a hardware e-stop

문제 해결

자주 발생하는 오류와 해결

Cannot connect to rosbridge

Ensure rosbridge_server is running and reachable at the URL. For ROS 2: ros2 launch rosbridge_server rosbridge_websocket_launch.xml

확인: nc -vz localhost 9090
Topic publish rejected — unknown type

Pass the exact message type (e.g., geometry_msgs/msg/Twist). Use list_topics to see registered types.

Action feedback not streaming

Older rosbridge versions have spotty action support. Upgrade to 2.x.

High-bandwidth topic crashes the agent

Do not subscribe to /camera/image_raw or /velodyne_points through the LLM. Summarize on-robot.

대안

ros-mcp-server 다른 것과 비교

대안언제 쓰나단점/장점
rosa (NASA JPL)You want a LangChain-based ROS agent, not MCPDifferent architecture; not pluggable into Claude Desktop

더 보기

리소스

📖 GitHub에서 공식 README 읽기

🐙 열린 이슈 보기

🔍 400+ MCP 서버 및 Skills 전체 보기