Command Palette

Search for a command to run...

UnylyUnyly
Весь каталог

Rosgraph

БесплатноНе проверен

Provides ROS2 workspace graph knowledge including package dependencies, message/service/action definitions, and topic pub/sub relationships through MCP tools.

GitHubEmbed

Описание

Provides ROS2 workspace graph knowledge including package dependencies, message/service/action definitions, and topic pub/sub relationships through MCP tools.

README

ROS2ワークスペースの「グラフ的知識」(パッケージ依存、メッセージ/サービス/アクション定義とその使用箇所、トピックのpub/sub関係)を、素のLSPやSerenaのようなシンボル検索ツールでは扱えない粒度で提供するMCPサーバー + ローカルWebダッシュボード。

なぜ作ったか

Claude Codeにはclangd-lspプラグインのようなネイティブの宣言的LSP統合があり、シンボル定義/参照検索は既にそちらでカバーされている(~/.claude/plugins/参照)。このツールはそれを再実装せず、LSPが理解できないROS2固有のクロスファイル・クロスパッケージ概念(package.xmlの依存グラフ、.msg/.srv/.actionの定義とその使用箇所、トピックのpub/sub接続)だけに集中する。

外部ネットワーク通信はゼロ。すべて静的ファイル解析で完結し、ros2/colcon CLIやビルド・source済みの環境にも依存しない。

セットアップ

uv sync

使い方

# ワークスペースをスキャンしてキャッシュを構築
uv run rosgraph-mcp scan --workspace /path/to/ros2_ws

# MCPサーバーとして起動 (stdio)
uv run rosgraph-mcp serve

# ダッシュボードを起動 (http://127.0.0.1:8765)
uv run rosgraph-mcp dashboard --workspace /path/to/ros2_ws

Claude Codeへの登録

このリポジトリのディレクトリ内で実行する:

claude mcp add --scope user rosgraph -- uv run --project "$(pwd)" rosgraph-mcp serve

特定のワークスペースを既定にしたい場合は、--env ROSGRAPH_MCP_WORKSPACE=/path/to/ros2_wsを追加するか、各ツール呼び出し時にworkspace_rootを指定する。

提供するMCPツール(Phase 1時点)

ツール 説明
list_packages ワークスペース内のパッケージ一覧(グループ/サブグループ/名前でフィルタ可)
list_groups このワークスペースに実際に存在するグループ/サブグループの一覧
get_package_dependencies 指定パッケージの依存関係(package.xml由来、1ホップ)
rescan_workspace キャッシュを明示的に再構築

今後のフェーズで.msg/.srv定義検索、pub/subグラフツールを追加予定(詳細は設計書参照)。

グループ/サブグループの分類(どのROS2ワークスペースでも動く汎用ツール)

デフォルトでは特定プロジェクトの知識を一切前提にしない、汎用的な分類ルールのみを使う:

  • グループ = src/<group>/... の最初のパスセグメントそのまま
  • サブグループ = その直下のディレクトリ名

これだけで大抵のROS2ワークスペースはそれなりに意味のある分類になるが、より細かい分類をしたいプロジェクトは、ワークスペースのルートに.rosgraph-mcp.tomlを置くことでカスタマイズできる(このリポジトリ自体にはプロジェクト固有の知識を一切持たせない)。

# <workspace_root>/.rosgraph-mcp.toml

[groups.core]
# src/launch/, src/launch_ros/, src/rclcpp/ を "core" という1つのグループにまとめる
aliases = ["launch", "launch_ros", "rclcpp"]

[groups.autoware]
# src/autoware/universe/planning/... のように、universe/core の直下にさらに
# カテゴリディレクトリがある場合、サブグループを "universe-planning" のように
# 1階層深く分類する
tier_dirs = ["universe", "core"]

設定ファイルが無ければ完全に汎用的な既定ルールのみが使われる。list_groupsで実際にどう分類されたかをいつでも確認できる。

既知の制約

  • pub/sub検出(Phase 3以降)は正規表現ベースのヒューリスティックであり、完全なAST解析ではない。変数経由のトピック名、launchファイルでのリマップは検出できない場合がある。
  • .msg/.srv/.actionのネスト型解決は、呼び出し側がfind_message_definitionを再帰的に呼ぶ設計であり、パーサ自体は解決しない。

from github.com/kimurariku/rosgraph-mcp

Установка Rosgraph

У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.

▸ github.com/kimurariku/rosgraph-mcp

FAQ

Rosgraph MCP бесплатный?

Да, Rosgraph MCP бесплатный — установка в пару кликов через Unyly без оплаты.

Нужен ли API-ключ для Rosgraph?

Нет, Rosgraph работает без API-ключей и переменных окружения.

Rosgraph — hosted или self-hosted?

Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.

Как установить Rosgraph в Claude Desktop, Claude Code или Cursor?

Открой Rosgraph на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.

Похожие MCP

Compare Rosgraph with

Не уверен что выбрать?

Найди свой стек за 60 секунд

Автор?

Embed-бейдж для README

Похожее

Все в категории communication