zenoh插件mcp
A. 泽诺 公开一个插件 MCP(模型上下文协议) 服务器,允许LLM代理与实时zenoh网络交互。
特性
- 29个MCP工具 用于发布/订阅、查询、订阅、可查询项、网络发现、生动性和关键表达式实用程序
- 3个MCP提示 用于引导网络发现、主题监控和请求/响应工作流
- MCP资源 公开会话信息、订阅缓冲区和可查询队列
- SSE运输 --多个MCP客户端可以以隔离状态并发连接
- 每个客户端生命周期 --订阅、可查询项和活力标记在断开连接时自动清理
- 访问控制 --可配置的允许/拒绝键表达式上的正则表达式过滤器
- 作用域前缀 --应用于所有操作的可选键表达式前缀
- 双模式 --以a的形式运行
zenohd插件或作为独立的桥接二进制文件
截图
Claude Code with zenoh MCP - discovering network *Claude Code使用discover_network提示符连接到zenoh网络*
Claude Code querying zenoh queryable *通过MCP工具查询可查询的zenoh*
Claude Code subscribing to zenoh topics *订阅zenoh主题并接收实时消息*
Network topology graph from zenoh plugin *使用zenoh_get_topology查看网络拓扑*
快速开始
桥接模式(独立)
# Build
cargo build --release
# Start with a zenoh router
zenoh-bridge-mcp -e tcp/127.0.0.1:7447 --mcp-listen 0.0.0.0:8808插件模式(zenohd内部)
添加到您的zenoh配置中:
{
plugins: {
mcp: {
listen: "0.0.0.0:8808"
}
}
}然后使用搜索路径中的插件库启动zenohd。
连接MCP客户端
MCP服务器监听配置的地址(默认 0.0.0.0:8808)使用流式HTTP传输(SSE)。配置您的MCP客户端以连接到 http://:8808/mcp.
使用AI编码工具
一旦网桥或插件运行,配置您的AI工具,将其作为远程MCP服务器连接到它。
克劳德代码(CLI)
claude mcp add zenoh --transport http http://localhost:8808/mcp这将为所有未来的Claude Code会话注册zenoh MCP服务器。验证:
claude mcp list克劳德桌面
编辑 ~/Library/Application Support/Claude/claude_desktop_config.json (macOS)或 %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"zenoh": {
"url": "http://localhost:8808/mcp"
}
}
}重新启动克劳德桌面。zenoh工具将出现在工具选择器(锤子图标)中。
光标
打开光标设置>MCP,单击“添加新的MCP服务器”,然后配置:
- 名称:
zenoh - 类型:
http - 统一资源定位符:
http://localhost:8808/mcp
或编辑 .cursor/mcp.json 在项目根目录中(或 ~/.cursor/mcp.json 全球):
{
"mcpServers": {
"zenoh": {
"type": "http",
"url": "http://localhost:8808/mcp"
}
}
}VS代码(GitHub副本)
添加到您的VS代码 settings.json (用户或工作区):
{
"mcp": {
"servers": {
"zenoh": {
"type": "http",
"url": "http://localhost:8808/mcp"
}
}
}
}或者添加一个 .vscode/mcp.json 文件到您的项目:
{
"servers": {
"zenoh": {
"type": "http",
"url": "http://localhost:8808/mcp"
}
}
}帆板运动
编辑 ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"zenoh": {
"serverUrl": "http://localhost:8808/mcp"
}
}
}任何兼容MCP的客户端
服务器终结点为:
POST http://:8808/mcp
Headers:
Content-Type: application/json
Accept: application/json, text/event-stream服务器遵循 MCP流式HTTP传输规范:
POST /mcp--发送JSON-RPC请求,接收SSE响应GET /mcp--打开服务器启动的通知的SSE流(需要Mcp-Session-Id)DELETE /mcp--结束会话
远程访问
如果桥在不同的机器上运行,请更换 localhost 使用主机的IP或主机名。没有内置身份验证,因此在网络级别(防火墙、VPN等)限制访问。
验证连接
连接后,询问您的AI助手:
“使用zenoh_info工具向我显示会话信息”
如果连接正常,您将看到zenoh会话ID和任何连接的路由器/对等端。然后尝试:
“发现zenoh网络”(这会触发 discover_network 提示)MCP工具
核心发布/订阅/查询
| 工具 | 说明 |
|---|---|
zenoh_put | 将值发布到键表达式 |
zenoh_delete | 删除关键表达式(墓碑) |
zenoh_get | 发送查询并收集回复 |
zenoh_subscribe | 订阅密钥表达式(缓冲) |
zenoh_unsubscribe | 删除订阅 |
zenoh_poll_subscription | 排空缓冲样品 |
可查询项
| 工具 | 说明 |
|---|---|
zenoh_declare_queryable | 注册可查询(查询缓冲) |
zenoh_poll_queries | 清空待处理的查询 |
zenoh_reply | 回复查询 |
zenoh_reply_err | 回复错误 |
zenoh_undeclare_queryable | 删除可查询项 |
发现与网络反思
| 工具 | 说明 |
|---|---|
zenoh_scout | 通过多播发现路由器/对等端 |
zenoh_info | 获取会话ZID,连接路由器/对等设备 |
zenoh_list_publishers | 列出已声明的出版商 |
zenoh_list_subscribers | 列出已声明的订阅者 |
zenoh_list_queryables | 列出声明的可查询项 |
zenoh_list_transports | 列出连接的传输及其链接详细信息 |
zenoh_get_topology | 获取链接状态图(DOT格式) |
zenoh_get_node_info | 获取节点版本、定位器、会话、插件 |
zenoh_get_metrics | 获取OpenMetrics统计数据 |
zenoh_get_plugins | 列出已加载的插件 |
zenoh_admin_query | 原始管理空间查询 |
活泼
| 工具 | 说明 |
|---|---|
zenoh_liveliness_get | 查询活动令牌 |
zenoh_liveliness_declare | 声明令牌 |
zenoh_liveliness_subscribe | 订阅更改 |
zenoh_liveliness_undeclare | 取消声明令牌 |
密钥表达式实用程序
| 工具 | 说明 |
|---|---|
zenoh_key_expr_check | 验证和规范 |
zenoh_key_expr_intersects | 检查交叉口 |
zenoh_key_expr_includes | 检查是否包含 |
配置
{
plugins: {
mcp: {
// HTTP listen address for SSE transport
listen: "0.0.0.0:8808",
// Optional key expression prefix for all operations
// scope: "factory-1",
// Buffer sizes
subscription_buffer_size: 1000,
queryable_buffer_size: 100,
// Defaults
default_get_timeout_ms: 5000,
default_encoding: "text/plain",
// Access control (regex)
// allow: "^demo/.*",
// deny: "^internal/.*",
// Admin space access
admin_space_access: true,
}
}
}建筑
cargo build --release人工产品:
target/release/libzenoh_plugin_mcp.dylib(或.so)--zenohd插件target/release/zenoh-bridge-mcp--独立桥
测试
cargo test -- --test-threads=1建筑
zenohd / bridge
└── zenoh-plugin-mcp
├── MCP Server (SSE/HTTP, multi-client)
│ ├── Per-client McpSessionState
│ │ ├── Subscriptions (ring buffers)
│ │ ├── Queryables (pending query buffers)
│ │ └── Liveliness tokens
│ ├── 29 Tools
│ ├── 3 Prompts
│ └── Resources
└── Zenoh Session (from runtime)