Fortinet MCP について
Fortinet MCPは、MSP向けの読み取り専用MCPサーバーとCLIです。複数の顧客のFortiGateを監査し、実行結果を記録して新たな問題を把握できます。
主な機能
- 01FortiGate群の一括監査
- 02ファームウェアとSSL-VPNの確認
- 03管理者とライセンスの確認
- 04稼働状態とポリシーの監査
- 05監査履歴と変更の追跡
活用シーン
- 01ファームウェア基準未満のファイアウォールの特定
- 02公開状態のSSL-VPNインターフェースの特定
- 03管理者アクセスと期限間近のライセンスの確認
- 04監査間で新たに見つかった問題の追跡
MCP 対応
MCPクライアントにFortiGateの設定と稼働状態の読み取り専用監査を提供します。このビルドでは標準のstdioトランスポートを使用し、HTTPモードは避けるようREADMEで注意されています。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Fortinet + AI - ChatGPT、Claude、GitHub Copilot、Microsoft 365 Copilot、Gemini、および MCP に対応するあらゆるエージェント向け
非公式です。コミュニティが開発した、Fortinet API 向けの Claude Code Skill および MCP サーバーです。Fortinet, Inc. とは提携、承認、スポンサー関係にありません。
スキルの全ページ - インストール方法、成果、安全性モデル。
すべての FortiGate の設定とリアルタイムの状態を読み取り、ファームウェア、SSL-VPN の公開状況、管理者アカウント、ライセンスの有効期限について、クライアント全体を 1 つのコマンドで監査できます。すでにお使いの AI で動作します。ChatGPT(Plus/Pro+、このコネクターが再公開されるまで一時停止中。詳細は mcp-install.md を参照)、Claude Desktop、Codex、Claude Code、Claude Cowork、GitHub Copilot に加え、リモート接続経由で Microsoft 365 Copilot / Copilot Studio と Google Gemini に対応しています。無料のオープンソースで、ノートパソコン上で動作します。MSP オーナー向けに構築されています。コードは不要です。
エージェントで利用
セキュリティに関する注意(このコネクターが再公開されるまで)。 HTTP モード (
--transport http)は、ローカルホスト上であっても実行しないでください。このビルドではトークンを 確認しますが、修正リリースに含まれるリクエストサイズと時間の制限がまだありません。MCP ツールは 認証情報を使ってデータを読み取ることもできます。デフォルトの stdio トランスポートを使用してください。リモートエージェント用に トンネルを設定している場合は、停止してください。修正版は準備中です。
MSP オーナーが実際に使っている 6 つのエージェント(セルフサービスで、現在利用可能):
| AI エージェント | Fortinet スキルのインストール方法 |
|---|---|
| Claude Desktop | インストーラーを実行し、Settings > Extensions から fortinet-mcp を登録します(JSON の編集は不要です)。 |
| ChatGPT(有料プラン) | このコネクターが再公開されるまで一時停止中です。ChatGPT には HTTP モードが必要ですが、このビルドではトークンを確認する一方、リクエストサイズと時間の制限がまだありません。mcp-install.md のセキュリティに関する注意を参照してください。 |
| Codex CLI | 下記のインストール用プロンプトを貼り付けます。 |
| Claude Code | 下記のインストール用プロンプトを貼り付けます。 |
| Claude Cowork | 下記のインストール用プロンプトを貼り付けます。 |
| GitHub Copilot(VS Code) | インストーラーを実行し、servers キーの下にある mcp.json に fortinet-mcp を追加してから、Agent モードを選択します。 |
ChatGPT にはリモート HTTPS サーバーが必要です。そのため、このコネクターでは HTTP モードが必要になりますが、コネクターが再公開されるまで一時停止中です。このビルドでは HTTP モードでトークンを確認する一方、リクエストサイズと時間の制限がまだありません。mcp-install.md のセキュリティに関する注意を参照してください。
Microsoft と Google のスタックにも対応
導入先は多いですが、正直にお伝えすると、これらは先ほどインストールしたローカルバイナリではなく、リモート/エンタープライズ向けの方法です。
| エージェント | 必要なもの |
|---|---|
| Microsoft 365 Copilot / Copilot Studio | このコネクターが再発行されるまで一時停止中です。Copilot Studio には HTTP モードが必要ですが、このビルドではそのモードはトークンを確認するだけで、リクエストサイズや時間の制限はまだありません。mcp-install.md のセキュリティに関する注意をご覧ください。 |
| Google Gemini | Gemini CLI はローカルで動作し、Claude Code と同じです。Gemini アプリはリモートで動作するため、ChatGPT と同様に一時停止中の HTTP モードが必要です。mcp-install.md をご覧ください。 |
スキルネイティブのエージェントにも対応しています: Hermes と OpenClaw は、このスキルの
SKILL.mdを直接読み取り、MCP にも対応しています。インストール方法については、以下の各セクションをご覧ください。Cursor、Windsurf、Cline、Continue.dev、Zed でも MCP 経由で動作します。ツールごとの詳しい設定方法については、docs/which-agent.md をご覧ください。
複数のエージェントを使用しますか? 1 つのコマンドで、サポート対象の 51 以上のエージェントにインストールできます:
npx skills add Servosity/msp-skills@latest(Node.js が必要です。その後、CLI/MCP バイナリ用のスキルごとのインストーラーを実行してください)。docs/which-agent.md をご覧ください。
60 秒でインストール
Claude Desktop で最も手早く使う方法 - ワンクリックの .mcpb
Fortinet MCP (.mcpb) をダウンロード してから、Claude Desktop > Settings > Extensions を開き、ファイルを選択します。ワンクリックで完了し、JSON もシェルも不要です。(Fortinet のすべてのリリースはリリースページで確認できます。)
Claude Code プラグインを使う場合は、マーケットプレイスを一度追加してからインストールします。すぐに使えるようになり、ディレクトリ一覧の取得も不要です:
/plugin marketplace add Servosity/msp-skills
/plugin install fortinet@msp-skills
方法 A - AI エージェントにプロンプトを 1 つ貼り付ける(推奨)
以下を Claude Code、Codex CLI、または Claude Cowork にコピーします:
このエージェントのワークスペースに、Servosity/msp-skills から Fortinet Skill と MCP サーバーをインストールしてください。このワークスペースで POSIX シェル(macOS、Linux、WSL、または Bash)を使う場合は、
bash <(curl -fsSL https://raw.githubusercontent.com/Servosity/msp-skills/main/skills/fortinet/install.sh)を実行してください。Windows PowerShell を使う場合は、iwr -useb https://raw.githubusercontent.com/Servosity/msp-skills/main/skills/fortinet/install.ps1 | iexを実行してください。その後、README に従って認証し、fortinet-cli --helpを実行して機能を確認してください。
シェルを実行できるエージェントであれば、同じプロンプトを使用できます。
方法 B - インストーラーを自分で実行する
Windows(PowerShell):
iwr -useb https://raw.githubusercontent.com/Servosity/msp-skills/main/skills/fortinet/install.ps1 | iex
macOS/Linux:
bash <(curl -fsSL https://raw.githubusercontent.com/Servosity/msp-skills/main/skills/fortinet/install.sh)
インストーラーは、fortinet-cli(CLI)と fortinet-mcp(MCP サーバー)の両方をユーザーの bin パスに配置します。Claude Code、Codex、Cowork は、このディレクトリ内の SKILL.md を使ってスキルを検出します。
確認:
fortinet-cli --version
最新バージョンにアップグレードする
インストーラーは常に最新リリースを取得します。アップグレードするには、インストーラーを再実行してください:
macOS/Linux:
bash <(curl -fsSL https://raw.githubusercontent.com/Servosity/msp-skills/main/skills/fortinet/install.sh)
Windows(PowerShell):
iwr -useb https://raw.githubusercontent.com/Servosity/msp-skills/main/skills/fortinet/install.ps1 | iex
Claude Desktop の .mcpb を使用している場合:最新の .mcpb(このセクションの冒頭)をダウンロードし、Settings > Extensions で再度選択してください。Claude Code プラグインを使用している場合:/plugin update fortinet@msp-skills。
Claude Desktop、GitHub Copilot、Gemini CLI、Microsoft 365 Copilot、またはその他の MCP クライアントに追加する
インストーラーの実行後、エージェントごとの設定方法については mcp-install.md と docs/which-agent.md をご覧ください。GitHub Copilot の servers キーや、リモートの Microsoft 365 Copilot/Copilot Studio 向けの方法も含め、エージェントごとに説明しています。最も簡単なのは Claude Desktop の Settings > Extensions パネルを使う方法です。JSON を編集したい場合の MCP 設定ブロックは、mcp-install.md に記載されています。
Hermes へのインストール
Hermes CLI から:
hermes skills install servosity/msp-skills/skills/fortinet --force
Hermes のチャットセッション内で:
/skills install servosity/msp-skills/skills/fortinet --force
Hermes は MCP をネイティブにサポートしているため、fortinet-mcp サーバーも直接使用できます。同じインストール手順、同じ環境変数を使用します。
OpenClaw へのインストール
OpenClaw エージェントに次の内容を伝えます(コピーしてください):
https://github.com/servosity/msp-skills/tree/main/skills/fortinet から fortinet スキルをインストールしてください。このスキルでは、必要な CLI(
fortinet-cli)をopenclaw:フロントマターブロック経由でインストールする方法を定義しています。
OpenClaw はまだ一般提供されていません。フロントマターの連携機能はあらかじめ組み込まれており、OpenClaw の公開と同時に有効になります。
認証
FortiGate に REST API 管理者を作成してから(System > Administrators > Create New > REST API Admin、読み取り専用プロファイルを指定し、信頼できるホストとして自分の IP アドレスを設定)、次を実行します:
FORTINET_BASE_URL=<value> FORTINET_API_TOKEN=<value> fortinet-cli doctor
doctor は設定とパスを確認した後、認証済みの読み取りを 1 回(GET /monitor/system/status)実行します。トークンが設定されているかどうかだけでなく、実際に機能するかどうかも報告します。複数の FortiGate を管理する場合は、devices.toml ファイルに一覧を記載し、fortinet-cli fleet devices を実行すると、使用可能な URL とトークンファイルが設定されている項目を確認できます。
このスキルでできること
| MSP からよく寄せられる質問 | コマンド |
|---|---|
| 前回の実行以降に新たに見つかった項目だけを対象に、すべてのクライアントの FortiGate をまとめて判定するには? | fortinet-cli fleet audit --new |
| 各ブランチの修正済みファームウェアに更新されていない FortiGate は? | fortinet-cli audit firmware --min-version 7.2.10,7.4.5 |
| WAN インターフェースで SSL-VPN が有効になっており、すべての送信元に公開されている場所は? | fortinet-cli audit sslvpn |
| 信頼できるホストが設定されていない、または二要素認証が有効になっていない管理者は? | fortinet-cli audit admins |
| 今後 60 日以内に有効期限を迎える FortiGuard および FortiCare ライセンスは? | fortinet-cli audit licenses --within 60d |
| HA の同期ずれ、トンネルのダウン、証明書の有効期限切れが発生しているファイアウォールは? | fortinet-cli fleet health --cert-within 14d |
| すべての送信元・宛先を許可するポリシー、未使用のポリシー、ログを記録しないポリシーは? | fortinet-cli policies hygiene --unused-days 90 |
| 今週、各クライアントの設定にどのような変更がありましたか? | fortinet-cli fleet changes --since 7d |
| FortiManager で管理されているデバイスのうち、同期が取れていないものは? | fortinet-cli fmg devices |
| トンネルがダウンしている、または契約が終了間近の FortiGate Cloud デバイスは? | fortinet-cli cloud devices |
コマンドの全リファレンスについては、guide.md を参照してください。AI エージェントの運用規約(--agent、--dry-run、変更を加える前に確認するタイミング)については、AGENTS.md を参照してください。
これが他と異なる点
alpadalar/fortigate-mcp-server は汎用の FortiGate MCP サーバーです。デバイスレジストリ、読み取りツール、ポリシー、VIP、ルートの作成・更新・削除ツールを備え、書き込みを有効にしない限り無効のままです。指定したデバイスについて回答します。
こちらは設計上読み取り専用で、MSP が SSL-VPN に関する勧告が出た朝に尋ねる「現在、顧客 40 社のうち、どこが影響を受けていますか?」という質問に対応するために作られています。devices.toml ファイルに顧客ごとの FortiGate をすべて記載すると、fleet audit がそれらを並列で読み取り、各デバイスをファームウェアのブランチ別最低バージョン、SSL-VPN の露出、管理者アカウント、ライセンスの有効期限について PASS、WARN、FAIL、UNKNOWN のいずれかで評価します。読み取れなかったデバイスは PASS ではなく、UNKNOWN になります。実行結果は毎回ローカルに記録されるため、fleet audit --new では前回の実行以降に発生した新しい検出結果だけが表示され、fleet backup と fleet changes では 2 つのバックアップ間で変更された構成オブジェクトを確認できます。fmg と cloud を使うと、FortiManager と FortiGate Cloud のインベントリも読み取り専用で追加されます。保存されたシークレットが回答に含まれることはありません。FortiOS で暗号化された値はすべて ENC (redacted) として返されます。
Fortinet の FortiAI-Assist は FortiManager と FortiAnalyzer 内で動作し、FortiCare Premium を利用し、RAM が 2 GB を超える FortiGate では FortiOS 8.0 以降で使用できます。動作しているコンソール内で回答します。こちらは各 FortiGate に読み取り専用 REST API トークンがあればよいため、FortiAI-Assist が対応しない小型デバイスも対象にでき、顧客ごとのすべてのファイアウォールを一度に横断して回答します。
解決する課題
FortiOS SSL-VPN は、顧客のネットワークで最初に攻撃される部分です。Fortinet は 2024 年 2 月に CVE-2024-21762 を公表した際、この脆弱性が「実環境で悪用されている可能性がある」と述べており(Rapid7)、MSP への勧告は、すべてのデバイスを各ブランチの修正済みリリースに更新するか、SSL-VPN を無効にすることでした(SmarterMSP)。その日の朝に対処するには、どの顧客の FortiGate で SSL-VPN が稼働しているか、どのデバイスが WAN 上で誰でも接続できる状態で待ち受けているか、どれが修正済みビルドより古いかを把握する必要があります。FortiOS では一度に 1 台のデバイスしか確認できません。FortiManager がなければ、顧客ごとにログインが必要です。
fortinet-cli audit sslvpn- デバイスと VDOM ごとに、あらゆる送信元に公開された WAN インターフェイス上の SSL-VPN を FAIL と判定します。fortinet-cli audit firmware --min-version 7.2.10,7.4.5- ブランチ別の最低バージョンに達していないすべてのデバイスと、どの程度遅れているかを表示します。fortinet-cli audit licenses --within 60d- スプレッドシートの代わりに、更新対象をまとめた一覧を表示します。fortinet-cli fleet audit --new --fail-on fail- 4 つのチェックすべてを実行し、新しい検出結果だけを表示します。スケジュールジョブでは失敗時に終了コード 6 を返します。
詳しい説明は pain-point.md をご覧ください。
よくある質問
ChatGPT で使えますか?
このビルドでは使えません。ChatGPT(Plus、Pro、Team、Business、Enterprise、Education プラン。Free ではまだ Developer Mode を利用できません)が接続できるのは、HTTPS 経由の リモート MCP サーバーのみです。そのため、Fortinet MCP サーバーを HTTP モードで実行する必要があります。このビルドの HTTP モードではトークンを検証しますが、リクエストサイズや実行時間の制限がまだありません。そのため、コネクターが再公開されるまでは実行したり、トンネルの背後に配置したりしないでください。その理由は mcp-install.md のセキュリティに関する注意事項で説明しています。それまでは Claude Desktop、Claude Code、または Codex をお使いください。
Codex、Cursor、Windsurf、Cline、Copilot、Gemini で使えますか?
はい。いずれも MCP に対応しています。ツール別のインストールコマンドは上記の表と、docs/which-agent.md の詳細説明をご覧ください。
コーディングの知識は必要ですか?
いいえ。推奨するインストール方法は、Claude Code または Codex に 1 文貼り付けるだけです。エージェントが SKILL.md を読み込んでインストールを実行します。代替手段として、OS ごとに 1 行のインストーラー(bash または PowerShell)も用意しています。どちらの方法でもコードを書く必要はありません。Fortinet の認証情報は一度入力するだけです。
Fortinet のデータは安全ですか?
データはお使いのマシン上に保存されます。CLI と MCP サーバーはローカルバイナリです。SQLite のミラーは、ユーザーアカウント配下のディレクトリに保存されます。AI エージェントに見えるのは CLI が返す情報だけです。通常はクエリ結果であり、未加工の一括データではありません。認証情報は環境変数またはエージェントの設定から読み込まれます。MSP Skills によってこのリポジトリに含められたり、どこかに送信されたりすることはありません。
FortiGate を変更できますか?
いいえ。すべての FortiOS 呼び出しは、設定テーブルまたはモニターの状態を読み取ります(settings コマンドと monitor コマンドは読み取り専用で、設定は行いません)。FortiManager コマンドは JSON-RPC の get メソッドのみを送信し、FortiGate Cloud コマンドはデバイスを一覧表示するだけです。保存されたシークレットが回答に含まれることもありません。FortiOS で暗号化された値(RADIUS シークレット、IPsec キー、パスワードハッシュ)はすべて ENC (redacted) として返され、プレーンテキストのパスワードを求めるリクエストは拒否されます。各トークンに読み取り専用の管理者プロファイルを持つ REST API 管理者を割り当てれば、残りは FortiGate 自体が強制します。
1 台だけでなく、40 台のクライアント FortiGate を確認するにはどうすればよいですか?
devices.toml にデバイスを列挙します。各デバイスに 1 つの [[device]] エントリを作成し、url、token_file(そのデバイスのトークンを格納するファイル。macOS と Linux では、chmod 600 が設定されていないと CLI はこのファイルを拒否します)、および任意の client 名を指定します。fortinet-cli fleet devices を実行すると、使用可能な URL とトークンファイルを持つエントリが表示され、以降の監査コマンドはすべてリスト全体を対象に実行されます。指定したデバイスファイル(--devices または FORTINET_DEVICES で指定)が見つからない場合や、[[device]] エントリがない場合はエラーになります。1 台だけに黙って切り替わることはありません。デバイスファイルを指定しない場合、監査対象は FORTINET_BASE_URL のデバイス 1 台です。
FortiGate がまだ工場出荷時の証明書を使っています。接続できますか?
既定では接続できません。証明書の検証は有効なままです。安全に接続するには、FortiGate に信頼できる証明書を設定してください(FortiOS では Let's Encrypt から取得できます)。それ以外の場合は、デバイスごとに devices.toml で insecure = true を設定するか、--insecure を渡すか、JSON 設定の MCP サーバーの env ブロックに "FORTINET_SKIP_TLS_VERIFY": "true" を追加して明示的に有効にしてください(これにより FortiManager の検証も無効になります。FortiManager だけを対象にする場合は FORTINET_FMG_INSECURE=true を設定します)。ワンクリックで設定できる .mcpb にこの項目がないのは意図的です。チェックボックスを 1 つオンにするだけで、すべてのデバイスの検証が無効になってしまうためです。devices.toml のエントリで insecure = true を設定すると、フリート、監査、およびポリシー衛生ツールに適用されます。一方、単一デバイス用ツールと fmg ツールには、引き続き信頼できる証明書(または上記の JSON 設定)が必要です。
FortiManager または FortiGate Cloud は必要ですか?
いいえ。どちらも任意の追加機能です。fmg コマンドは FortiManager の ADOM と管理対象デバイスを読み取り、cloud コマンドは FortiGate Cloud のインベントリを読み取ります。それ以外はすべて、各 FortiGate に直接接続します。
費用はかかりますか?
無料です。Apache-2.0 ライセンスで提供されています。費用がかかるのは使用する AI エージェント(Claude、ChatGPT、Codex など)の利用料のみで、請求は当社ではなく AI プロバイダーから行われます。
安全モデル
| ティア | 例 | 推奨されるエージェントポリシー |
|---|---|---|
| 読み取り | fleet audit、fleet health、4 つの audit チェック、policies hygiene、fmg と cloud の読み取り、すべての list / get、monitor と settings の各コマンド、sync、search、export(暗号化されたシークレットはマスキングされます。sync と fleet audit はローカルの状態を書き込み、export --output は指定したファイルを上書きします) | 許可 |
| 機密情報の読み取り | fleet backup(暗号化されたシークレットや秘密鍵を含む完全な設定。意図的にマスキングされません)、administrators、api-users、local-users、monitor fortitokens | 人間の確認を必須とし、出力を非公開に保つ |
| 認証情報 | auth set-token、auth logout | 人間の確認を必須とする |
| データの外部送信 | --deliver webhook:<url>、feedback --send | 人間の確認を必須とする |
FortiGate、FortiManager、FortiGate Cloud を変更するコマンドはありません。
最も強力な制御は、各 REST API トークンに設定する管理者プロファイルです。読み取り専用プロファイルを使うと、FortiGate はそれ以外の操作を拒否します。制限を厳しくする方法を含む詳細は、governance.md をご覧ください。
ステータス
ベータ版であり、実環境での検証を待っています。コマンド群は、Fortinet の公開 Ansible コレクションを基にした、コミュニティ作成の FortiOS 7.4 エンドポイントの OpenAPI 定義から生成されています(Fortinet 公式の仕様ではありません)。また、フリート監査は、シミュレートした FortiGate、FortiManager、FortiGate Cloud の応答に対するユニットテストでカバーされていますが、本番環境の FortiGate で実行して報告した MSP はまだありません。そのため、ここに記載された内容は実機での動作が確認されていません。ご自身の環境で実行する場合は、動作確認フォームから報告すると、バッジの取得につながります。MSP は毎週開催される Build Sessions で、このようなコネクターを徹底的に試しています。compoundingteams.com/build-sessions から参加をお申し込みください。
標準規格。 オープンな Agent Skills spec(Anthropic、2025 年 12 月、40 以上のエージェント)に準拠しています。MCP と互換性があり、Hermes を含む、MCP 対応のあらゆるエージェントで動作します。OpenClaw 対応済みです(frontmatter は事前に設定済みで、OpenClaw のリリースを待っています)。
Servosity がメンテナンスしています。Apache-2.0 ライセンスです。CLI Printing Press で構築されています。最終更新日:2026-10-13。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。