mcpField
N
Netmon (demo)

Netmon (demo)

远程服务
netmon.com云与基础设施07 周前更新

关于 Netmon (demo)

Netmon 的公开只读演示 MCP 服务,面向希望通过 AI 助手查询网络监控数据的用户。它基于虚构网络的去标识化快照提供与真实 Netmon 相同形态的响应,无需账户、令牌或安装。

主要功能

  1. 01只读查询网络监控数据
  2. 02覆盖设备、接口与流量
  3. 03检索日志与安全事件
  4. 04查看告警和 Windows Agent 数据

适用场景

  1. 01检查哪些设备离线
  2. 02查看指定时段的安全告警
  3. 03查找高带宽主机及通信对象

MCP 相关

提供远程 MCP 服务端点,供兼容 MCP 的客户端连接。公开演示只提供只读工具,数据来自记录的快照。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://netmon.com/mcp-demo/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

工具

36
参数类型必填说明
entity_identifierstring是要查询的 IP 地址或主机名。

详细介绍

Netmon MCP

将 AI 助手连接到 Netmon 设备。

Netmon 在设备本身搭载了 MCP 服务。此仓库包含客户端桥接程序:一个在你自己的机器上运行的小型 Node 进程,通过 stdio 与 Claude Desktop 通信,并通过 HTTPS 将每条 JSON-RPC 消息转发到 Netmon 的 /mcp 端点。

连接后,助手可直接调用 Netmon 的工具,读取你的设备、接口、日志、流记录、告警和 Windows Agent 数据——使用与任何操作员相同的登录信息和权限,并遵守相同的标签限制。


先试用——无需设备

一个公开的只读演示服务会针对一个虚构的 90 台设备网络的去标识化快照,提供相同的 36 个工具:

https://netmon.com/mcp-demo/mcp

无需账户、令牌或安装。将任何 MCP 客户端指向它:

claude mcp add --transport http netmon-demo https://netmon.com/mcp-demo/mcp   # Claude Code
codex mcp add netmon-demo --url https://netmon.com/mcp-demo/mcp               # OpenAI Codex
gemini mcp add --scope user --transport http netmon-demo https://netmon.com/mcp-demo/mcp
opencode mcp add netmon-demo --url https://netmon.com/mcp-demo/mcp
cline mcp install netmon-demo --transport http https://netmon.com/mcp-demo/mcp
devin mcp add -s user netmon-demo https://netmon.com/mcp-demo/mcp             # Windsurf / Devin Desktop
code --add-mcp '{"name":"netmon-demo","type":"http","url":"https://netmon.com/mcp-demo/mcp"}'
goose session --with-streamable-http-extension "https://netmon.com/mcp-demo/mcp"

图形界面客户端——Claude Desktop(设置 → 连接器 → 添加自定义连接器)和 ChatGPT(开发者模式 → 连接器)——选择认证方式为 None 的 URL。对于 Cursor、Zed、Kimi Code CLI、Continue 和 LM Studio, 将 URL 填入相应客户端的 MCP 配置文件:

{
  "mcpServers": {
    "netmon-demo": { "url": "https://netmon.com/mcp-demo/mcp" }
  }
}

然后问它点实际问题:“哪些设备离线了?”、“显示上周的 Suricata 告警”、 “哪个主机占用的带宽最多,它在与谁通信?”

这是一个测试夹具,不是真实设备:不会写入任何内容,也不会连接真实网络, 每个回答的格式都与真实 Netmon 返回的结果一致——时间戳会向前调整, 因此快照始终显示为最近一天左右的数据。


为什么需要本地桥接程序

MCP 客户端与局域网中的设备之间隔着两道屏障,而桥接程序可以同时解决这两个问题。

连接来自哪里。 Claude Desktop 的远程连接器选项和 ChatGPT 的自定义连接器,都会从厂商的云端获取 MCP URL,而不是从你的机器获取——Anthropic 的文档对此有明确说明;其连接器会解析主机名并拒绝私有地址,因此在请求离开其网络之前,你的设备日志中不会留下任何记录。大多数其他客户端(Claude Code、Codex、Gemini CLI、Cursor、VS Code、Zed、Cline、Continue、opencode、Goose、LM Studio、Kimi)则从你自己的机器发起连接,不受影响。

证书。 这个问题几乎所有人都会遇到。大多数客户端会根据操作系统信任存储验证 TLS,且不提供跳过验证的选项;而设备附带的是自签名证书——因此路由成功,但握手失败。你可以将设备的证书安装到机器的信任存储中,也可以使用桥接程序,由它在首次使用时固定证书。

