mcp-opnsense
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| OPNSENSE_URL | Yes | OPNsense base URL (e.g. https://192.168.1.1) | |
| OPNSENSE_API_KEY | Yes | API key for authentication | |
| OPNSENSE_TIMEOUT | No | Request timeout in milliseconds | 30000 |
| OPNSENSE_API_SECRET | Yes | API secret for authentication | |
| OPNSENSE_VERIFY_SSL | No | Set to false for self-signed certificates | true |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| opnsense_dns_list_overridesA | List all DNS host overrides (A/AAAA/CNAME records) configured in Unbound |
| opnsense_dns_add_overrideA | Add a DNS host override (A/AAAA/CNAME record) to Unbound. Run opnsense_dns_apply afterwards to activate. |
| opnsense_dns_delete_overrideA | Delete a DNS host override by UUID. Run opnsense_dns_apply afterwards to activate. |
| opnsense_dns_list_forwardsA | List all DNS-over-TLS forwarding servers configured in Unbound |
| opnsense_dns_add_forwardA | Add a DNS forwarding server (DNS-over-TLS). Run opnsense_dns_apply afterwards to activate. |
| opnsense_dns_delete_forwardA | Delete a DNS forwarding entry by UUID. Run opnsense_dns_apply afterwards to activate. |
| opnsense_dns_list_blocklistA | List all domain overrides (used for domain blocking) in Unbound |
| opnsense_dns_block_domainA | Block a domain by adding a domain override with an empty server. Run opnsense_dns_apply afterwards to activate. |
| opnsense_dns_unblock_domainA | Unblock a domain by deleting its domain override. Run opnsense_dns_apply afterwards to activate. |
| opnsense_dns_flush_cacheB | Flush the Unbound DNS resolver cache |
| opnsense_dns_diagnosticsB | Dump the current Unbound DNS cache for diagnostic purposes |
| opnsense_dns_applyA | Apply pending DNS/Unbound configuration changes (reconfigure service) |
| opnsense_dns_flush_zoneA | Flush all cached DNS entries for a specific domain/zone. Use this to clear stale SERVFAIL or outdated records for a domain. Restarts Unbound to ensure complete cache clearing. |
| opnsense_dns_cache_searchA | Search the Unbound DNS cache for entries matching a domain. Useful for diagnosing cached SERVFAIL, stale records, or verifying cache state. |
| opnsense_dns_statsA | Get Unbound DNS resolver statistics: query counts, cache hits/misses, uptime, and memory usage |
| opnsense_dns_infraA | Dump the Unbound infrastructure cache showing upstream server RTT, EDNS support, and lame delegation status. Useful for diagnosing upstream DNS connectivity issues. |
| opnsense_dns_blocklist_getA | Get the Unbound DNSBL (DNS blocklist) configuration: enabled flag, selected built-in source IDs, custom URLs, NX-domain mode, allowlist. Read-only. |
| opnsense_dns_blocklist_sources_listA | List all available built-in DNSBL block-list sources (curated feeds like AdGuard, EasyList, hagezi, Steven Black, etc.) with their internal IDs and selected state. Read-only. |
| opnsense_dns_blocklist_setA | Update the Unbound DNSBL configuration: enable/disable, select multiple built-in source IDs, set custom blocklist URLs, configure NX-domain mode. After this, call opnsense_dns_apply to activate. DESTRUCTIVE: requires explicit confirmation. |
| opnsense_fw_list_rulesA | List all firewall filter rules |
| opnsense_fw_add_ruleA | Add a new firewall filter rule. Run opnsense_fw_apply afterwards to activate. |
| opnsense_fw_update_ruleA | Update an existing firewall filter rule by UUID. Run opnsense_fw_apply afterwards to activate. |
| opnsense_fw_delete_ruleA | Delete a firewall filter rule by UUID. Run opnsense_fw_apply afterwards to activate. |
| opnsense_fw_toggle_ruleA | Enable or disable a firewall rule by UUID. Run opnsense_fw_apply afterwards to activate. |
| opnsense_fw_list_aliasesA | List all firewall aliases (host groups, networks, ports, URLs) |
| opnsense_fw_manage_aliasA | Create, update, or delete a firewall alias. Run opnsense_fw_apply afterwards to activate. |
| opnsense_fw_applyA | Apply pending firewall configuration changes |
| opnsense_fw_reorder_rulesA | Change the sequence (ordering) of a firewall filter rule by UUID. Rules with lower sequence values are evaluated first. Use this to enforce whitelist-before-deny ordering. Run opnsense_fw_apply afterwards to activate. |
| opnsense_fw_drift_checkA | Audit firewall filter rules for description hygiene. Returns rules whose description does not match the given regex (default: '^#\d+:' — issue-reference prefix) and rules with empty descriptions. Read-only. |
| opnsense_diag_arp_tableA | Show the ARP table (IP-to-MAC mappings). Optionally filter by IP, MAC, or interface. |
| opnsense_diag_routesA | Show the routing table |
| opnsense_diag_pingB | Ping a host from the OPNsense firewall |
| opnsense_diag_tracerouteB | Run a traceroute from the OPNsense firewall to a destination |
| opnsense_diag_dns_lookupB | Perform a DNS lookup from the OPNsense firewall |
| opnsense_diag_reverse_dnsA | Perform a reverse DNS lookup (IP to hostname) from the OPNsense firewall |
| opnsense_diag_fw_statesA | List active firewall connection tracking states |
| opnsense_diag_fw_logsB | Retrieve recent firewall log entries |
| opnsense_diag_system_infoA | Get system status information (CPU, memory, uptime, disk, versions) |
| opnsense_diag_log_systemA | Retrieve recent OPNsense system log entries (kernel, generic system events). |
| opnsense_diag_log_gatewaysA | Retrieve recent OPNsense gateway monitoring (dpinger) log entries — useful for WAN/gateway health debugging. |
| opnsense_diag_log_routingB | Retrieve recent OPNsense routing daemon log entries. |
| opnsense_diag_log_resolverB | Retrieve recent Unbound DNS resolver log entries. |
| opnsense_if_listA | List all network interface names and their device mappings |
| opnsense_if_getA | Get detailed configuration for a specific network interface (IP addresses, status, MTU, etc.) |
| opnsense_if_statsA | Get traffic statistics for all interfaces (bytes, packets, errors, collisions) |
| opnsense_if_assignA | Assign an existing VLAN or NIC device to a free optN slot via SSH. Requires OPNSENSE_SSH_ENABLED=true and the opnsense-helpers/if_assign.php script installed on the target host. Fills the gap where the OPNsense REST API has no 'Interfaces → Assignments' endpoint. |
| opnsense_if_configureA | Configure IPv4/IPv6 on an already-assigned optN slot via SSH. Supports static, dhcp, dhcp6, track6, and 'none'. Requires OPNSENSE_SSH_ENABLED=true and the opnsense-helpers/if_configure.php script installed on the target host. |
| opnsense_dhcp_list_leasesA | List all current DHCPv4 leases. Supports both Kea DHCP (default on modern OPNsense) and ISC DHCP (legacy) backends — auto-detects which is active. |
| opnsense_dhcp_find_leaseA | Search DHCPv4 leases by IP address, MAC address, or hostname. Supports both Kea DHCP and ISC DHCP (legacy) backends — auto-detects which is active. |
| opnsense_dhcp_list_staticA | List all static DHCP mappings (MAC-to-IP reservations). Supports both Kea DHCP and ISC DHCP (legacy) backends — auto-detected. |
| opnsense_dhcp_add_staticA | Add a static DHCP mapping (MAC-to-IP reservation). Supports both Kea DHCP and ISC DHCP (legacy) backends — auto-detected. Requires DHCP service restart to take effect. |
| opnsense_dhcp_delete_staticA | Delete a static DHCP mapping by UUID. Supports both Kea DHCP and ISC DHCP (legacy) backends — auto-detected. |
| opnsense_kea_subnet_listA | List all Kea DHCPv4 subnets with their pools, options, and reservation counts. |
| opnsense_kea_subnet_getA | Get detailed configuration of a specific Kea DHCPv4 subnet by UUID. |
| opnsense_kea_subnet_createA | Create a new Kea DHCPv4 subnet. Run opnsense_kea_apply afterwards to activate. |
| opnsense_kea_subnet_updateA | Update an existing Kea DHCPv4 subnet. Run opnsense_kea_apply afterwards to activate. |
| opnsense_kea_subnet_deleteA | Delete a Kea DHCPv4 subnet by UUID. Run opnsense_kea_apply afterwards to activate. |
| opnsense_kea_applyA | Apply pending Kea DHCP configuration changes (reconfigure service). Run after subnet or reservation changes. |
| opnsense_sys_infoA | Get system status information (hostname, versions, CPU, memory, uptime, disk usage) |
| opnsense_sys_backup_listA | List all configuration backups stored on the OPNsense filesystem with timestamps, descriptions, and file sizes |
| opnsense_sys_backup_downloadA | Download an OPNsense configuration backup as XML. Downloads the current running config if no backup_id is specified. |
| opnsense_sys_backup_revertA | Revert OPNsense configuration to a previous backup. DESTRUCTIVE: replaces the running config with the specified backup. |
| opnsense_sys_list_certsA | List all certificates in the OPNsense trust store with their refids, descriptions, and validity dates |
| opnsense_svc_listA | List all services and their running status |
| opnsense_svc_controlB | Start, stop, or restart a service by name |
| opnsense_acme_list_accountsA | List all ACME accounts (Let's Encrypt, ZeroSSL, etc.) configured in the os-acme-client plugin |
| opnsense_acme_add_accountB | Register a new ACME account with a certificate authority (Let's Encrypt, ZeroSSL, etc.). Run opnsense_acme_apply afterwards. |
| opnsense_acme_delete_accountA | Delete an ACME account by UUID. Run opnsense_acme_apply afterwards. |
| opnsense_acme_register_accountA | Trigger registration of an ACME account with its certificate authority. Use after adding an account to verify it registers successfully. |
| opnsense_acme_list_challengesA | List all configured ACME challenge/validation methods (DNS-01, HTTP-01, etc.) |
| opnsense_acme_add_challengeA | Add a DNS-01 challenge configuration for automated certificate validation. For Cloudflare, use the dedicated dns_cf_* fields instead of dns_environment. Run opnsense_acme_apply afterwards. |
| opnsense_acme_update_challengeA | Update an existing ACME challenge/validation by UUID. Use to change credentials or settings. Run opnsense_acme_apply afterwards. |
| opnsense_acme_delete_challengeA | Delete an ACME challenge/validation method by UUID. Run opnsense_acme_apply afterwards. |
| opnsense_acme_list_certsA | List all ACME certificates and their status (issued, pending, expired) |
| opnsense_acme_create_certA | Create a new ACME certificate request. Requires an account and challenge to be configured first. Run opnsense_acme_apply afterwards. |
| opnsense_acme_delete_certA | Delete an ACME certificate by UUID. Run opnsense_acme_apply afterwards. |
| opnsense_acme_renew_certA | Trigger immediate renewal/signing of an ACME certificate by UUID |
| opnsense_acme_settingsA | Get or update ACME service settings (enable/disable, environment, auto-renewal, log level). When called with no parameters, returns current settings. Run opnsense_acme_apply afterwards when updating. |
| opnsense_acme_applyA | Apply pending ACME configuration changes (reconfigure service) |
| opnsense_firmware_infoA | Get firmware version, architecture, and update status of the OPNsense system |
| opnsense_firmware_statusA | Check for available firmware upgrades and their status (running, pending, done). Reads the cached state — call 'opnsense_firmware_check' first if the cache may be stale. |
| opnsense_firmware_checkA | Trigger a background firmware repository check to refresh the cached upgrade status. After calling this, wait briefly and then call 'opnsense_firmware_status' to see fresh upgrade info. |
| opnsense_firmware_list_pluginsA | List all available and installed OPNsense plugins with their versions and status |
| opnsense_firmware_installA | Install an OPNsense plugin package by name (e.g. 'os-acme-client'). May require a service restart. |
| opnsense_firmware_removeA | Remove an installed OPNsense plugin package. DESTRUCTIVE: requires explicit confirmation. |
| opnsense_firmware_upgradeA | Trigger an OPNsense system upgrade based on what 'opnsense_firmware_status' reports (minor packages, or a major-series jump such as 24.7 → 25.1). Long-running: poll progress with 'opnsense_firmware_upgrade_status'. A reboot is typically required afterwards. DESTRUCTIVE: requires explicit confirmation. |
| opnsense_firmware_upgrade_statusA | Get the progress/log of a currently running or last completed firmware upgrade (long-running operation status). |
| opnsense_firmware_rebootA | Reboot the OPNsense system. Causes a network outage on the firewall and any services it provides (DNS, DHCP, VPN). DESTRUCTIVE: requires explicit confirmation. |
| opnsense_route_listA | List all configured static routes |
| opnsense_route_addA | Add a static route. The gateway parameter must be a gateway name from opnsense_route_gateway_list. Run opnsense_route_apply afterwards to activate. |
| opnsense_route_updateB | Update an existing static route. Run opnsense_route_apply afterwards to activate. |
| opnsense_route_deleteA | Delete a static route. Run opnsense_route_apply afterwards to activate. |
| opnsense_route_applyA | Apply static route configuration changes (reconfigure routing) |
| opnsense_route_gateway_listA | List all available gateways (used as targets for static routes) |
| opnsense_route_gateway_statusA | Get live gateway monitor status: per-gateway online/offline state, RTT (delay), packet loss, stddev, monitor IP, and monitor_disable flag. Read-only — complements opnsense_route_gateway_list (which only returns config). |
| opnsense_route_gateway_updateA | Update an existing gateway's settings (toggle monitoring, set monitor IP, change weight/priority, enable/disable). Round-trips current config and only overrides explicitly provided fields. After updating, call opnsense_route_gateway_apply to activate the change. DESTRUCTIVE: requires explicit confirmation. |
| opnsense_route_gateway_applyA | Apply pending gateway configuration changes (calls /api/routing/settings/reconfigure). Required after opnsense_route_gateway_update for changes to take effect. May briefly affect WAN connectivity. DESTRUCTIVE: requires explicit confirmation. |
| opnsense_vlan_listA | List all configured 802.1Q VLAN interfaces (parent interface, VLAN tag, description, priority) |
| opnsense_vlan_createA | Create a new 802.1Q VLAN interface on a parent interface. After create, run opnsense_if_assign to bind the VLAN to a logical interface (opt1, opt2, ...) and opnsense_if_configure to assign an IP. |
| opnsense_vlan_updateA | Update an existing VLAN interface by UUID. Only provided fields are changed. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/itunified-io/mcp-opnsense'
If you have feedback or need assistance with the MCP directory API, please join our Discord server