list_nodes
Fetch the ROS 2 graph's nodes in a single read-only CLI call, returning name, namespace, full_name, and duplicate_count for each; empty if none exist.
Instructions
ROS 2 graph only; on a DDS-only setup use list_participants. List the nodes on the ROS 2 graph (or the mock graph) from one ros2 node list call as a NodeListing: name, namespace, full_name, duplicate_count. duplicates lists full names used by several nodes (a per-node tool then answers for one of them, unidentified). Nodes starting with an underscore are hidden and a node on another ROS_DOMAIN_ID is invisible. Empty nodes when the graph has none. Use get_node_info for one node's interfaces. Raises an MCP error without a ros2 CLI. Read-only; cheap (one CLI call). Duration: runs the ros2 CLI behind the ROS lock (one call at a time); the whole call, lock wait included, ends within 45 s, and if another ros2 call holds the lock it fails at once with a busy error (retry).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| note | No | One sentence of context, or `None`. | |
| nodes | Yes | Nodes on the graph, one entry per distinct full name, sorted by name. | |
| total | Yes | Distinct node names on the graph (no cap applies). | |
| returned | Yes | Length of `nodes`. | |
| truncated | Yes | True when `returned` is less than `total` because of a cap. | |
| duplicates | Yes | Full names that appear more than once on the graph. Empty when every name is unique. | |
| mode_effective | Yes | `live` or `mock` (fixtures). |