关于 Fortinet MCP
Fortinet MCP 是面向 MSP 的只读 MCP 服务和 CLI,用于审计多个客户的 FortiGate。它汇总设备状态并记录审计结果,以便发现新出现的问题。
主要功能
- 01跨设备 FortiGate 审计
- 02固件与 SSL-VPN 检查
- 03管理员和许可证审查
- 04健康状态与策略检查
- 05本地审计记录和变更跟踪
适用场景
- 01查找低于固件版本要求的防火墙
- 02识别暴露的 SSL-VPN 接口
- 03检查管理员访问和即将到期的许可证
- 04跟踪多次审计间的新问题
MCP 相关
向 MCP 客户端提供 FortiGate 配置和实时状态的只读审计。项目建议使用默认的 stdio 传输,并警告此版本不要使用 HTTP 模式。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Fortinet + AI - 适用于 ChatGPT、Claude、GitHub Copilot、Microsoft 365 Copilot、Gemini 以及任何支持 MCP 的 Agent
非官方。由社区构建的 Fortinet API Claude Code Skill 和 MCP 服务。与 Fortinet, Inc. 无关联,未获其认可或赞助。
完整技能页面 - 安装、效果和安全模型。
读取每台 FortiGate 的配置和实时状态,然后通过一条命令审计整个客户设备群的固件、SSL-VPN 暴露情况、管理员账号和许可证到期时间。适用于你已经在使用的 AI - ChatGPT(Plus/Pro+,在重新发布此连接器前暂停;请参阅 mcp-install.md)、Claude Desktop、Codex、Claude Code、Claude Cowork 和 GitHub Copilot - 以及通过远程路径使用的 Microsoft 365 Copilot / Copilot Studio 和 Google Gemini。免费、开源,可在笔记本电脑上运行。专为 MSP 所有者打造。无需编写代码。
适用于你的 Agent
安全提示(在重新发布此连接器之前)。 不要运行 HTTP 模式 (
--transport http),即使在 localhost 上也不行。此版本会检查令牌,但 早于修复版本中的请求大小和时间限制。MCP 工具还可以使用你的凭据读取数据。如果 为远程 Agent 设置了隧道,请将其关闭。修复版本即将推出。
MSP 所有者实际使用的六种 Agent(可自行安装,现已可用):
| 你的 AI Agent | 如何安装 Fortinet skill |
|---|---|
| Claude Desktop | 运行安装程序,然后前往 Settings > Extensions 注册 fortinet-mcp(无需编辑 JSON)。 |
| ChatGPT(付费计划) | 在重新发布此连接器前暂停:ChatGPT 需要 HTTP 模式,而此版本的该模式虽然会检查令牌,但尚无请求大小或时间限制。请参阅 mcp-install.md 中的安全提示。 |
| Codex CLI | 粘贴下方的安装提示词。 |
| Claude Code | 粘贴下方的安装提示词。 |
| Claude Cowork | 粘贴下方的安装提示词。 |
| GitHub Copilot(VS Code) | 运行安装程序,在 mcp.json 的 servers 键下添加 fortinet-mcp,然后选择 Agent 模式。 |
ChatGPT 需要远程 HTTPS 服务,这意味着需要使用此连接器的 HTTP 模式;在重新发布连接器之前,该模式会暂停:此版本的该模式虽然会检查令牌,但尚无请求大小或时间限制。请参阅 mcp-install.md 中的安全提示。
也适用于 Microsoft 和 Google 技术栈
这类工具的安装量很大,但先如实提醒一下:它们走的是远程/企业路径,而不是你刚刚安装的本地二进制文件。
| Agent | 所需条件 |
|---|---|
| Microsoft 365 Copilot / Copilot Studio | 暂停使用,等待此连接器重新发布:Copilot Studio 需要其 HTTP 模式,而此版本的该模式会检查令牌,但尚无请求大小或时间限制。请参阅 mcp-install.md 中的安全说明。 |
| Google Gemini | Gemini CLI 是本地的,与 Claude Code 相同。Gemini app 是远程的,需要使用与 ChatGPT 相同的暂停 HTTP 模式。请参阅 mcp-install.md。 |
原生支持 Skill 的 Agent(也已涵盖): Hermes 和 OpenClaw 可直接读取此 Skill 的
SKILL.md,也支持 MCP——请参阅下方的安装部分。通过 MCP 也适用于 Cursor、Windsurf、Cline、Continue.dev 和 Zed。各工具的完整连接指南:docs/which-agent.md。
要运行多个 Agent? 只需一条命令,即可在所有 51+ 个受支持的 Agent 中安装:
npx skills add Servosity/msp-skills@latest(需要 Node.js,然后运行各 Skill 的安装程序以安装 CLI/MCP 二进制文件)。请参阅 docs/which-agent.md。
60 秒内完成安装
Claude Desktop 最快捷方式——一键安装 .mcpb
下载 Fortinet MCP(.mcpb)——然后打开 Claude Desktop > Settings > Extensions 并选择该文件。一键完成,无需 JSON 或 Shell。(在 releases 页面浏览所有 Fortinet 版本。)
更喜欢 Claude Code 插件?添加一次 marketplace,然后安装——立即生效,无需列出目录:
/plugin marketplace add Servosity/msp-skills
/plugin install fortinet@msp-skills
路径 A——向 AI Agent 粘贴一条提示词(推荐)
将以下内容复制到 Claude Code、Codex CLI 或 Claude Cowork 中:
在此 Agent 工作区中,从 Servosity/msp-skills 安装 Fortinet Skill 和 MCP 服务。如果此工作区使用 POSIX Shell(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了解用法。
任何能够运行 Shell 的 Agent 都可以使用同一条提示词。
路径 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 找到 Skill。
验证:
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,查看各 Agent 的连接指南——每个 Agent 都有单独的说明,包括 GitHub Copilot 的 servers 键,以及 Microsoft 365 Copilot / Copilot Studio 的远程接入方式。Claude Desktop 的 Settings > Extensions 面板是最简单的方式;mcp-install.md 中也记录了 MCP 配置块(供希望编辑 JSON 的用户使用)。
为 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 Agent(复制以下内容):
从 https://github.com/servosity/msp-skills/tree/main/skills/fortinet 安装 fortinet 技能。该技能说明了如何通过
openclaw:frontmatter 块安装其所需的 CLI(fortinet-cli)。
OpenClaw 尚未普遍开放;frontmatter 配置已预先随附,会在 OpenClaw 发布时立即启用。
身份验证
在 FortiGate 上创建 REST API 管理员(System > Administrators > Create New > REST API Admin,配置只读权限,并将你的 IP 设为受信任主机),然后:
FORTINET_BASE_URL=<value> FORTINET_API_TOKEN=<value> fortinet-cli doctor
doctor 会检查配置和路径,然后执行一次经过身份验证的读取请求(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 |
| 哪些 FortiGuard 和 FortiCare 许可证将在未来 60 天内到期? | 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 的操作约定(--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。无法读取的设备会标记为 UNKNOWN,绝不会标记为 PASS。每次运行都会在本地留档,因此 fleet audit --new 只会显示自上次运行后新增的问题;fleet backup 和 fleet changes 则会显示两次备份之间发生变化的配置对象。fmg 和 cloud 还会以只读方式加入 FortiManager 和 FortiGate Cloud 的资产清单。存储的机密不会出现在答复中:所有 FortiOS 加密值都会以 ENC (redacted) 返回。
Fortinet 的 FortiAI-Assist 在 FortiManager 和 FortiAnalyzer 中运行;自 FortiOS 8.0 起,也可在 RAM 超过 2 GB 且订阅 FortiCare Premium 的 FortiGate 上运行。它只会在自身运行的控制台中回答问题。这个项目只需要每台 FortiGate 配置一个只读 REST API 令牌,因此也支持 FortiAI-Assist 无法覆盖的小型设备,并且可以同时回答所有客户防火墙相关的问题。
解决的痛点
FortiOS SSL-VPN 是客户网络中最先遭受攻击的部分。Fortinet 在 2024 年 2 月披露 CVE-2024-21762 时表示,该漏洞“可能已在实际环境中遭到利用”(Rapid7);给 MSP 的建议是,将每台设备升级到其所属分支的修复版本,或关闭 SSL-VPN(SmarterMSP)。要在当天早晨完成这项工作,就必须知道哪些客户的 FortiGate 正在运行 SSL-VPN、哪些设备在 WAN 上对任何人开放,以及哪些设备低于修复版本。FortiOS 一次只能查询一台设备;没有 FortiManager 时,就得为每个客户分别登录一次。
fortinet-cli audit sslvpn- 对每台设备和 VDOM,若 SSL-VPN 在 WAN 接口上对任何来源开放,则标记为 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- 执行全部四项检查,只显示新增问题;用于计划任务时,失败会返回代码 6。
更详细的说明请参阅 pain-point.md。
常见问题
这能与 ChatGPT 配合使用吗?
这个版本不行。ChatGPT(Plus、Pro、Team、Business、Enterprise 和 Education 计划;Free 目前尚未开放 Developer Mode)只能通过 HTTPS 连接远程 MCP 服务,这意味着必须以 HTTP 模式运行 Fortinet MCP 服务。在这个版本中,HTTP 模式会检查令牌,但尚未设置请求大小或时间限制,因此在连接器重新发布之前,请勿运行它,也不要将它置于隧道之后;mcp-install.md 中的安全说明解释了原因。在此之前,请使用 Claude Desktop、Claude Code 或 Codex。
这能与 Codex、Cursor、Windsurf、Cline、Copilot 或 Gemini 配合使用吗?
可以——它们都支持 MCP。跨工具安装命令见上方的对照表,详细说明见 docs/which-agent.md。
我需要懂编程吗?
不需要。推荐的安装方式是在 Claude Code 或 Codex 中粘贴一句话——你的 Agent 会读取 SKILL.md 并完成安装。备用方案是在每种操作系统上运行一行安装命令(bash 或 PowerShell)。这两种方式都不需要编写代码。你只需输入一次 Fortinet 凭据。
我的 Fortinet 数据安全吗?
你的数据始终留在自己的机器上。CLI 和 MCP 服务都是本地二进制文件。SQLite 镜像存放在你用户账户下的目录中。AI Agent 只能看到 CLI 返回的内容,通常是查询结果,而不是原始批量数据。凭据从你的环境变量或 Agent 配置中读取;MSP Skills 不会将其打包进此仓库或传输到任何地方。
它能更改我的 FortiGate 吗?
不能。每次 FortiOS 调用都是读取配置表或监控状态(settings 和 monitor 命令执行读取,不会设置),FortiManager 命令只发送 JSON-RPC 的 get 方法,而 FortiGate Cloud 命令只会列出设备。存储的机密也不会出现在答案中:所有 FortiOS 加密值(RADIUS 机密、IPsec 密钥、密码哈希)都会以 ENC (redacted) 返回,且对于获取明文密码的请求会予以拒绝。为每个令牌配置一个具有只读管理员配置文件的 REST API 管理员,剩下的由 FortiGate 自身强制执行。
如何检查 40 台客户端的 FortiGate,而不只是 1 台?
在 devices.toml 中逐一列出,每台设备对应一个 [[device]] 条目,并填写其 url、token_file(存放该设备令牌的文件;在 macOS 和 Linux 上,除非文件权限设为 chmod 600,否则 CLI 会拒绝使用该文件)以及可选的 client 名称。fortinet-cli fleet devices 会显示哪些条目具有可用的 URL 和令牌文件,之后每条审计命令都会针对整个列表运行。你指定的设备文件(通过 --devices 或 FORTINET_DEVICES)如果不存在或未列出任何 [[device]] 条目,就会报错,而不会悄悄退回到单台设备。若没有指定设备文件,审计会检查 FORTINET_BASE_URL 指定的单台设备。
我的 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 特意不提供此选项,因为勾选一次就会关闭所有设备的验证。devices.toml 条目中的 insecure = true 会涵盖整个设备列表,以及其中的审计和策略卫生工具;单设备工具和 fmg 工具仍需要受信任的证书(或使用上述 JSON 配置)。
我需要 FortiManager 或 FortiGate Cloud 吗?
不需要。两者都是可选的附加项:fmg 命令会读取 FortiManager ADOM 和受管设备,cloud 命令会读取你的 FortiGate Cloud 资产清单。其他所有功能都直接与每台 FortiGate 通信。
费用是多少?
免费,采用 Apache-2.0 许可证。你只需为使用的 AI Agent(Claude、ChatGPT、Codex 等)付费,费用由你的 AI 服务提供商收取,与我们无关。
安全模型
| 层级 | 示例 | 建议的 Agent 策略 |
|---|---|---|
| 读取 | fleet audit、fleet health、四项 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。
状态
Beta 版,尚待真实环境验证。命令接口根据社区编写的 FortiOS 7.4 端点 OpenAPI 描述生成,该描述源自 Fortinet 的公开 Ansible 集合(并非 Fortinet 官方规范);舰队审计则通过模拟 FortiGate、FortiManager 和 FortiGate Cloud 响应的单元测试进行覆盖。但目前还没有 MSP 在生产环境中的 FortiGate 上运行过它并反馈结果,因此这里的内容尚未经过真实设备验证。如果你在自己的设备上运行它,可通过「运行成功」表单申请徽章。MSP 会在每周的 Build Sessions 中全面测试这类连接器——请在 compoundingteams.com/build-sessions 报名参加。
标准。 符合开放的 Agent Skills 规范(Anthropic,2025 年 12 月;支持 40 多种 Agent)。兼容 MCP,可与任何支持 MCP 的 Agent 搭配使用,包括 Hermes。已适配 OpenClaw(frontmatter 已预先配置,等待 OpenClaw 发布)。
由 Servosity 维护。采用 Apache-2.0 许可。使用 CLI Printing Press 构建。最后更新:2026-10-13。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。