AM

antonio-mello-ai/mcp-pfsense

开发工具

本页由 AI 翻译,技术细节请以原文为准。 查看原文

6 stars 3 forks 质量 78 趋势 22MIT

MCP server for managing pfSense firewalls through AI assistants

概览

MCP server for managing through AI assistants like Claude, ChatGPT, and Copilot. : pfrest package installed on your pfSense instance (provides the REST API). - for destructive operations (delete rules, delete mappings, restart services, apply changes): the tool returns a warning on first call and only executes when called again with confirm=true. - Like the pfSense WebGUI, add_* and delete_* store the change in the config but do not activate it. The tool response says so (applied: false, plus a pending note). Activate with apply_changes(subsystem, confirm=true) — which reloads that subsystem, including anything a human left staged in the WebGUI — or pass apply=true on the write itself when you explicitly want a one-shot change. Nothing the assistant does reaches the packet filter without one of those two explicit steps. - delete_dhcp_static_mapping takes the mapping's interface (its parent_id in list_dhcp_static_mappings) and mapping_id; a mapping is addressed by both. 1.

README

以下为原文 README 节选,完整内容请查看原文。

mcp-pfsense

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).

Features

20 tools across 7 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
Pending changes get_pending_changes, apply_changes See what is staged per subsystem (firewall, dhcp, dns) and apply it
Monitoring get_gateway_status, get_arp_table, list_services, get_firewall_logs Gateway health, connected devices, service status, recent raw firewall log entries
Services restart_service Restart any pfSense service

Safety

  • Two-step confirmation for destructive operations (delete rules, delete mappings, restart services, apply changes): the tool returns a warning on first call and only executes when called again with confirm=true.
  • Writes are staged, not live. Like the pfSense WebGUI, add_* and delete_* store the change in the config but do not activate it. The tool response says so (applied: false, plus a pending note). Activate with apply_changes(subsystem, confirm=true) — which reloads that subsystem, including anything a human left staged in the WebGUI — or pass apply=true on the write itself when you explicitly want a one-shot change. Nothing the assistant does reaches the packet filter without one of those two explicit steps.
  • delete_dhcp_static_mapping takes the mapping’s interface (its parent_id in list_dhcp_static_mappings) and mapping_id; a mapping is addressed by both.

Installation

# Using uvx (recommended)
uvx mcp-pfsense

# Using pip
pip install mcp-pfsense

Prerequisites

  1. pfSense with pfrest package installed
  2. A user account with API access (typically admin)

Configuration

Set environment variables:

Variable Required Default Description
在 GitHub 查看完整 README

安装

uvx mcp-pfsense
新手?先看 mcpskill.org 教程 →

配置

{ "mcpServers": { "pfsense": { "command": "uvx", "args": ["mcp-pfsense"], "env": { "PFSENSE_HOST": "10.10.10.1", "PFSENSE_PASSWORD": "your-password" } } } }