loading…
Search for a command to run...
loading…
Manage pfSense firewalls through AI assistants — firewall rules, DHCP leases/reservations, DNS overrides, gateway monitoring, ARP table, and service management.
Manage pfSense firewalls through AI assistants — firewall rules, DHCP leases/reservations, DNS overrides, gateway monitoring, ARP table, and service management. 17 tools with two-step confirmation for destructive operations.
MCP server for managing pfSense firewalls through AI assistants like Claude, ChatGPT, and Copilot.
Requires: pfrest package installed on your pfSense instance (provides the REST API).
17 tools across 6 categories:
| Category | Tools | Description |
|---|---|---|
| System | get_system_status, get_interfaces |
Version, CPU, memory, uptime, temperature, network interfaces |
| Firewall | list_firewall_rules, add_firewall_rule, delete_firewall_rule, list_firewall_aliases |
Rule management with interface filtering, alias listing |
| DHCP | list_dhcp_leases, list_dhcp_static_mappings, add_dhcp_static_mapping, delete_dhcp_static_mapping |
Active leases, IP reservations |
| DNS | list_dns_host_overrides, add_dns_host_override, delete_dns_host_override |
Unbound DNS Resolver host overrides |
| Monitoring | get_gateway_status, get_arp_table, list_services |
Gateway health, connected devices, service status |
| Services | restart_service |
Restart any pfSense service |
All destructive operations (delete rules, delete mappings, restart services) require two-step confirmation — the tool returns a warning on first call and only executes when called again with confirm=true.
# Using uvx (recommended)
uvx mcp-pfsense
# Using pip
pip install mcp-pfsense
admin)Set environment variables:
| Variable | Required | Default | Description |
|---|---|---|---|
PFSENSE_HOST |
Yes | — | pfSense hostname or IP |
PFSENSE_PASSWORD |
Yes | — | API user password |
PFSENSE_USERNAME |
No | admin |
API username |
PFSENSE_PORT |
No | 443 |
API port |
PFSENSE_SCHEME |
No | https |
http or https |
PFSENSE_VERIFY_SSL |
No | false |
Verify SSL certificate |
Add to claude_desktop_config.json:
{
"mcpServers": {
"pfsense": {
"command": "uvx",
"args": ["mcp-pfsense"],
"env": {
"PFSENSE_HOST": "10.10.10.1",
"PFSENSE_PASSWORD": "your-password"
}
}
}
}
claude mcp add pfsense -- uvx mcp-pfsense
Then set environment variables in your shell or .env file.
Once connected, ask your AI assistant:
Note: pfrest runs on nginx (port 80 by default), separate from the pfSense WebGUI (lighttpd on port 443). If your pfrest is configured on a non-standard port, set
PFSENSE_PORTandPFSENSE_SCHEMEaccordingly.
git clone https://github.com/antonio-mello-ai/mcp-pfsense.git
cd mcp-pfsense
python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
# Run tests
pytest
# Lint and type check
ruff check .
mypy src/
MIT
Add this to claude_desktop_config.json and restart Claude Desktop.
{
"mcpServers": {
"antonio-mello-ai-mcp-pfsense": {
"command": "npx",
"args": []
}
}
}