mirror of
https://github.com/hansjone/netx.git
synced 2026-10-20 05:53:14 +08:00
- netx_api/mcp_remote: ops / topology / bizMonitor tools, Bearer auth, per-tool RBAC filtering, ?groups= filter, readOnlyHint and group meta. - Mount the official MCP Streamable HTTP app at /mcp (stateless); AuthAuditMiddleware is pure ASGI and skips /mcp. - Let uvicorn chunk MCP responses; some Windows LSPs rewrite Content-Length replies on */mcp* paths into broken chunked framing. - NETX_MCP_ALLOWED_HOSTS opts into DNS-rebinding checks (off by default so LAN and reverse-proxy hosts work; Bearer is the gate). - Remove the three stdio Python MCP packages; tests moved to /mcp, including real-TCP framing regressions. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
4 KiB
4 KiB
| name | description |
|---|---|
| netx-biz-monitor | 通过 netx 远程 /mcp?groups=bizMonitor 或 netxops 分析割接与业务状态。 无 ID 先查目录和批次,结合看板、变红项、双侧原始 A/B 键和采集命令原文判断故障。 只读已有项目与评价结果,不创建模板、触发采集、执行评价或关闭红票。 |
netx-biz-monitor(割接 / 业务监控只读分析)
人配好监控与任务;AI 当晚做归因。
远程 MCP(/mcp?groups=bizMonitor)提供下表裸名;netxops 使用 netx__ 加同名。需 biz-monitor:read。配置见 MCP_BIZMONITOR.md。
工具(能力组 bizMonitor)
| 工具 | 用途 |
|---|---|
listBizMonitors |
入口目录:列出割接/监控对比项目 + 业务监控任务(无需 project_id) |
listBizMonitorBatches |
批次目录:project_id→割接批次;task_id→采集批次;batch_id,kind=runs→evaluate run |
getBizMonitorContext |
任务定义:项目、监控/对比模板、归一化规则、端口映射、关联任务与命令项 |
getBizMonitorBoard |
批次进度、evaluate run、sheet 卡、verdict 统计 |
listBizMonitorReds |
红单 + evidence |
getBizMonitorDiffs |
run 明细,color=red;offset/limit 分页;q 为关键词 |
getBizCollectBatch |
采集工作簿摘要、commands 和 sheet 目录;不含全部指标行或原文 |
getBizCollectCommandRaw |
以采集 batch_id + command_id 获取单命令原文,按需调用,可能很大 |
交叉验证真障时再用 ops 的 execManagedNe / 拓扑路径。独立 MCP 仅允许单行 show / display,不执行配置或 shell 脚本。
字段约定(必守)
old_key/new_key:设备采集原文 A/B(大屏与结论用这个)match_*/ evidence.iface.normalized|map_*:内部配对,不要把映射后的 BB 说成两侧端口- evidence.*.command.raw_command:实际 show 命令
- evidence.*.device / collect:哪台设备、何时采的
推荐顺序
- 无 id →
listBizMonitors(kind=projects|tasks|all,可加q/purpose) listBizMonitorBatches(project_id)或(task_id)— 拿到 完整 batch_id;需要 run 时再kind=runs/include_runsgetBizMonitorContext(project_id)— 弄清盯什么getBizMonitorBoard(batch_id)— 进度 / missing / skippedlistBizMonitorReds或getBizMonitorDiffs(run_id,color=red,limit=100,offset=0);按 total 翻页,不能只看第一页就宣称全部红项。- 看 evidence:parse 失败?current_missing?映射 miss?归一化误伤?
- 从差异 evidence 的 collect/command 取两侧采集 batch_id/command_id →
getBizCollectCommandRaw;若证据不全,用对应 task_id 查采集批次,再 getBizCollectBatch 查命令。不要把割接 batch_id 当成采集 batch_id。 - 像真障 →
execManagedNe现场核对
Verdict 速查(skill 解释,工具不硬编码)
| verdict | 含义(窗口内) |
|---|---|
| migrated | expect 项已迁到新侧 |
| anomaly | 异常(多为红) |
| unfinished | expect 未完成(验收常红) |
| migrating / expected / ok | 过程态 / 正常 |
| lost / not_involved | 丢失或无关 |
误报优先查
parse_status非 ok / 行数为 0- board:
current_missing/collect_skipped - 端口映射漏配、归一化前后不一致导致假 anomaly
- 再谈真实业务问题
配置整改与关红单由人做;本 skill 只读分析。
目录或批次为空时,明确说明没有可评价的数据;不把空红票当作割接通过。run 尚未完成或存在 current_missing/采集失败时,不给通过结论。工具本身不启动 evaluate;需要人先在 Web 完成定义、采集和评价。old_key/new_key 是设备原始端口;例:归一化和映射将 GE-old 匹配到 xgei-new,结论仍分别展示 GE-old 与 xgei-new,不能用内部匹配键替代。