Skip to main content
Glama
gensecaihq

pfSense MCP Server

by gensecaihq

pfSense MCPサーバー

Version License MCP 2025-11-25 pfSense REST API Tests Tools

自然言語でpfSenseファイアウォールを管理しましょう。327個のツール。9層の安全対策。コマンド一つで開始。

You: "Block all traffic from 203.0.113.5 on WAN"
Claude: Creates block rule → applies changes → confirms with rollback instructions

pfSense MCPサーバーは、Claude DesktopClaude Code、およびその他のMCP互換AIクライアントを、お使いのpfSenseファイアウォールに接続します。質問、問題の診断、ファイアウォールの管理をすべて会話を通じて行えます。

なぜこれが必要なのか

pfSenseファイアウォールの管理には、Web UIのタブをクリックし、フィールド名を覚え、設定ミスで締め出されないことを祈る必要があります。このMCPサーバーを使えば、やりたいことを平易な英語で説明するだけで、AIがREST API呼び出しを処理し、入力を検証し、破壊的な操作を行う前に警告を表示します。

特徴:

  • すべての破壊的な操作には明示的な確認が必要であり、何が起こるかを正確に表示します

  • 削除/再起動のたびに自動的に設定をバックアップし、1行のコマンドでロールバック可能

  • レート制限により、AIの暴走ループがファイアウォールにルールを大量送信するのを防ぎます

  • 入力サニタイズにより、すべてのパラメータにおけるコマンドインジェクション、パストラバーサル、XSSをブロックします

Related MCP server: Firewalla MCP Server

クイックスタート

前提条件: Python 3.10以上、REST API v2パッケージがインストールされたpfSense

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を開いて以下のように尋ねてください:

  • "Show me all blocked traffic in the last hour" (過去1時間のブロックされたトラフィックをすべて表示して)

  • "What services are running?" (現在実行中のサービスは何?)

  • "Create a port forward for port 443 to 192.168.1.50" (ポート443から192.168.1.50へのポートフォワードを作成して)

  • "Run a full system health check" (システム全体のヘルスチェックを実行して)

何ができるか

pfSenseの主要なサブシステム全体で327個のツールが利用可能です:

ドメイン

ツール数

何ができるか

ファイアウォールルール

9

ルールの作成、更新、削除、並べ替え。IPの一括ブロック。コンパイル済みpfルールセットの表示。

エイリアス

5

ホスト/ネットワーク/ポート/URLエイリアスの管理。アドレスの追加と削除。

NAT

16

ポートフォワード、アウトバウンドNAT、1:1 NAT — フルライフサイクル管理。

VPN

51

OpenVPNサーバー/クライアント、IPsecトンネル、WireGuardピア — CRUD、ステータス、適用。

ルーティング

16

ゲートウェイ、ゲートウェイグループ、スタティックルート、デフォルトゲートウェイ管理。

DNS

24

Unboundリゾルバーおよびdnsmasqフォワーダー: ホストオーバーライド、ドメインオーバーライド、アクセスリスト。

DHCP

17

リース、スタティックマッピング、アドレスプール、カスタムオプション、サーバー設定。

証明書

15

証明書、CA、CRL — 生成、更新、PKCS12エクスポート。

ユーザー

12

ユーザーアカウント、グループ、LDAP/RADIUS認証サーバー設定。

インターフェース

14

インターフェース設定、VLAN、ブリッジ、グループ。

システム

44

ステータス、設定、診断、設定履歴、再起動、ping。

サービス

14

サービスの開始/停止/再起動。NTP、cron、SSH、サービスウォッチドッグ。

ログ

3

IPv4/IPv6 filterlogデータを解析したファイアウォールログ分析。

トラフィックシェーピング

12

帯域幅管理のためのシェーパー、キュー、リミッター。

スケジュール

8

時間ベースのファイアウォールルールスケジュール。

仮想IP

5

CARP、ProxyARP、IPエイリアス管理。

トラブルシューティング

10

接続性、ブロックされたトラフィック、VPN、DHCP、DNS、HAの診断。完全なヘルスレポート。

パッケージ

43

HAProxy、ACME/Let's Encrypt、BIND DNS、FreeRADIUS。

ユーティリティ

9

HATEOASナビゲーション、オブジェクトID管理、ガードレールステータス。

安全第一

本番環境のファイアウォールを管理するAIにはガードレールが必要です。このサーバーには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

v2.7.3

検証済み

pfSense Plus 25.11

v2.7.3

検証済み

pfSense CE 2.8.0

v2.6.0+

サポート

pfSense Plus 24.11

v2.6.0+

サポート

