Skip to content
Agentmart
Submit a tool

Firewall AIops

Governed OPNsense + pfSense firewall ops: rules, NAT, VPN, DHCP, RCA.

Connector by AIops-tools · GitHub account verified by the MCP Registry

IndexedMITLocal (stdio)★ 1
Write a review

Install

Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.

npx agentmarket install connector/aiops-tools-firewall-aiops

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Governed OPNsense + pfSense firewall ops: rules, NAT, VPN, DHCP, RCA. 35 tools.

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this server can do and what it asks for, from its tool list, install config and code. Checked Oct 25, 2026.

Tools
25 read · 7 write · 3 delete
Secrets
None asked for
Install scripts
None found
Runs as
Python package

Tools by what they do 35

Read from the source code; the running server may list different tools.

Read 25 · Look things up without changing anything.

  • alias_entries
  • blocked_traffic_rca
  • dhcp_leases
  • dhcp_static_mappings
  • firewall_log
  • firmware_status
  • gateway_health_rca
  • gateway_status
  • health_status
  • interface_status
  • ipsec_sas
  • list_aliases
Show 13 more tools
  • list_rules
  • nat_one_to_one
  • nat_outbound
  • openvpn_sessions
  • pending_changes
  • rule_detail
  • rule_hit_and_shadow_analysis
  • rule_states
  • rule_stats
  • states_table
  • top_talkers
  • undo_list
  • wireguard_status

Write 7 · Create, change, send or run things.

  • apply_changes
  • nat_port_forwards
  • reboot
  • reconfigure
  • restart_service
  • toggle_rule
  • undo_apply

Delete 3 · Delete, drop, revoke or wipe things.

  • add_alias_entry
  • kill_states
  • remove_alias_entry

Network hosts it talks to 3

  • anthropic.com · found in code
  • github.com · found in code
  • glama.ai · found in code

Files it touches

  • ~/.firewall-aiops
  • ~/.firewall-aiops/audit.db
  • ~/.firewall-aiops/secrets.enc
  • ~/.firewall-aiops/undo.db

Tools (35)

Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].

  • add_alias_entry

    [WRITE][risk=medium] Add one entry to an alias; reversible (undo removes it). Captures the alias' prior entries before the change. Pass dry_run=True to preview. Args: name: Alias name (from list_aliases). entry: The host/network/port to add. dry_run: If True, preview without changing. target: Firewall target name from config; omit for the default.

  • alias_entries

    [READ] The member entries (hosts/networks/ports) of one alias. Args: name: Alias name (from list_aliases). target: Firewall target name from config; omit for the default.

  • apply_changes

    [WRITE][risk=high] Commit staged firewall config — makes edits live. This is the "make it live" step after staged edits (e.g. toggle_rule). Reads the staged rule set first and REFUSES when committing it would provably cut the endpoint this tool manages the firewall through — disabling the 'pass' rule that permits management access, or enabling a 'block' rule that covers it, locks out this tool and the undo that would reverse it. Uncertain cases (alias destinations, 'any', interface groups) warn and proceed. dry_run=True returns the full staged change set and its assessment, not just an ackn…

  • blocked_traffic_rca

    [READ] Rank the noisiest blocked sources and classify cause + action. Keeps only blocked firewall-log entries, aggregates by source (hit count, distinct destination ports, busiest port), ranks the noisiest sources, and classifies each as a port scan, a service probe/brute-force on a sensitive port, or generic — with a recommended action. Every entry carries its numbers. Pass 'log_entries' for pure analysis, or a target to pull live. Args: top: How many source rows to return, noisiest first (default 20). limit: How many recent log rows to pull when live (default 500). log_entries:…

  • dhcp_leases

    [READ] Active DHCP leases (IP, MAC, hostname, state). Args: online_only: If True, return only leases marked online; leases whose state the platform did not report are counted in ``onlineUnknown``. target: Firewall target name from config; omit for the default.

  • dhcp_static_mappings

    [READ] DHCP static (reserved) mappings (MAC ↔ IP). Args: target: Firewall target name from config; omit for the default.

  • firewall_log

    [READ] Recent firewall-log entries, optionally filtered to pass/block. Args: action: Optional filter — one of pass, block, reject, rdr, nat. limit: Max entries to return (default 200). target: Firewall target name from config; omit for the default. Returns an envelope: {"entries": [...], "returned": N, "limit": L, "truncated": bool}. When "truncated" is true there are more entries than were returned — re-run with a higher limit rather than treating the result as the complete log.

  • firmware_status

    [READ] Firmware / OS version and whether updates are available. Args: target: Firewall target name from config; omit for the default.

  • gateway_health_rca

    [READ] Rank gateways by loss + latency, map each down/degraded one to cause + action. The flagship WAN RCA: pulls gateway status, flags each gateway that is down (status down/offline or 100% loss) or degraded (loss/latency over threshold), ranks worst-first, and attaches a likely cause and a recommended action. Every ranking carries its numbers, not a black-box verdict. Pass 'gateways' for pure analysis, or a target to pull live. Args: loss_pct: Loss %% at/above which a gateway is degraded (default 5.0). latency_ms: RTT ms at/above which a gateway is degraded (default 150). gatew…

  • gateway_status

    [READ] WAN/LAN gateways with status, loss %, and RTT latency. Args: target: Firewall target name from config; omit for the default.

  • health_status

    [READ] System health snapshot: hostname, uptime, CPU, memory, load. Args: target: Firewall target name from config; omit for the default.

  • interface_status

    [READ] Interfaces with link status + address, down interfaces first. Args: target: Firewall target name from config; omit for the default.

  • ipsec_sas

    [READ] IPsec security associations (phase-1/phase-2) with state. Args: target: Firewall target name from config; omit for the default.

  • kill_states

    [WRITE][risk=medium] Flush pf state-table entries (optionally one source IP). Drops tracked connections; they re-establish on the next packet. This includes THIS tool's own connection state, so the call may appear to fail even though the flush ran — that is a lost response, not a lockout, and a blind retry is the wrong reaction. Access is not lost: the permitting rule is untouched. Pass dry_run=True to preview. Args: filter_ip: Optional source IP to scope the flush to (blank = all states). dry_run: If True, preview without flushing. target: Firewall target name from config; omit …

  • list_aliases

    [READ] All firewall aliases (name, type, description, member count). Args: target: Firewall target name from config; omit for the default.

