NetOps Field Notes

io.github.getlarkwright由 GitHub 账号 getlarkwright 发布v0.1.1更新于 Nov 7, 2026

Config drift, CIS/PCI checks, 802.1X diagnosis, certs inside configs, topology, change pre-flight.

概览

AI 生成的概览

只读的网络运维工具集,让助手对比设备配置、执行 CIS/PCI 检查、诊断 802.1X、检查证书并对变更做预检。

可以做什么
  • 对比两份配置快照,按区块说明变化并给出风险评级
  • 执行十项 CIS/PCI 合规检查,并为未通过项给出一行修复建议
  • 根据 RADIUS、交换机端口或客户端日志诊断 802.1X 失败,并查询 ISE 失败码
  • 从配置中找出内嵌证书,并检查公网主机实际提供的证书
  • 提取设备信息,并以 Mermaid 图推断拓扑
  • 逐条解释 OPNsense 防火墙规则变更、预检拟议变更、清理敏感信息,并获取每周网络动态
适用场景
适合处理网络设备配置(EdgeOS、RouterOS、OPNsense、EdgeSwitch、Cisco IOS 风格)时使用,希望获得确定性的第二意见:配置漂移、合规、802.1X 失败、证书到期或变更是否安全。
运行要求
以 stdio 在本地运行,无需账号、密钥或环境变量。可通过 uvx 安装(需 Python 3.10 或更高版本),或用 Docker 运行已发布的容器镜像。仅 TLS 端点检查和 RSS 动态工具需要网络访问。
安装前请注意
配置和日志以文本形式粘贴,请先清理敏感信息(提供清理工具)。有两个工具会打开网络连接:TLS 检查会连接你指定的主机,动态工具会访问公开 RSS 源。合规检查只是对单份配置做正则匹配,并非基准测试。不会向设备写入任何内容,应用变更和回滚需自行负责。

安装

在 SourceWeft 中

  1. 打开 控制台中的 NetOps Field Notes,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

netops-field-notes-mcp

The things I check by hand on network gear, as tools your coding agent can call: what changed between two config snapshots and how much it matters, whether a config passes the CIS/PCI basics, why a port will not pass 802.1X, which certificates are hiding inside a config and when they expire, what a device is and what it sits next to, what an OPNsense rule change actually does, and whether a proposed change is safe to push.

Read-only. Deterministic — no model call, so two engineers get the same answer. No account, no telemetry, nothing read from your disk: configs and logs go in as text.

Install

Pin the version.

Claude Code

claude mcp add netops-field-notes -- uvx --from "git+https://github.com/getlarkwright/[email protected]" netops-field-notes-mcp

Claude Desktop, Cursor, or any client with a JSON config

json
{  "mcpServers": {    "netops-field-notes": {      "command": "uvx",      "args": ["--from", "git+https://github.com/getlarkwright/[email protected]", "netops-field-notes-mcp"]    }  }}

Docker

json
{  "mcpServers": {    "netops-field-notes": {      "command": "docker",      "args": ["run", "-i", "--rm", "ghcr.io/getlarkwright/netops-field-notes-mcp:0.1.1"]    }  }}

Python 3.10 or newer for the uvx route (uv installs it). Also in the official MCP registry as io.github.getlarkwright/netops-field-notes-mcp.

Tools

ToolWhat it answers
explain_config_diffWhat changed between two snapshots, grouped by section, risk-rated, in plain English — EdgeOS, RouterOS, OPNsense, EdgeSwitch, Cisco IOS-style
check_config_complianceDoes this config pass ten CIS/PCI checks, and what is the one-line fix for each miss
diagnose_dot1xWhy won't this port authenticate — from the RADIUS log, the switchport config and/or the supplicant log
lookup_ise_failure_codeWhat does ISE step code 12514 (or 11036, 22056…) mean and what fixes it
find_certs_in_configWhich certificates are embedded in this config, and which are expiring, weak or self-signed
check_tls_endpointThe same findings on the certificate a public host actually serves
extract_device_factsHostname, role, addresses, subnets, VLANs from a config
infer_topologyWhich of these devices share segments — as a Mermaid diagram
explain_firewall_changeAn OPNsense config.xml change, rule by rule, with risk grounds and shadowing notes
preflight_changeIs this proposed change safe — risk, compliance regressions, blast radius, a gate verdict
sanitize_configScrub secrets and map addresses consistently before a config goes anywhere
latest_field_noteWhat happened in networking this week

diagnose_dot1x

The one that saves the most time. Paste what you have — any of the three inputs — and it names the failure mode rather than restating the log:

ROOT CAUSETwo defects: (1) dot1x failed on an EAP mismatch (EAP-TLS vs EAP-PEAP); (2) MAB thenAccepted with NO dynamic VLAN, so the endpoint landed on VLAN 10 instead of VLAN 30.
RECOMMENDED FIX1. Align EAP: either enroll a client cert + set the supplicant to EAP-TLS, OR allow EAP-PEAP   in the ISE auth policy for this port. Make both ends match.2. Fix the ISE authorization profile "MAB_Guest": add Tunnel-Type=VLAN(13),   Tunnel-Medium-Type=802(6), Tunnel-Private-Group-ID=30.3. On the access port add: `authentication event fail action authorize vlan 30` as a local backstop.

It knows the difference between a CoA sent to port 1700 and one sent to 3799, an unknown-CA failure and a missing client certificate, and a permit any any eq 443 dACL that IOS will reject.

find_certs_in_config

Web monitors watch ports. Certificates on network gear live in the config — Cisco crypto pki chains, RouterOS exports, OPNsense <crt> blobs — and expire without anybody watching. This reads them out of the text and applies the same rules as the endpoint check: expiry buckets, RSA under 2048, MD5/SHA-1 signatures, self-signed leaves (rated by where they are used), CA certificates inside 90 days of expiry.

What it does not do

  • No account, no signup, no key. No telemetry.
  • Nothing is read from your disk; every input is text you pass in.
  • Nothing is written to a device. preflight_change tells you what would happen; applying it is your job, with the rollback it hands you.
  • Two tools open a socket: check_tls_endpoint to the host you name (it refuses private and reserved addresses, so it cannot be turned on your own network), and latest_field_note to a public RSS feed.
  • The compliance checks are regex over one config. They catch the obvious; they are not a benchmark run.

Where this comes from

These are the read-only cores of DriftWatch and its siblings, which run the same rules nightly across a fleet, keep the history, and turn the results into reports. Here you get the single-shot version on what you paste. That is deliberate — the rules are the useful part, and they work on their own.

Licence

MIT © Larkwright LLC. Written by James Son — network, security, and automation engineer — and run against a live multi-vendor lab before shipping. Corrections welcome, especially to the ISE code table.

来源:README.md,提交 9f59dd5

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v0.1.1最新Nov 7, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分