pfSense MCP Server
pfSense MCP Server
Управляйте своим межсетевым экраном pfSense с помощью естественного языка. 327 инструментов. 9 уровней безопасности. Одна команда для запуска.
You: "Block all traffic from 203.0.113.5 on WAN"
Claude: Creates block rule → applies changes → confirms with rollback instructionspfSense MCP Server подключает Claude Desktop, Claude Code и другие AI-клиенты, совместимые с MCP, к вашему межсетевому экрану pfSense. Задавайте вопросы, диагностируйте проблемы и управляйте своим межсетевым экраном — всё через диалог.
Зачем это нужно
Управление межсетевым экраном pfSense означает бесконечные клики по вкладкам веб-интерфейса, запоминание названий полей и надежду на то, что вы случайно не удалите правило, которое заблокирует вам доступ. С этим MCP-сервером вы описываете то, что хотите, на обычном английском языке, а ИИ выполняет вызовы REST API, проверяет входные данные и предупреждает вас перед выполнением любых деструктивных действий.
Что делает его особенным:
Каждая деструктивная операция требует явного подтверждения и показывает вам, что именно произойдет
Автоматическое резервное копирование конфигурации перед каждым удалением/перезагрузкой — с командой отката в одну строку
Ограничение частоты запросов (rate limiting) предотвращает зацикливание ИИ, которое могло бы перегрузить ваш межсетевой экран правилами
Санитаризация входных данных блокирует внедрение команд, обход путей и XSS в каждом параметре
Related MCP server: Firewalla MCP Server
Быстрый старт
Предварительные требования: Python 3.10+, pfSense с установленным пакетом REST API v2
git clone https://github.com/gensecaihq/pfsense-mcp-server.git
cd pfsense-mcp-server
pip install -r requirements.txt
cp .env.example .env
# Edit .env: set PFSENSE_URL, AUTH_METHOD, and credentialsПодключение к Claude Desktop — добавьте в ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"pfsense": {
"command": "python3",
"args": ["-m", "src.main"],
"cwd": "/path/to/pfsense-mcp-server",
"env": {
"PFSENSE_URL": "https://192.168.1.1",
"AUTH_METHOD": "basic",
"PFSENSE_USERNAME": "admin",
"PFSENSE_PASSWORD": "your-password",
"PFSENSE_VERSION": "CE_2_8_0",
"VERIFY_SSL": "false"
}
}
}
}Начните общение с вашим межсетевым экраном. Откройте Claude Desktop и спросите:
"Покажи мне весь заблокированный трафик за последний час"
"Какие службы запущены?"
"Создай проброс порта 443 на 192.168.1.50"
"Запусти полную проверку состояния системы"
Что вы можете делать
327 инструментов для каждой основной подсистемы pfSense:
Домен | Инструменты | Что вы можете делать |
Правила Firewall | 9 | Создание, обновление, удаление, изменение порядка правил. Массовая блокировка IP. Просмотр скомпилированного набора правил pf. |
Алиасы | 5 | Управление алиасами хостов/сетей/портов/URL. Добавление и удаление адресов. |
NAT | 16 | Проброс портов, исходящий NAT, 1:1 NAT — полный жизненный цикл управления. |
VPN | 51 | OpenVPN серверы и клиенты, IPsec туннели, WireGuard пиры — CRUD, статус, применение. |
Маршрутизация | 16 | Шлюзы, группы шлюзов, статические маршруты, управление шлюзом по умолчанию. |
DNS | 24 | Unbound resolver и dnsmasq forwarder: переопределения хостов, переопределения доменов, списки доступа. |
DHCP | 17 | Аренды, статические привязки, пулы адресов, пользовательские опции, конфигурация сервера. |
Сертификаты | 15 | Сертификаты, CA, CRL — генерация, обновление, экспорт PKCS12. |
Пользователи | 12 | Учетные записи пользователей, группы, конфигурация сервера аутентификации LDAP/RADIUS. |
Интерфейсы | 14 | Конфигурация интерфейсов, VLAN, мосты, группы. |
Система | 44 | Статус, настройки, диагностика, история конфигурации, перезагрузка, ping. |
Службы | 14 | Запуск/остановка/перезапуск служб. NTP, cron, SSH, сторожевой таймер служб. |
Логи | 3 | Анализ логов межсетевого экрана с разобранными данными filterlog IPv4/IPv6. |
Traffic Shaping | 12 | Шейперы, очереди и ограничители для управления пропускной способностью. |
Расписания | 8 | Планирование правил межсетевого экрана на основе времени. |
Виртуальные IP | 5 | Управление CARP, ProxyARP и IP Alias. |
Устранение неполадок | 10 | Диагностика подключения, заблокированного трафика, VPN, DHCP, DNS, HA. Полный отчет о состоянии. |
Пакеты | 43 | HAProxy, ACME/Let's Encrypt, BIND DNS, FreeRADIUS. |
Утилиты | 9 | HATEOAS навигация, управление ID объектов, статус защиты. |
Безопасность прежде всего
ИИ, управляющий промышленным межсетевым экраном, нуждается в защитных барьерах. Этот сервер имеет 9 уровней:
"Delete firewall rule 5"
1. CLASSIFY → HIGH risk (destructive)
2. ALLOWLIST → tool is permitted
3. SANITIZE → parameters clean (no injection)
4. RATE LIMIT → under 10 deletes/minute
5. DRY RUN? → user can preview first
6. CONFIRM → blocked until confirm=True
7. BACKUP → config revision captured
8. EXECUTE → API call made
9. AUDIT LOG → action recorded with redacted params
Response includes:
"config_backup": {
"pre_change_revision_id": 42,
"rollback_instruction": "restore_config_backup(revision_id=42, confirm=True)"
}Каждая деструктивная операция (52 инструмента удаления/перезагрузки/остановки) требует confirm=True. Каждая операция создания и обновления (112 инструментов) ограничена по частоте и санитаризирована. Каждый чувствительный параметр (пароли, ключи, токены) скрывается в логах и выводах.
Вы также можете:
Передать
dry_run=Trueдля предварительного просмотра любой деструктивной операции без её выполненияПередать
verify_descr="Allow HTTPS"для проверки того, что вы удаляете правильное правило (защита от сдвига ID)Установить
MCP_READ_ONLY=true, чтобы открыть доступ только к 118 инструментам для чтения (поиск, получение, диагностика)Установить
MCP_ALLOWED_TOOLS=search_firewall_rules,get_firewall_logдля ограничения доступа конкретными инструментами
Поддерживаемые версии pfSense
Версия | REST API | Статус |
pfSense CE 2.8.1 | Проверено | |
pfSense Plus 25.11 | Проверено | |
pfSense CE 2.8.0 | v2.6.0+ | Поддерживается |
pfSense Plus 24.11 | v2.6.0+ | Поддерживается |
Требуется пакет pfSense REST API v2 от jaredhendrickson13.
Аутентификация
Поддерживаются три метода (настраиваются в .env):
Метод | Конфигурация | Лучше всего для |
Basic Auth |
| Быстрая настройка, локальные пользователи |
API Key |
| Автоматизация, сервисные учетные записи |
JWT |
| Краткосрочные токены, автообновление |
Варианты развертывания
stdio (по умолчанию) — для Claude Desktop и Claude Code:
python3 -m src.mainHTTP — для удаленного доступа и многоклиентских настроек:
python3 -m src.main -t streamable-http --port 3000Docker — защищенный контейнер с файловой системой только для чтения:
docker compose upБезопасность контейнера: пользователь без прав root (mcp:1000), файловая система только для чтения, все возможности (capabilities) сброшены, noexec tmpfs, no-new-privileges.
Конфигурация
Переменная | Обязательно | По умолчанию | Описание |
| Да | — | URL pfSense (например, |
|
|
| |
| * | — | Ключ REST API |
| * | — | Имя пользователя pfSense (для basic/jwt) |
| * | — | Пароль pfSense (для basic/jwt) |
|
|
| |
|
|
| |
|
| Тайм-аут запроса в секундах | |
|
| Открыть доступ только к инструментам для чтения |
Переменная | По умолчанию | Описание |
|
| Включить HATEOAS ссылки в ответах API |
|
|
|
|
|
|
|
| Адрес привязки для HTTP режима |
|
| Порт для HTTP режима |
| — | Bearer токен для HTTP транспорта (обязательно) |
| localhost | Разрешенные источники через запятую |
| — | Путь к файлу аудита (JSON lines) |
|
| Макс. удалений за 60 секунд |
|
| Макс. созданий за 60 секунд |
|
| Макс. критических операций за 300 секунд |
| all | Список разрешенных инструментов через запятую |
|
| Записи отката, хранящиеся в памяти |
Тестирование
python3 -m pytest tests/ -v # 308 tests
python3 -m pytest tests/ --cov=src # with coverageСоответствие спецификации MCP
Соответствует MCP 2025-11-25 (последняя версия):
ToolAnnotationsдля всех 327 инструментов (readOnlyHint, destructiveHint, idempotentHint)Предоставлены
serverInfo.versionиinstructionsВалидация заголовка Origin (обязательное требование)
Аутентификация по Bearer токену с использованием сравнения, устойчивого к временным атакам
Привязка по умолчанию к localhost согласно спецификации SHOULD
Транспорты stdio и Streamable HTTP
Структура проекта
src/
main.py Entry point
server.py FastMCP instance + API client
client.py pfSense REST API v2 HTTP client
guardrails.py 9-layer defense-in-depth system
helpers.py Validation, parsing, safety guards
models.py Data models
middleware.py HTTP auth + Origin validation
tools/ 34 tool modules (327 tools)
tests/ 308 testsВклад в проект
Нам нужно реальное тестирование в различных средах pfSense. См. CONTRIBUTING или:
Сделайте форк и создайте ветку для функции
Запустите
python3 -m pytest tests/ -vОтправьте PR
Идеи: интеграционные тесты с реальным pfSense, поддержка дополнительных пакетов (Snort, Suricata), мост к локальной LLM Ollama, управление несколькими экземплярами.
Лицензия
Благодарности
jaredhendrickson13 / pfrest — пакет pfSense REST API v2
JeremiahChurch — модульная переработка (PR #5)
shawnpetersen — обнаружение эндпоинтов API v2 (PR #3)
Netgate — pfSense
FastMCP — фреймворк MCP
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseCqualityBmaintenanceA server that enables managing OPNSense firewalls through natural language interactions with Claude Desktop, supporting VLAN management, firewall rules configuration, and network interface queries.6414875MIT
- -licenseNot gradedqualityNot gradedmaintenanceA production-ready server that connects Claude Desktop to Firewalla network management capabilities, allowing users to monitor devices, analyze network traffic, manage security alerts, and configure firewall rules through natural language.
- AlicenseNot gradedqualityDmaintenanceEnables natural language interaction and management of pfSense firewalls through Claude and other GenAI applications using the Model Context Protocol. It provides advanced tools for firewall rule configuration, interface management, and intelligent log analysis via a REST API integration.1MIT
- AlicenseCqualityCmaintenanceAn AI-powered penetration testing server that integrates over 30 security tools with Groq LLM analysis for automated vulnerability scanning, triage, and reporting. It enables users to perform comprehensive security assessments through natural language natively within Claude Desktop.29MIT
Related MCP Connectors
Security-first WordPress MCP server. 129 tools for Claude, ChatGPT, Gemini. Free on wp.org.
GibsonAI MCP server: manage your databases with natural language
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
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/gensecaihq/pfsense-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server