桥接程序作为本地进程运行,可同时处理这两个问题。它并非 Claude 专用的变通方案,而是通用解决方案。

如果你的设备可从互联网访问,且使用受公开信任的证书,则可以跳过桥接程序,直接将任何 MCP 客户端指向该端点。请参见下文的安装——任意 MCP 客户端。


要求

  • 已启用 MCP 服务的 Netmon 设备(Netmon 7.0.20 或更高版本)。
  • 具有 API 权限的用户账户,以及一个包含你希望助手拥有的 mcp:* 范围的个人访问令牌。
  • 使用 .mcpb 安装时需要 Claude Desktop。Claude Desktop 自带 Node 运行时,因此无需其他组件。在 Claude Desktop 外运行桥接程序则需要 Node 18 或更高版本。

安装 — Claude Desktop

  1. 从 Releases 下载 netmon-mcp-<version>.mcpb。同一扩展包也随设备一同提供 — Settings → System → Downloadables → Claude Desktop Extension。

  2. 在 Claude Desktop 中,打开 Settings → Extensions → Advanced settings → Extension Developer → Install Extension…,然后选择该文件。

  3. 填写扩展要求的两项设置:

    设置值
    Netmon URLhttps://<your-netmon>/mcp — 完整端点,包括 /mcp
    API Token个人访问令牌(见下文)。如果省略 Bearer 前缀,系统会自动添加。
  4. 重启扩展。询问 Claude 类似 “列出已离线的设备” 这样的问题,以确认其正常工作。

创建令牌

在 Netmon 中,前往 Settings → Users,点击用户旁边的钥匙图标,然后创建个人访问令牌。仅选择助手所需的作用域 — 令牌之后无法扩大权限,并且可随时在同一页面撤销。

该账户必须拥有 API 权限。否则,创建令牌和 OAuth 授权都会被拒绝。


安装 — 任意 MCP 客户端

设备在 https://<your-netmon>/mcp 提供 Streamable HTTP 服务(POST 用于 JSON-RPC,GET 用于服务器到客户端的 SSE 流,DELETE 用于结束会话)。

支持 OAuth 2.1 的客户端会自行发现授权服务器:端点收到未经身份验证的请求时,会返回 401 和 WWW-Authenticate: Bearer resource_metadata="…" 挑战,指向 RFC 9728 受保护资源元数据,并同时提供 RFC 8414 授权服务器元数据和位于 /auth/register 的动态客户端注册。你通过浏览器登录自己的 Netmon,并在授权页面批准作用域。

不支持 OAuth 的客户端直接传入令牌:

{
  "mcpServers": {
    "netmon": {
      "url": "https://netmon.example.com/mcp",
      "headers": {
        "Authorization": "Bearer <your-token>"
      }
    }
  }
}
Claude Code 和自签名证书

大多数设备使用自签名证书。直接使用 type: http 配置会失败 — OAuth 引导流程会拒绝该证书,且不会读取 NODE_EXTRA_CA_CERTS。请改用桥接程序,它会自行处理证书:

{
  "mcpServers": {
    "netmon": {
      "command": "node",
      "args": ["/path/to/netmon-mcpd/server/index.js"],
      "env": {
        "NETMON_URL": "https://netmon.example.com/mcp",
        "NETMON_TOKEN": "<your-token>"
      }
    }
  }
}

工具

36 个只读工具,每个工具封装一个 Netmon API 端点,并在调用执行前通过 OAuth 作用域进行检查。

