mirror of
https://github.com/hansjone/netx.git
synced 2026-10-17 23:13:26 +08:00
MCP: serve tools from the API process over Streamable HTTP at /mcp
- 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>
This commit is contained in:
parent
918ece86c3
commit
52679a7cfc
150 changed files with 2367 additions and 2812 deletions
|
|
@ -6,7 +6,7 @@
|
|||
|-------|--------------|----------------------------------------|
|
||||
| `ops` | `ops/netx-ops/` | NMS 告警/库存/SQL + managed CLI + `findTopologyPaths` |
|
||||
| `topology` | `topology/netx-topology/` | 画布 / Fabric / dual_unit / 布图 |
|
||||
| `bizMonitor` | `biz-monitor/netx-biz-monitor/` | 割接/业务监控只读分析(独立 `netx-bizmonitor-mcp` 或 netxops 宿主工具) |
|
||||
| `bizMonitor` | `biz-monitor/netx-biz-monitor/` | 割接/业务监控只读分析(远程 `/mcp?groups=bizMonitor` 或 netxops) |
|
||||
| `biz-state` | `biz-state/netx-biz-state/` | 状态监控:TextFSM / parser / Profile(Cursor Agent;无 DSH 工具) |
|
||||
|
||||
## DSH 怎么用
|
||||
|
|
@ -16,6 +16,6 @@
|
|||
3. Settings → 能力组开关:开哪组就注册哪组的 **tools + 对应 skill**(含 **bizMonitor**)
|
||||
4. 其它预设可强制挂:`dsh-netxops/tools-ops|topology|biz-monitor`
|
||||
|
||||
MCP / Cursor:skill 根直接指本目录,包内不镜像 skills。不装 netxops 时,分别使用 `netx-mcp`(15 工具)、`netx-topology-mcp`(16 工具)和 `netx-bizmonitor-mcp`(8 工具);配置见根 `mcp.all.json`。独立包均通过 HTTP 访问 netx,不直连数据库。
|
||||
MCP / Cursor:连 netx API 的 `/mcp`(可用 `?groups=` 过滤)。配置见根 `mcp.all.json`。工具在服务端进程内执行,不另起 Python MCP 包。
|
||||
|
||||
**Cursor Agent**:加 biz_state 监控命令时启用或点名 **netx-biz-state**(`skills/biz-state/netx-biz-state/`)。
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
---
|
||||
name: netx-biz-monitor
|
||||
description: >-
|
||||
通过独立 netx-bizmonitor-mcp 或 netxops 分析割接与业务状态。
|
||||
通过 netx 远程 /mcp?groups=bizMonitor 或 netxops 分析割接与业务状态。
|
||||
无 ID 先查目录和批次,结合看板、变红项、双侧原始 A/B 键和采集命令原文判断故障。
|
||||
只读已有项目与评价结果,不创建模板、触发采集、执行评价或关闭红票。
|
||||
---
|
||||
|
|
@ -9,7 +9,7 @@ description: >-
|
|||
# netx-biz-monitor(割接 / 业务监控只读分析)
|
||||
|
||||
人配好监控与任务;AI 当晚做归因。
|
||||
独立 **netx-bizmonitor-mcp** 提供下表裸名;netxops 使用 `netx__` 加同名。两者均访问 netx REST,需 `biz-monitor:read`。安装和三组配置见 [MCP_BIZMONITOR.md](../../../docs/MCP_BIZMONITOR.md)。
|
||||
远程 MCP(`/mcp?groups=bizMonitor`)提供下表裸名;netxops 使用 `netx__` 加同名。需 `biz-monitor:read`。配置见 [MCP_BIZMONITOR.md](../../../docs/MCP_BIZMONITOR.md)。
|
||||
|
||||
## 工具(能力组 `bizMonitor`)
|
||||
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ description: netx 运维:告警、网元、只读 CLI。
|
|||
处理 netx **告警 / 网元清单 / 只读 CLI** 时遵循本手册。
|
||||
画布布图不在本 skill(见 **netx-topology**)。本手册里的「路径」仅指 `findTopologyPaths` 查两端关联。
|
||||
|
||||
**工具名**:DSH 为 `netx__` + stem(如 `netx__queryNmsAlarms`);独立 `netx-mcp` 使用同名裸 stem,共 15 个。下文一律写 stem。模型入参只用 `nms_ne_id/nms_ne_ids`;旧 `ume_*`、getManagedNe 的 `id/managed_ne_id` 别名已删除。
|
||||
**工具名**:DSH 为 `netx__` + stem(如 `netx__queryNmsAlarms`);远程 `/mcp`(`?groups=ops`)使用同名裸 stem,共 15 个。下文一律写 stem。模型入参只用 `nms_ne_id/nms_ne_ids`;旧 `ume_*`、getManagedNe 的 `id/managed_ne_id` 别名已删除。
|
||||
|
||||
**两套「一批」(勿混):**
|
||||
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ description: >-
|
|||
|
||||
| Host | Tools |
|
||||
|------|--------|
|
||||
| **MCP** `netx-topology-mcp` | 裸名(`sinkTopologyDualUnits` …);安装见 [`docs/MCP_TOPOLOGY.md`](../../../docs/MCP_TOPOLOGY.md) |
|
||||
| **MCP** `/mcp?groups=topology` | 裸名(`sinkTopologyDualUnits` …);见 [`docs/MCP_TOPOLOGY.md`](../../../docs/MCP_TOPOLOGY.md) |
|
||||
| **DSH** `dsh-netxops` | `netx__` + 同 stem。整组工具 + skill **`netx-topology`**(能力组 **topology**,默认关)。缺布局引擎能力时用 MCP。 |
|
||||
|
||||
Canonical: `netx/skills/topology/netx-topology/`(唯一正文)。
|
||||
|
|
@ -371,7 +371,7 @@ sinkTopologyDualUnits({
|
|||
## 代码热更
|
||||
|
||||
1. 本仓 MCP 用 `PYTHONPATH=…/src`(见用户 `~/.cursor/mcp.json`),改源码后不必为加载而 pip install。
|
||||
2. **必须重启** stdio 进程(杀旧 `python -m netx_topology_mcp` 后由 Cursor 拉起;或 MCP 面板禁用/启用)。
|
||||
2. **远程 MCP**:改服务端后重启 netx API;客户端重新 `tools/list`(或禁用/启用 MCP 面板)。
|
||||
3. `layoutTopologyView(catalog=true)` 核对:`version` / `rev`(`NETX_MCP_REV`)+ action 含 `pull_far_chains` / `compact_bbox`。
|
||||
4. 机器上常残留多份旧 MCP 进程 → 精修前 catalog 若仍缺 action,**杀光再启**;勿用旧进程半截交付,勿改走 HTTP/临时 py。
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue