用途:面向多厂商网络设备执行 gNMI 流式遥测操作,包括按结构化 YANG 模型路径查询设备状态、订阅实时遥测流、在 ITSM 审批下应用配置变更、浏览 YANG 能力,以及将 gNMI 数据与 CLI 输出对比。
实现方式:gnmi-mcp 为 gNMI Streaming Telemetry MCP Server,使用 stdio 传输。
主要工具:gnmi_get 通过 YANG 路径获取状态/配置;gnmi_set 应用配置(需 ServiceNow CR);gnmi_subscribe 建立 SAMPLE 或 ON_CHANGE 订阅;gnmi_unsubscribe 取消订阅;gnmi_get_subscriptions 列出活动订阅;gnmi_get_subscription_updates 获取最新遥测更新;gnmi_capabilities 发现设备 YANG 模型与编码;gnmi_browse_yang_paths 浏览模块下 YANG 路径树;gnmi_compare_with_cli 对比 gNMI 与 CLI 状态;gnmi_list_targets 列出已配置目标设备。
工作流:查询设备状态为列出目标、发现能力、浏览路径、获取数据;实时监控为订阅、确认订阅、轮询更新、结束后取消;配置变更为先取基线、带 CR 号执行 Set、再验证;另有 gNMI 与 pyATS CLI 数据并排对比。
支持厂商与端口:Cisco IOS-XR(57400,JSON_IETF)、Juniper(32767,JSON_IETF)、Arista(6030,JSON)、Nokia SR OS(57400,JSON_IETF)。
环境变量:GNMI_TARGETS(目标设备 JSON 数组,含名称、主机、端口、凭据、厂商)、GNMI_TLS_CA_CERT、GNMI_TLS_CLIENT_CERT(可选)、GNMI_TLS_CLIENT_KEY(可选)。
安全与限制:Get、Subscribe、Capabilities、Browse 为只读安全操作;Set 受 ITSM 门控,需处于 Implement 状态的 ServiceNow 变更请求;所有连接强制 TLS,支持 mTLS;操作记录到 GAIT 审计轨迹;最多 50 个并发订阅,可由 GNMI_MAX_SUBSCRIPTIONS 配置。出错时直接报告失败与错误信息,不猜测结果;只读调用可检查连通性后重试一次,改变状态或发送消息的调用在结果未知时不应重复。收费、价格等信息暂未提供。