区域作用域工具示例
设备与设备群mcp:devicesdevice_find、device_get、device_list、device_metric_summary、overwatch_summary、tags_list
流量与拓扑mcp:vne、mcp:devicestop_bandwidth、netflow_search、netflow_raw_search、flow_summary、get_network_entity_info、arp_table、interfaces_search
日志与安全mcp:logssyslog_search、eventlog_search、eve_search、eve_get、log_severity_summary、syslog_facets
警报mcp:alertsalerts_list、alerts_history、maintenance_windows_list
Windows Agentmcp:devicesagent_processes、agent_services、agent_disk_usage
实时工具mcp:tools、mcp:devices、mcp:captureping、traceroute、arp_lookup、port_map、snmp_test、snmp_walk_run、snmp_walk_last、search_ip、speedtest_history、capture_list、capture_get
全部 36 个工具 | 工具 | 标题 | 解答的问题 | |---|---|---| | `get_network_entity_info` | 查询 WHOIS、GeoIP 和 DNS | 获取公共 IP 地址或主机名的 WHOIS、GeoIP 和 DNS 信息。 | | `arp_lookup` | ARP 查询 | 执行 ARP 查询,查找给定本地 IP 地址对应的 MAC 地址。 | | `ping` | Ping 主机 | 从 Netmon 服务 ping 目标主机。 | | `traceroute` | 运行 Traceroute | 从 Netmon 服务对目标运行 Traceroute。 | | `port_map` | 扫描开放端口 | 从 Netmon 服务对单台主机执行 Nmap 端口扫描。 | | `search_ip` | 在所有数据流中搜索 IP | 在 Netmon 的日志和遥测数据流中查找特定 IP 的所有记录:syslog、Windows eventlog、Suricata EVE、聚合 NetFlow 和 ARP。 | | `syslog_search` | 搜索 Syslog | 搜索网络设备的 syslog 消息。 | | `eventlog_search` | 搜索 Windows Event Log | 搜索从 Netmon Agent 接收的 Windows Event Log 条目。 | | `eve_search` | 搜索 Suricata IDS 事件 | 搜索 Suricata EVE 格式的 IDS 事件。 | | `eve_get` | 获取 Suricata IDS 事件 | 按 ID 获取单个 Suricata EVE 事件,并在服务端解码。 | | `log_severity_summary` | 汇总日志严重性 | 按严重性统计指定时间范围内的日志事件数量。 | | `syslog_facets` | Syslog 分类统计 | 统计指定时间范围内某个 syslog 字段的前 N 个值——一次调用即可回答“过去 2 小时内,这台 FortiGate 上最常见的操作/原因是什么”,…… | | `netflow_search` | 搜索聚合 NetFlow | 搜索完整的 NetFlow 历史记录:将原始流量表(最近约 15 分钟)与聚合汇总表(4 周历史记录)合并,并按时间范围筛选,且 pr... | | `netflow_raw_search` | 搜索原始 NetFlow | 搜索原始 NetFlow 记录(逐条流量记录,未经聚合)。 | | `flow_summary` | 汇总 NetFlow 流量 | 汇总一台主机的网络通信:主要对端、主要端口,以及客户端与服务端的流量拆分;每项均包含剩余的“其他”类别,另有 over... | | `device_list` | 列出设备 | 列出受监控设备。 | | `device_get` | 获取设备详情 | 获取单台设备及其相关状态:标签、告警、为其配置的 ping / oid / 接口 / 端口 / 磁盘跟踪器、SNMP walk 跟踪器,…… | | `device_find` | 按名称或 IP 查找设备 | 查找标签或 ip_address 中包含指定子字符串的设备。 | | `overwatch_summary` | Overwatch 健康状况摘要 | 提供网络健康状况的高层概览,用于回答“网络状况如何?”这类问题。 | | `snmp_test` | 测试 SNMP 凭据 | 使用 Netmon snmptest 二进制程序探测设备是否可通过 SNMP 访问。 | | `snmp_walk_last` | 获取缓存的 SNMP Walk | 获取设备最近一次存储的 SNMP walk(缓存在 tools_walks 中)。 | | `snmp_walk_run` | 运行新的 SNMP Walk | 对设备触发一次新的 SNMP walk。 | | `agent_services` | 列出 Windows 服务 | 列出由 Agent 管理的设备上的 Windows 服务——通过 WMI 隧道实时读取。 | | `agent_processes` | 列出 Windows 进程 | 列出由 Agent 管理的设备上正在运行的进程——通过 Agent 隧道实时读取。 | | `alerts_list` | 列出告警定义 | 列出规则引擎两个维度上的已配置告警定义。 | | `alerts_history` | 告警事件历史 | 权威的“触发了什么、何时触发”数据流——封装 `alert_history` 表(每个事件一行,涵盖旧版和新版)以及 `alert_outlet_log`... | | `maintenance_windows_list` | 列出维护时段 | 列出维护时段——用于控制告警分发的抑制计划。 | | `tags_list` | 列出标签 | 列出标签定义。 | | `top_bandwidth` | 流量占用最多的通信方 | 过去 N 分钟内流量最大的 NetFlow 通信——用于回答“现在是谁在占用带宽?”这类问题。 | | `arp_table` | 获取 ARP 表 | 通过 ARP 表列出在本地 LAN 上观测到的主机——用于回答“最近发现了哪些设备?”这类问题。 | | `interfaces_search` | 搜索网络接口 | 跨设备列出接口元数据——用于回答“整个设备群中有哪些接口,其名称类似 X,且位于设备 Y 上?” | | `device_metric_summary` | 汇总设备指标 | 按指标类型汇总单个设备跟踪器的日、周、月及全部历史统计数据。 | | `agent_disk_usage` | 浏览 Agent 磁盘使用情况 | 获取 Netmon Agent 提供的、按路径统计的文件夹树磁盘使用报告——用于回答“D: 盘使用率达到 95% 了,是什么占用了空间?”这类问题。 | | `capture_list` | 列出数据包捕获记录 | 以只读方式列出数据包捕获记录。 | | `capture_get` | 获取数据包捕获状态 | 以只读方式获取单个捕获记录的详情。 | | `speedtest_history` | Speedtest 历史记录 | 查看最近的 WAN Speedtest 结果——用于回答“互联网状况正常吗?” |