Show 20 more tools
  • list_rules

    [READ] List filter rules (optionally on one interface), normalized. Args: interface: Optional interface name to filter by (e.g. wan, lan). target: Firewall target name from config; omit for the default.

  • nat_one_to_one

    [READ] 1:1 NAT mappings (external ↔ internal), normalized. Args: target: Firewall target name from config; omit for the default.

  • nat_outbound

    [READ] Outbound (source) NAT mappings, normalized. Args: target: Firewall target name from config; omit for the default.

  • nat_port_forwards

    [READ] Inbound port-forward (DNAT) rules, normalized. Args: target: Firewall target name from config; omit for the default.

  • openvpn_sessions

    [READ] OpenVPN sessions / connected clients (name, address, bytes). Args: target: Firewall target name from config; omit for the default.

  • pending_changes

    [READ] The staged rule set apply_changes would commit, with lockout risk. Run this BEFORE apply_changes. It reports whether committing the staged rules would cut the endpoint this tool manages the firewall through — a disabled 'pass' rule that permits management access, or an enabled 'block' rule that covers it. Findings are ranked worst-first and carry a `certain` flag: certain ones make apply_changes refuse, uncertain ones (alias destinations, 'any', interface groups) are warnings only and never block. `basis` states what this is: the staged rule STATE, not a diff against the running confi…

  • reboot

    [WRITE][risk=high] Reboot the firewall. IRREVERSIBLE — audit only, no undo. Pass dry_run=True to preview. Args: dry_run: If True, preview without rebooting. target: Firewall target name from config; omit for the default.

  • reconfigure

    [WRITE][risk=high] Reload/commit a subsystem's config (filter/nat/aliases). Reloading the 'filter' subsystem commits the staged rule set just as apply_changes does, so it carries the same lockout guard and the same override. Args: subsystem: Config subsystem to reload (filter, nat, aliases). dry_run: If True, preview without reconfiguring. override: Proceed despite a certain lockout finding (filter subsystem). target: Firewall target name from config; omit for the default.

  • remove_alias_entry

    [WRITE][risk=medium] Remove one entry from an alias; reversible (undo adds it back). Captures the alias' prior entries before the change. Pass dry_run=True to preview. Args: name: Alias name (from list_aliases). entry: The host/network/port to remove. dry_run: If True, preview without changing. target: Firewall target name from config; omit for the default.

  • restart_service

    [WRITE][risk=medium] Restart a firewall service (unbound, dhcpd, openvpn, ...). REFUSES the service that answers this appliance's own management API (nginx / lighttpd / configd / webgui and friends): restarting it kills the connection this tool is using, so the restart cannot be observed and the undo cannot run. Restart those from the console instead. Pass dry_run=True to preview. Args: service: Service name to restart. dry_run: If True, preview without restarting. target: Firewall target name from config; omit for the default.

  • rule_detail

    [READ] One rule's full detail by uuid/id. Args: uuid: Rule uuid (OPNsense) or id (pfSense), from list_rules. target: Firewall target name from config; omit for the default.

  • rule_hit_and_shadow_analysis

    [READ] Flag never-hit enabled rules and shadowed/redundant rules. Finds enabled rules with zero evaluations (dead or misordered), rules fully covered by an earlier terminating rule (shadowed), and rules identical to an earlier one (redundant). Rules are compared in list order, top-down, exactly as pf evaluates them; every finding names the offending/covering rule uuid. Pass 'rules' for pure analysis, or a target to pull live. Args: rules: Injected rows {uuid, sequence, enabled, action, interface, protocol, source, destination, destinationPort, evaluations}. interface: Optiona…

  • rule_states

    [READ] Active pf state-table entries associated with rules (top-N). Args: top: How many state entries to return (default 50). target: Firewall target name from config; omit for the default.

  • rule_stats

    [READ] Per-rule hit counts / evaluations, busiest first (top-N). Args: top: How many rules to return, busiest first (default 20). target: Firewall target name from config; omit for the default.

  • states_table

    [READ] Active pf state-table entries (connections currently tracked). Args: top: How many state entries to return (default 100). target: Firewall target name from config; omit for the default. Returns an envelope: {"states": [...], "returned": N, "limit": L, "truncated": bool, "total": T}. "truncated" is true when the state table holds more entries than were returned.

  • toggle_rule

    [WRITE][risk=medium] Enable/disable a filter rule; reversible. Reads the rule first so the harness records an undo that restores its prior enabled state. Staged only — run apply_changes to make it live. Pass dry_run=True to preview. Args: uuid: Rule uuid (OPNsense) or id (pfSense), from list_rules. enable: True to enable the rule, False to disable. dry_run: If True, preview without changing. target: Firewall target name from config; omit for the default.

  • top_talkers

    [READ] Busiest source hosts, aggregated from the state table by bytes. Args: top: How many talkers to return (default 20). target: Firewall target name from config; omit for the default. Returns an envelope: {"topTalkers": [...], "returned": N, "limit": L, "truncated": bool, "total": T}. "truncated" is true when more distinct sources were seen than were returned.

  • undo_apply

    [WRITE][risk=medium] Apply a recorded undo by dispatching its inverse tool. The inverse runs through its own governed tool, so it is audited and labelled with its own risk tier there. Pass dry_run=True to preview the inverse call without executing it. A token can only be applied once. Args: undo_id: The undoId from undo_list (or an ``_undo_id`` in a write result). dry_run: If True, preview the inverse tool + params without running it. target: Passed through to the inverse tool when it accepts a target.

  • undo_list

    [READ] List recorded, not-yet-applied undo tokens (most recent first). Each entry names the original tool, the inverse tool that ``undo_apply`` would run, and a human note. Use the ``undoId`` with ``undo_apply``. Returns {"undos": [...], "returned": N, "limit": L, "truncated": bool}. ``truncated`` is *measured* (one extra row is fetched), not guessed from a length coincidence: when it is true there are MORE tokens than shown, so re-run with a higher ``limit`` rather than reporting the list as complete. Each entry carries ``effectVerified``. False means the original write lost its response, …

  • wireguard_status

    [READ] WireGuard peers with connected state, last handshake, transfer. Args: target: Firewall target name from config; omit for the default.

Signals

Stars
1
Forks
0
Open issues
0
Weekly downloads
231
Last commit
Oct 15, 2026 (13 days ago)
Last release
Oct 15, 2026 (13 days ago)
Last package publish
Oct 15, 2026 (13 days ago)

From GitHub (fetched Oct 24, 2026) and the package registry.

Details

Registry name
io.github.AIops-tools/firewall-aiops
Version
0.15.0
Auth
No auth
Packages
pypi firewall-aiops
License
MIT
First seen
Oct 24, 2026
Last checked
Oct 25, 2026

More from AIops-tools

Cite this page

Firewall AIops MCP server. Agent Mart. https://agentmart.dev/connectors/aiops-tools-firewall-aiops (last updated 2026-10-25)