The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the Opnsense MCP listing page.
MCP server for OPNsense firewall operations (ARP, DHCP, logs, rules, interfaces, system status, packet capture).
Use one of two deployment modes:
STDIO (local): best for Cursor/Claude Code/Continue running the server process directly.SSE (centralized): best for shared, long-lived service over HTTPS.Query your firewall with Claude Code CLI. Live example with real network data:

Built this because SSH'ing into the firewall to check logs or grab ARP data got old fast. Now you can ask Claude:
Claude handles the firewall query via MCP and gives you analysis + context in one shot. Works on homelab or business deployments equally well.
Edit ~/.env:
STDIO (local IDE/client)Configure your MCP client to launch mcp_start.sh:
See full guide: docs/GETTING_STARTED.md.
SSE (centralized service)Run the Linux installer (Podman + quadlet + Caddy TLS):
Clients connect to:
See deployment docs:
Primary tools:
arp, dhcp, lldpsystem, get_logs, packet_capturefw_rules, mkfw_rule, set_fw_rule, toggle_fw_rule, rmfw_ruleinterface_listFull reference: docs/REFERENCE/FUNCTION_REFERENCE.md
Five PRs landed recently. See docs/FEATURES_UPDATE.md for full details and usage examples.
stdio, sse, and streamable-http (MCP spec 2025-03-26). Deployed via deploy/install.sh.mk_dhcp_host and move_dhcp_host accept an optional DUID for stateful DHCPv6 matching.pyproject.toml version + git short SHA (1.0.0-dev.a1b2c3d) or release tags (1.0.0).:latest is rejected. Set OPNSENSE_MCP_IMAGE_REPO, or build locally with --build-local.readonly clash between install.sh and lib.sh resolved.First 10 users get feedback incorporated into the tool. If you find bugs or have ideas, file an issue or discussion.
scripts/risk_map.py ranks source files by defect likelihood from git history —
churn times fix density — so a review reads the risky files first and can stop
early. It finds no bugs; it finds where they concentrate.
CI runs it on every pull request alongside a complexity report (radon) and a
security-pattern pass (bandit) in the advisory Insights workflow, which
never blocks a merge. Thresholds that gate the build come later, once the
numbers are trusted.
docs/GETTING_STARTED.mddocs/CLAUDE_CODE_INTEGRATION.mddocs/CENTRALIZED_DEPLOY_SPEC.mddocs/DEVELOPMENT/CONTRIBUTING.mdThis project is released under the MIT License.