总共有 8 个作用域——除了上面的 6 个,还有 mcp:reports 和 mcp:system,它们映射到相应权限,但目前没有可用工具。


安全模型

所有内容都留在你的设备上。 桥接程序只连接到你配置的那个 URL,不会连接其他任何地方。整个链路中没有遥测数据、厂商端点或第三方服务。Netmon Services 不会收到任何信息。

只读。 所有工具都只执行读取操作。Netmon Agent 的写入操作路径——终止进程、启动或停止 Windows 服务、删除文件、运行 PowerShell——在 MCP 层被永久排除,无论底层令牌原本允许执行哪些操作。助手无法更改你的监控配置、确认警报,也无法在受管主机上执行操作。

受作用域限制。 每个工具都会声明所需的 OAuth 作用域,并在工具主体运行前检查作用域。仅获准 mcp:logs 的令牌无法调用 device_list。

权限仅限于你本人,不会更宽泛。 令牌以创建它的用户身份执行操作。标签限制同样适用:如果某个操作员仅限访问 branch-offices 标签,助手也只能访问相同的设备。权限模型与 Web 界面及其他所有 API 客户端使用的权限模型一致。

可撤销。 在 Settings → Users 中撤销令牌后,助手会立即失去访问权限。也可以在创建令牌时限定其权限,而不必等到之后再撤销。

传输安全

首次连接时,桥接程序会获取设备的 TLS 证书,并将其存储在 ~/.netmon-mcp/<hash-of-url>.pem,之后每次连接都会根据此固定证书进行验证。这是首次使用时信任机制:它能防止首次连接之后遭到拦截,但无法保护首次连接期间的安全。请从你信任的网络进行首次连接。

如果更换了设备的证书,请删除过期的固定证书(rm ~/.netmon-mcp/*.pem),否则桥接程序会使用旧证书验证新证书,并拒绝连接。

桥接程序要求使用 https://。启动时会拒绝纯 HTTP。


故障排除

桥接程序会将诊断日志写入 ~/.netmon-mcp/wrapper.log。

症状原因
NETMON_URL must use https://URL 使用了 http://,或缺少协议。
TLS probe failed设备无法从此机器通过 443 端口访问,或主机名无法解析。
已连接,但更换证书后连接失败固定证书已过期。删除 ~/.netmon-mcp/*.pem 并重新连接。
工具返回授权错误令牌缺少该工具所需的作用域,或账户缺少 API 权限。
没有显示工具URL 缺少 /mcp 路径。

构建

npm install
./build.sh            # or: ./build.sh 1.0.0 to stamp a version

输出文件位于 build/netmon-mcp-<version>.mcpb。


隐私政策

完整政策:https://netmon.com/privacy-policy/

收集哪些数据。 此桥接程序不会收集任何数据。它不持有账户、不进行分析,也不会回连 Netmon Services。它会在本地写入两个文件,均位于 ~/.netmon-mcp/ 下:你配置的设备的固定证书,以及连接事件的诊断日志。Netmon URL 和令牌由你提供,仅保存在扩展自身的配置中。

数据如何使用和存储。 查询和结果在你的 MCP 客户端与设备之间传递。桥接程序只转发消息,不保留任何消息。所有监控数据都保存在设备的数据库中,由你在自己的场所内掌控。

与第三方共享。 不会。桥接程序只会联系一个主机——你配置的设备 URL。它不会向 Netmon Services 或任何其他方发送任何内容。

请注意,你的 MCP 客户端是独立产品,拥有自己的政策。当你向助手提问时,它收到的工具结果由该客户端的供应商按照其条款处理。Netmon 无法控制这一环节,因此值得为令牌设置尽可能窄的权限范围。

数据保留。 本地文件会一直保留,直到你将其删除:卸载扩展,或运行 rm -rf ~/.netmon-mcp。在 Settings → Users 中撤销令牌后,访问权限会立即终止。监控数据本身的保留期限由你在设备上配置。

联系方式。 [email protected]


支持

许可证

Mozilla Public License 2.0 — 参见 LICENSE。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。