# Yaniswav Topicforge MCP server

Source: https://glimind.com/server/mcp-registry%2Fio.github.yaniswav%2Ftopicforge
Registry id: `mcp-registry/io.github.yaniswav/topicforge`
Status: unknown

## Install

```json
{
  "mcpServers": {
    "yaniswav-topicforge-mcp-server": {
      "command": "uvx",
      "args": [
        "topicforge"
      ]
    }
  }
}
```

Claude Code:

```sh
claude mcp add yaniswav-topicforge-mcp-server -- uvx topicforge
```

## Tools (14)

- `analyze_bag`: Summarize a .mcap / .db3 recording or rosbag2_* directory (via ros2 bag info)
- `detect_qos_mismatches`: Incompatible QoS pairs between DDS readers and writers
- `get_node_info`: One node's publishers, subscribers, services, actions, parameters (secrets masked) and use_sim_time; a node that does not answer is reported, not an error
- `get_topic_info`: Message type, publisher/subscriber counts and QoS for one topic
- `health_check`: Environment and mode introspection. Always succeeds; reports mode next to requested_mode
- `list_endpoints`: DDS writers and readers with structured QoS, per-topic roll-up that flags orphans (writer with no reader, reader with no writer)
- `list_nodes`: ROS 2 nodes on the graph: names, namespaces, duplicate names (one ros2 node list call)
- `list_participants`: DDS participants on the domain: vendor, name (EntityName QoS, Cyclone) and hostname
- `list_topics`: Discover the ROS2 graph
- `participant_events`: Timeline of participant discovered / lost events
- `peek_bag_samples`: Decoded samples from a recorded bag, including ROS 1 .bag (rosbags ships with the package)
- `peek_dds_samples`: Raw DDS samples; structured on the three builtin discovery topics, presence-only on user topics
- `sample_messages`: Peek recent messages on a ROS2 topic (count capped at 50)
- `topic_metrics`: Frequency, sequence-gap and latency schema; data only for builtin discovery topics

Measured by Glimind (https://glimind.com): MCP handshake + tool list only, no tool is ever called. CC BY 4.0.
