mcpField
O
Opnsense Mcp

Opnsense Mcp

ローカル
github.com/coreyhinesセキュリティ113 日前に更新

Opnsense Mcp について

OPNsense MCP Serverは、ネットワーク運用担当者がMCP経由でOPNsenseファイアウォールを調査・管理するためのサーバーです。デバイス検出、監視、ルール管理、パケットキャプチャに対応し、ローカルと集中型の運用モードを備えています。

主な機能

  1. 01ARP、DHCP、LLDPによる検出
  2. 02システム状態とログの確認
  3. 03ファイアウォールルール管理
  4. 04インターフェース一覧の取得
  5. 05パケットキャプチャ
  6. 06STDIO、SSE、Streamable HTTP対応

活用シーン

  1. 01最近のファイアウォール遮断の調査
  2. 02ホストとネットワークの詳細確認
  3. 03不審なトラフィックのキャプチャ
  4. 04VLANとインターフェース状態の確認

MCP 対応

MCPクライアントに、OPNsenseの検出、監視、ルール管理、インターフェース、パケットキャプチャのツールを提供します。STDIO、SSE、Streamable HTTPに対応しています。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

opnsense-mcp

OPNsense MCP サーバー

opnsense-mcp MCP server opnsense-mcp MCP server

OPNsense ファイアウォールの操作(ARP、DHCP、ログ、ルール、インターフェース、システムステータス、パケットキャプチャ)に対応する MCP サーバーです。

次の2つのデプロイモードのいずれかを使用します。

  • STDIO(ローカル):サーバープロセスを直接実行する Cursor/Claude Code/Continue に最適です。
  • SSE(一元管理):HTTPS 経由で共有する、長時間稼働のサービスに最適です。

デモ

Claude Code CLI でファイアウォールに問い合わせます。実際のネットワークデータを使ったライブデモです。

opnsense-mcp demo

このプロジェクトを作った理由

ログの確認や ARP データの取得のたびに、SSH でファイアウォールに接続するのが面倒になったため、このプロジェクトを作りました。今では Claude に次のように質問できます。

  • 「今、ネットワークで何が起きていますか?」
  • 「最新のファイアウォールブロックを表示してください」
  • 「あのホストについて教えてください」
  • 「不審なトラフィックのパケットをキャプチャしてください」

Claude は MCP 経由でファイアウォールに問い合わせ、分析とコンテキストをまとめて提供します。ホームラボとビジネス環境のどちらでも同様に使用できます。

クイックスタート

1) ローカル環境のセットアップ(両モードで必須)
uv venv
source .venv/bin/activate
uv pip install -r requirements.txt
cp examples/.env.example ~/.env

~/.env を編集します。

OPNSENSE_API_KEY=your_api_key
OPNSENSE_API_SECRET=your_api_secret
OPNSENSE_FIREWALL_HOST=your.firewall.host
# HTTP/SSE only; stdio ignores it. Generate with: openssl rand -hex 32
MCP_SECRET_KEY=
2) モードを選択
モード A:STDIO(ローカル IDE/クライアント)

MCP クライアントが mcp_start.sh を起動するように設定します。

{
  "mcpServers": {
    "opnsense-mcp": {
      "command": "/bin/bash",
      "args": ["/absolute/path/to/opnsense-mcp/mcp_start.sh"],
      "cwd": "/absolute/path/to/opnsense-mcp"
    }
  }
}

詳しい手順については、docs/GETTING_STARTED.md を参照してください。

モード B:SSE(一元管理サービス)

Linux インストーラーを実行します(Podman + quadlet + Caddy TLS)。

sudo bash deploy/install.sh

クライアントは次の場所に接続します。

https://<your-hostname>/sse

すべてのリクエストで Authorization: Bearer <MCP_SECRET_KEY> を送信する必要があります。キーが空欄またはプレースホルダーの場合、サーバーは HTTP トランスポートでの起動を拒否します。

デプロイに関するドキュメント:

利用可能な機能

主なツール:

  • 検出:arp、dhcp、lldp
  • 監視:system、get_logs、packet_capture
  • ファイアウォールルール:fw_rules、mkfw_rule、set_fw_rule、toggle_fw_rule、rmfw_rule
  • インターフェース:interface_list

全リファレンス:docs/REFERENCE/FUNCTION_REFERENCE.md

新機能(2026年6月)

最近、5件の PR がマージされました。詳しい内容と使用例については、docs/FEATURES_UPDATE.md を参照してください。

  • Streamable HTTP トランスポート — ネイティブの FastMCP サーバーが stdio、sse、streamable-http(MCP 仕様 2025-03-26)をサポートします。deploy/install.sh を使ってデプロイします。
  • DHCP client_id(DUID)対応 — mk_dhcp_host と move_dhcp_host では、ステートフル DHCPv6 の照合に使用する DUID をオプションで指定できます。
  • Semver イメージタグ — main ブランチのビルドには、pyproject.toml のバージョンより次のパッチバージョンのプレリリースタグ(1.0.0 の後は 1.0.1-dev.a1b2c3d)、またはリリースタグ(1.0.0)が付与されます。
  • コンテナレジストリ — 固定タグのみ対応し、:latest は拒否されます。OPNSENSE_MCP_IMAGE_REPO を設定するか、--build-local を使ってローカルでビルドしてください。
  • install.sh の readonly 修正 — install.sh と lib.sh 間の Bash readonly の競合を解消しました。

ユースケース

  • ホームラボのネットワークトラブルシューティング — ターミナルからファイアウォールログを照会し、何が起きているかについて Claude の分析を得ます。
  • セキュリティ運用 — 「過去1時間のブロックを分析して」のように、インシデントの初期調査を自動化します。
  • インフラストラクチャの自動化 — ファイアウォールの状態を動的に照会する、MCP 対応スクリプトを作成します。
  • DevOps のトラブルシューティング — SSH 接続なしで VLAN/インターフェースのステータスをすばやく確認します。

フィードバック

最初の10人のユーザーからのフィードバックをツールに反映します。バグを見つけた場合やアイデアがある場合は、issue またはディスカッションを投稿してください。

レビューの際に最初に確認する場所

scripts/risk_map.py は、git の履歴(変更頻度 × 修正密度)からソースファイルの不具合発生可能性を順位付けします。これにより、レビューではリスクの高いファイルから確認でき、早めに終了できます。バグを見つけるのではなく、バグが集中している場所を見つけます。

python3 scripts/risk_map.py --top 15

CI は、マージをブロックしないアドバイザリー Insights ワークフローで、すべてのプルリクエストに対して複雑度レポート(radon)およびセキュリティパターンの検査(bandit)と併せてこのスクリプトを実行します。ビルドをブロックするしきい値の導入は、数値への信頼が得られてから行います。

ドキュメント一覧

ライセンス

このプロジェクトはMIT Licenseのもとで公開されています。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。