netx/skills/nms/netx-nms/SKILL.md
oliver 13ce2482ab Add shared skills tree and rename MCP NMS tools to *Nms*.
Canonical playbooks live under skills/; netx-mcp 0.3.0 exposes queryNmsAlarms et al. with nms_ne_id aliases.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-06 01:46:21 +08:00

2.8 KiB
Raw Blame History

name description
netx-nms netx NMS playbook (MCP + DSH): vendor NMS adapter (zte-ume) for alarm query/aggregate/diagnostics, NE inventory, raw fields, and read-only SQL. Trigger: NMS alarms, host_name, Critical Top, LOS, BN EMS, netx ops.

netx-nms (vendor NMS adapter)

Naming (MCP + DSH)

Canonical playbooks live in netx/skills/ (this file is mirrored into MCP packages / dsh-netxops). Edit the netx repo copy; run sync scripts — do not maintain divergent forks.

Host How tools appear
MCP (netx-mcp) Bare names: queryNmsAlarms, …
DSH (dsh-netxops) Prefixed: netx__queryNmsAlarms, … (same camelCase stem)

REST still /v1/ume/* for provider zte-ume. Prefer nms_ne_id / nms_ne_ids; legacy ume_* aliases still work.

Path lookup → common skill netx-common (findTopologyPaths). Canvas → netx-topology(含 dual_unit / 布图;DSH 可把部分布局工具放在实验 tool group)。

Tool names

Purpose Tool
Alarm list queryNmsAlarms
Alarm aggregate aggregateNmsAlarms
Diagnostics runNmsDiagnostics
NE inventory queryNmsNeInventory
NE detail getNmsNe
Field list listNmsAlarmFields
Raw rows queryNmsAlarmsRaw
Dynamic aggregate aggregateNmsAlarmsRaw
SQL sqlQueryNms
Managed CLI (other skill) listManagedNe / getManagedNe / execManagedNe / listCliTargets

Tool order

  1. Freshness first: runNmsDiagnostics or aggregateNmsAlarms → meta.last_seen_min / last_seen_max.
  2. Overview: aggregateNmsAlarms + runNmsDiagnostics; samples via queryNmsAlarms (one page).
  3. Evidence: listNmsAlarmFields → queryNmsAlarmsRaw (field_preset=evidence).
  4. Custom aggregate: aggregateNmsAlarmsRaw.
  5. SQL: sqlQueryNms (SELECT only; statement_timeout_ms).
  6. Paths: findTopologyPaths via netx-common.
  7. Device CLI: netx-common — multi-NE = one execManagedNe batch.

Short-intent recipes

User says Recipe
fiber cut / LOS / 断纤 queryNmsAlarmsRaw(keyword=LOS) and/or Fiber Break → host_name list
offline / BN EMS keyword=BN EMS
Critical Top aggregateNmsAlarms(severity=critical, top_ne=20)
CRC in area Raw keyword=CRC + AREA- hostname prefix
optical power threshold keyword=optical power + area — not fiber-cut
one hostname host-scoped queryNmsAlarms / Raw only

Guardrails

  • Prefer non-SQL; filter severity → keyword/host → time → ne_id.
  • Lists ≤2 pages; page_size default 50.
  • Display host_name only; never bare UUID to users.
  • getManagedNe needs managed id; NMS UUID → getNmsNe / execManagedNe(nms_ne_id=...).

See reference.md.