关于 Netmon (demo)
Netmon 的公开只读演示 MCP 服务,面向希望通过 AI 助手查询网络监控数据的用户。它基于虚构网络的去标识化快照提供与真实 Netmon 相同形态的响应,无需账户、令牌或安装。
主要功能
- 01只读查询网络监控数据
- 02覆盖设备、接口与流量
- 03检索日志与安全事件
- 04查看告警和 Windows Agent 数据
适用场景
- 01检查哪些设备离线
- 02查看指定时段的安全告警
- 03查找高带宽主机及通信对象
MCP 相关
提供远程 MCP 服务端点,供兼容 MCP 的客户端连接。公开演示只提供只读工具,数据来自记录的快照。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://netmon.com/mcp-demo/mcpclaude mcp add --transport http com-netmon-netmon-demo https://netmon.com/mcp-demo/mcp{"mcpServers":{"com-netmon-netmon-demo":{"type":"http","url":"https://netmon.com/mcp-demo/mcp"}}}在 Cursor 中打开{"servers":{"com-netmon-netmon-demo":{"type":"http","url":"https://netmon.com/mcp-demo/mcp"}}}在 VS Code 中打开{"mcpServers":{"com-netmon-netmon-demo":{"type":"http","url":"https://netmon.com/mcp-demo/mcp"}}}{"mcpServers":{"com-netmon-netmon-demo":{"serverUrl":"https://netmon.com/mcp-demo/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
36| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| entity_identifier | string | 是 | 要查询的 IP 地址或主机名。 |
详细介绍
Netmon MCP
将 AI 助手连接到 Netmon 设备。
Netmon 在设备本身搭载了 MCP 服务。此仓库包含客户端桥接程序:一个在你自己的机器上运行的小型 Node 进程,通过 stdio 与 Claude Desktop 通信,并通过 HTTPS 将每条 JSON-RPC 消息转发到 Netmon 的 /mcp 端点。
连接后,助手可直接调用 Netmon 的工具,读取你的设备、接口、日志、流记录、告警和 Windows Agent 数据——使用与任何操作员相同的登录信息和权限,并遵守相同的标签限制。
- 产品概览和公开演示: https://netmon.com/mcp-server/
- 设置指南: https://netmon.com/netmon-7-user-guide/ai-assistants/
- API 参考: https://netmon.com/api-reference/authentication/
先试用——无需设备
一个公开的只读演示服务会针对一个虚构的 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
-
从 Releases 下载
netmon-mcp-<version>.mcpb。同一扩展包也随设备一同提供 — Settings → System → Downloadables → Claude Desktop Extension。 -
在 Claude Desktop 中,打开 Settings → Extensions → Advanced settings → Extension Developer → Install Extension…,然后选择该文件。
-
填写扩展要求的两项设置:
设置 值 Netmon URL https://<your-netmon>/mcp— 完整端点,包括/mcpAPI Token 个人访问令牌(见下文)。如果省略 Bearer前缀,系统会自动添加。 -
重启扩展。询问 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:devices | device_find、device_get、device_list、device_metric_summary、overwatch_summary、tags_list |
| 流量与拓扑 | mcp:vne、mcp:devices | top_bandwidth、netflow_search、netflow_raw_search、flow_summary、get_network_entity_info、arp_table、interfaces_search |
| 日志与安全 | mcp:logs | syslog_search、eventlog_search、eve_search、eve_get、log_severity_summary、syslog_facets |
| 警报 | mcp:alerts | alerts_list、alerts_history、maintenance_windows_list |
| Windows Agent | mcp:devices | agent_processes、agent_services、agent_disk_usage |
| 实时工具 | mcp:tools、mcp:devices、mcp:capture | ping、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]
支持
- 文档:https://netmon.com/documentation/
- 桥接程序相关问题:GitHub Issues
- 其他所有事宜:[email protected]
许可证
Mozilla Public License 2.0 — 参见 LICENSE。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。