本文へスキップします。

本文へ

サービスサイトロゴ

株式会社SRA

サービスサイトヘッダーリンク

承認:エディタ

ros-mcp-serverの紹介

(掲載 2026年08月28日)

MCPサーバとは

近年、生成AI・LLMの活用は文章生成や対話にとどまらず、実世界のロボットや機器を対象とする「フィジカルAI」と呼ばれる領域にも広がりつつあります。フィジカルAIとは、AIが情報を処理・生成するだけでなく、センサ等を通じて現実世界の状態を認識し、判断し、実際に機器を動かして作用を及ぼすところまでを含む概念です。ロボットとLLMを組み合わせ、自然言語による指示でロボットを動作させることも、このフィジカルAIの一形態と言えます。

こうしたLLMと実世界のロボットを繋ぐ標準的な手段として利用されるのがMCP(Model Context Protocol)です。MCPは、LLMアプリケーションが外部のツールやデータソースと連携するための標準プロトコルであり、MCPに対応したサーバ(MCPサーバ)を用意することで、LLMはあらかじめ定義されたツール群を通じて外部システムの操作や情報取得を行えるようになります。

ros-mcp-server は、このMCPの仕組みをROS/ROS2向けに実装したMCPサーバです。rosbridge経由でROSシステムと通信するため、ロボット側の既存コードを変更することなく導入できます。トピックのpublish/subscribe、サービス呼び出し、アクションの実行、パラメータの取得・設定、センサ情報のモニタリングといった操作をLLM側から行えるほか、独自メッセージ型の自動検出にも対応しています。
これにより、Claude Code等のMCP対応LLMアプリケーションに対して自然言語で指示を出すだけで、ロボットの操作や状態確認が可能になり、フィジカルAI実現のハードルを大きく下げてくれます。

なお、ros-mcp-serverはROS2(Jazzy、Humble等)だけでなくROS1にも対応しています。

構成

本記事では、以下の構成でros-mcp-serverを動作させます。

  • VM上ではROS2 Jazzyを利用します
  • Windows上ではClaude Codeを利用します
    • Claude Code以外でもMCPに対応したLLMアプリケーションであればros-mcp-serverを利用可能です
    • Claude Code以外でのMCPサーバの設定方法については、ご利用のアプリケーションのドキュメントを参照ください

VM側の準備

rosbridge-serverのインストール

以下のコマンドでrosbridge-serverをインストールします。

sudo apt install ros-jazzy-rosbridge-server

rosbridge-serverはVM外のマシンとWebSocket経由でのROS通信を行うために利用します。

rosbridge-serverの起動

rosbridge-serverのバージョンによって起動方法が異なるため、まずは以下のコマンドでバージョンを確認してください。

apt show ros-jazzy-rosbridge-server

表示されているバージョンが3.0.0以上の場合は、以下のコマンドでrosbridge-serverを起動します。

ros2 launch rosbridge_server rosbridge_websocket_launch.xml

バージョンが3.0.0未満の場合は、以下のようにパラメータを指定してrosbridge-serverを起動します。

ros2 launch rosbridge_server rosbridge_websocket_launch.xml topics_glob:='"*"' topics_pub_glob:='"*"' topics_sub_glob:='"*"' services_glob:='"*"' params_glob:='"*"'

TurtleSimの起動

ros2 run turtlesim turtlesim_node

Windows側の準備

uvのインストール

PowerShell上で以下のコマンドをコマンドを実行して、uv(Pythonのパッケージ・プロジェクト管理ツール)をインストールします。

powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

MCPサーバの設定

以下のコマンドでClaude CodeにMCPサーバを登録します。

claude mcp add ros-mcp -- uvx ros-mcp --transport=stdio

Claude Codeから指示を出す

Claude Codeを起動し、MCPサーバの設定が反映されているかを確認します。
/mcpコマンドを実行するとros-mcpがリストアップされ、それを選択してさらにView Toolsを選択すると、ros-mcp-serverで利用可能なツールの一覧が表示されます。
以降、ロボットに関する操作はClaude側で適切なツールを選択、実行していくことになります。

MCPサーバの確認ができたら、ロボットへの指示を送ります。

このキャプチャのようにCalled MCP, Called ros-mcpが表示されていれば、Claude Codeからros-mcp-serverを利用できています。

続けてトピック一覧を取得してみます。

VM側でros2 topic listした場合と同様のトピックを取得できています。

次に、ロボットを動作させるよう指示します。
ここでは正方形の軌跡を描くように動くように指示します。

Claude Codeでの処理が完了した後、VM側のTurtleSimを確認すると、指示通りの動作をしていることがわかります。

まとめ

この記事では、ros-mcp-serverを利用してClaude CodeからROS2(TurtleSim)を操作する手順を紹介しました。rosbridge-serverを介することで、ロボット側の既存コードを変更することなく、LLMへの自然言語による指示だけでトピックの確認やロボットの動作指示ができることを確認できました。
今回はTurtleSimによるシンプルな例でしたが、ros-mcp-serverはサービス呼び出しやアクションの実行、パラメータ操作にも対応しているため、実機のロボットに対してもより高度な操作をLLM経由で行うことが可能です。

SRAでは、ROSの環境構築から各種開発まで幅広く支援いたします。(お問い合わせはこちら

参考: robotmcp/ros-mcp-server


  • 本ページには、弊社独自の考察・見解を記述している箇所がございます。
  • 本ページの利用によって生じたいかなるトラブル・損害等について当社は一切責任を負わないものとします。
  • 本ページは予告なく内容の変更や削除を行う場合があります。