jaredhendrickson13 による pfSense REST API v2パッケージ が必要です。

認証

3つのメソッドをサポート(.envで設定):

メソッド

設定

用途

Basic Auth

AUTH_METHOD=basic + ユーザー名/パスワード

クイックセットアップ、ローカルユーザー

API Key

AUTH_METHOD=api_key + システム > REST API > Keysのキー

自動化、サービスアカウント

JWT

AUTH_METHOD=jwt + ユーザー名/パスワード

短命トークン、自動更新

デプロイオプション

stdio (デフォルト) — Claude DesktopおよびClaude Code用:

python3 -m src.main

HTTP — リモートアクセスおよびマルチクライアント設定用:

python3 -m src.main -t streamable-http --port 3000

Docker — 読み取り専用ファイルシステムを備えた強化コンテナ:

docker compose up

コンテナのセキュリティ: 非rootユーザー (mcp:1000)、読み取り専用ファイルシステム、すべてのケーパビリティをドロップ、noexec tmpfs、no-new-privileges

設定

変数

必須

デフォルト

説明

PFSENSE_URL

はい

pfSense URL (例: https://192.168.1.1)

AUTH_METHOD

api_key

api_key, basic, または jwt

PFSENSE_API_KEY

*

REST APIキー

PFSENSE_USERNAME

*

pfSenseユーザー名 (basic/jwt用)

PFSENSE_PASSWORD

*

pfSenseパスワード (basic/jwt用)

PFSENSE_VERSION

CE_2_8_0

CE_2_8_0, CE_2_8_1, CE_26_03, PLUS_24_11, PLUS_25_11

VERIFY_SSL

true

自己署名証明書の場合は false

API_TIMEOUT

30

リクエストタイムアウト(秒)

MCP_READ_ONLY

false

読み取り専用ツールのみを公開

変数

デフォルト

説明

ENABLE_HATEOAS

false

APIレスポンスでHATEOASリンクを有効にする

LOG_LEVEL

INFO

DEBUG, INFO, WARNING, ERROR

MCP_TRANSPORT

stdio

stdio または streamable-http

MCP_HOST

127.0.0.1

HTTPモードのバインドアドレス

MCP_PORT

3000

HTTPモードのポート

MCP_API_KEY

HTTPトランスポート用のBearerトークン(必須)

MCP_ALLOWED_ORIGINS

localhost

カンマ区切りの許可されたオリジン

MCP_AUDIT_LOG

監査ログファイルのパス (JSON lines)

MCP_RATE_LIMIT_DELETE

10

60秒あたりの最大削除数

MCP_RATE_LIMIT_CREATE

20

60秒あたりの最大作成数

MCP_RATE_LIMIT_CRITICAL

2

300秒あたりの最大クリティカル操作数

MCP_ALLOWED_TOOLS

all

カンマ区切りのツール許可リスト

MCP_ROLLBACK_BUFFER

50

メモリ内に保持されるロールバックエントリ数

テスト

python3 -m pytest tests/ -v          # 308 tests
python3 -m pytest tests/ --cov=src   # with coverage

MCP仕様への準拠

MCP 2025-11-25 (最新) に準拠:

  • 327個すべてのツールに ToolAnnotations (readOnlyHint, destructiveHint, idempotentHint) を付与

  • serverInfo.version および instructions を提供

  • Originヘッダーの検証 (MUST要件)

  • タイミング攻撃耐性のある比較を用いたBearerトークン認証

  • 仕様SHOULDに従い、デフォルトでlocalhostにバインド

  • 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 を参照するか、以下を行ってください:

  1. フォークしてフィーチャーブランチを作成

  2. python3 -m pytest tests/ -v を実行

  3. PRを提出

アイデア: 実機pfSenseに対する統合テスト、追加パッケージサポート (Snort, Suricata)、OllamaローカルLLMブリッジ、マルチインスタンス管理。

ライセンス

MIT

謝辞

Install Server
A
license - permissive license
B
quality
A
maintenance

Maintenance

Maintainers
Response time
Release cycle
1Releases (12mo)
Commit activity
Issues opened vs closed

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

  • A
    license
    C
    quality
    B
    maintenance
    A server that enables managing OPNSense firewalls through natural language interactions with Claude Desktop, supporting VLAN management, firewall rules configuration, and network interface queries.
    64
    148
    75
    MIT
  • -
    license
    Not graded
    quality
    Not graded
    maintenance
    A 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.
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables 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.
    1
    MIT
  • A
    license
    C
    quality
    C
    maintenance
    An 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.
    29
    MIT

View all related MCP servers

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.

View all MCP Connectors

Latest Blog Posts

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