Getting started
zenoh-mcp is a Rust binary. Build it once, then point your MCP client at it.
Prerequisites
Section titled “Prerequisites”- A Rust toolchain (
cargo), stable. - Network reachability to a Zenoh router (default
tcp/localhost:7447). The binary connects in client mode — it does not run its own router.
git clone https://github.com/nargetdev/zenoh-mcpcd zenoh-mcpcargo build --release# binary at ./target/release/zenoh-mcpThe first build compiles zenoh 1.8.0 and rmcp, so it takes a couple of
minutes. Subsequent builds are fast.
Register with Claude Code
Section titled “Register with Claude Code”claude mcp add zenoh -- /abs/path/to/zenoh-mcp/target/release/zenoh-mcp
# or pin a default router via env var:claude mcp add zenoh \ -e ZENOH_CONNECT=tcp/192.0.2.10:7447 \ -- /abs/path/to/zenoh-mcp/target/release/zenoh-mcpVerify it connected:
claude mcp list # zenoh: ... ✓ ConnectedRegister with any MCP client
Section titled “Register with any MCP client”Add a stdio server entry (e.g. .mcp.json, claude_desktop_config.json, or your
client’s equivalent):
{ "mcpServers": { "zenoh": { "command": "/abs/path/to/zenoh-mcp/target/release/zenoh-mcp", "env": { "ZENOH_CONNECT": "tcp/192.0.2.10:7447" } } }}First calls
Section titled “First calls”zenoh_info— confirm the binary can reach your router.zenoh_list_keys— discover what is being published (likeros2 topic list).zenoh_subscribewith akeyfrom the list — tap it for a few seconds and read decoded samples.
See the Tool reference for every argument.