netx/.cursor/skills/netx-topology/SKILL.md
oliver 2d92dde8e5 Add filter-based topology bulk writes and refine API key scopes UX.
Filter add/layout/remove keeps MCP payloads small; tokens default MCP scopes and edit them in a modal with a compact help tip.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-04 07:39:14 +08:00

58 lines
2.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
name: netx-topology
description: >-
用 netx-topology MCP 查链路、画拓扑(不污染 Fabric)。触发:画拓扑、LLDP、Fabric、netx-topology。先读再调。
user-invocable: true
disable-model-invocation: false
---
# netx 拓扑 MCP
通过 **`netx-topology`** MCP(包 `netx-topology-mcp`)操作 netx 拓扑。与告警/CLI 的 **`netx`** MCP **分开**;画图只用本包工具。
安装与 scopes 真源:仓库 [`docs/MCP_TOPOLOGY.md`](../../../docs/MCP_TOPOLOGY.md)。
## 硬规则
1. **先读后写**:任何建图/摆点前先 `getTopologyTree`;改已有图前可 `getTopologyView`(大图慎拉整图)。
2. **筛选交给 API**:加/挪/删优先传 `keyword` / `role` / `vendor` / `link_status`(加节点再用 `limit`/`offset`)。**不要**先 list 全量再回传成千上万 id。
3. **只动已有 Fabric**:禁止 `managed_ne_ids` / `ume_ne_ids`;禁止臆造 fabric id。
4. **不污染 Fabric**:不能手工建链、不能 populate、不能删 Fabric / 整图。邻居用 `projectTopologyNeighbors`。
5. **写权限**:需要 `ne:write`。tools/list 没有写工具 → 停,让用户用「MCP + 拓扑写」签发 Token。
6. **无 folder 则停**:`createTopologyView` 需要已有 `folder_id`;MCP 不能新建 region。
7. **单画布硬顶 2000**:满了 `truncated` / 触顶 → 新建另一张画布继续;全网五万设备靠多画布切片。
## 推荐流水线(从零画一张图)
```
1 getTopologyTree → folder_id
2 createTopologyView → view_id
3 addTopologyViewNodes(keyword=…, limit) → 看 added / next_offset,循环 offset 直到无更多或满 cap
4 projectTopologyNeighbors → 可选
5 updateTopologyViewPositions(layout=grid|offset|stack, keyword=…) → API 自己筛并摆
6 (少量微调才用 positions[])
```
查链路不画图:`queryTopologyEdges` / `queryTopologyNeighborhood`。
## 工具速查
| 目的 | 工具 |
|------|------|
| 树 / 画布 | `getTopologyTree`, `listTopologyViews`, `getTopologyView`, `createTopologyView` |
| 筛选批量加 | `addTopologyViewNodes`(filters + limit/offset) |
| 筛选批量挪 | `updateTopologyViewPositions`(layout + filters) |
| 筛选批量删 | `removeTopologyViewNodes`(filters) |
| 投影邻居 | `projectTopologyNeighbors` |
| Fabric 读 | `search…` / `list…` / `queryTopologyEdges` / `…Neighborhood` / summary |
## 对人说清楚
- 网页观看:拓扑页开 **「实时同步」**(默认关)。
- 回报:`view_id`、画布名、`added`/`updated`/`removed`、是否 `truncated`/`next_offset`。
## 不要做
- 不要用 `netx` 告警 MCP 冒充拓扑写。
- 不要为画图去造 Fabric / 改 managed-NE。
- 不要在未确认 folder/view 时连环盲写。