Token导航 LogoToken导航

MCP Server · AI代理

Fortigate MCP Server (Alpadalar)

FortiGate MCP Server 是一个生产级的模型上下文协议(MCP)服务器,用于通过编程方式管理FortiGate防火墙的策略、网络对象、路由和设备配置。

stdio官方级别未说明来源级核验工具 30
安全PythonClaudeCursor

快速开始

作者 / 组织
alpadalar
提供方
alpadalar
运行时
Python

工具数量

30

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

19

仓库热度

收录来源

1 个

MCP World

选型结论

Fortigate MCP Server (Alpadalar) 属于AI代理类 MCP Server,公开资料标注 30 个工具,通过stdio 本地进程接入,适配 Claude、Cursor,有可以直接复制的安装命令;接入前要先准备 访问 Token。

分类

AI代理

传输方式

stdio

认证方式

访问 Token

部署方式

公开资料未说明

安装与配置

安装命令

python -m venv .venv

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    准备运行环境

    stdio 服务在本地起进程,需要先装好 Python,再按安装命令拉取依赖。

  2. 2

    安装服务

    复制下面的安装命令执行;命令里带占位符的位置换成自己的密钥或路径。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 30 个工具,随便调一个只读工具确认能返回结果。

接入前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

详细介绍

FortiGate MCP Server

A production-ready Model Context Protocol (MCP) server for managing FortiGate firewalls

Features • Quick Start • Configuration • Tools • Architecture • Security • Testing

______________________________________________________________________

概述

FortiGate MCP服务器通过以下方式公开FortiGate防火墙管理功能 模型上下文协议,使AI助手和MCP兼容工具能够以编程方式管理防火墙策略、网络对象、路由和设备配置。

内置于 完全异步Python、持久HTTP连接池和安全第一默认值。

特性

设备管理

  • 支持多设备并行管理
  • API令牌和基本身份验证
  • 连接测试和健康监测
  • VDOM发现和每个VDOM操作

防火墙策略管理

  • 防火墙策略的完整CRUD
  • 包含地址/服务对象解析的策略详细信息
  • VDOM范围的操作

网络对象管理

  • 地址对象(子网、IP范围、FQDN)
  • 服务对象(TCP/UDP/SCTP,带端口范围)

虚拟IP管理

  • NAT/DNAT虚拟IP
  • 端口转发配置
  • 特定于协议的VIP规则

路由

  • 静态路由CRUD操作
  • 路由表检查
  • 接口列表和状态监控

基础设施

  • 具有的完全异步API客户端 httpx.AsyncClient 连接池
  • STDIO和HTTP传输模式
  • 带验证的Pydantic配置模型
  • 使用API调用跟踪的结构化日志记录
  • 速率限制支持

快速开始

先决条件

  • Python 3.11+
  • 访问启用API的FortiGate设备
  • API令牌(推荐)或管理员凭据

安装

git clone https://github.com/Aprazor/fortigate-mcp-server.git
cd fortigate-mcp-server

python -m venv .venv
source .venv/bin/activate  # Linux/macOS
# .venv\Scripts\activate   # Windows

pip install -e .

配置

创建配置文件(例如。, config/config.json):

{
  "fortigate": {
    "devices": {
      "fw-primary": {
        "host": "192.168.1.1",
        "port": 443,
        "api_token": "your-api-token-here",
        "vdom": "root",
        "verify_ssl": true,
        "timeout": 30
      }
    }
  },
  "server": {
    "name": "fortigate-mcp-server",
    "host": "0.0.0.0",
    "port": 8814
  },
  "auth": {
    "require_auth": false,
    "allowed_origins": []
  },
  "logging": {
    "level": "INFO",
    "console": true
  }
}

运行服务器

STDIO模式 (用于直接MCP客户端集成):

export FORTIGATE_MCP_CONFIG=config/config.json
python -m src.fortigate_mcp.server

HTTP模式 (用于基于网络的访问):

python -m src.fortigate_mcp.server_http \
  --host 0.0.0.0 \
  --port 8814 \
  --config config/config.json

MCP客户端集成

克劳德桌面/克劳德代码 (~/.claude/mcp_servers.json):

{
  "mcpServers": {
    "fortigate": {
      "command": "python",
      "args": ["-m", "src.fortigate_mcp.server"],
      "env": {
        "FORTIGATE_MCP_CONFIG": "/path/to/config.json"
      }
    }
  }
}

光标IDE (~/.cursor/mcp_servers.json):

{
  "mcpServers": {
    "FortiGateMCP": {
      "url": "http://localhost:8814/fortigate-mcp/",
      "transport": "http"
    }
  }
}

可用工具

设备管理(6个工具)

工具说明
list_devices列出所有已注册的FortiGate设备
get_device_status获取设备的系统状态
test_device_connection测试与设备的连接
add_device注册新的FortiGate设备
remove_device删除已注册的设备
discover_vdoms在设备上发现虚拟域

防火墙策略管理(5个工具)

工具说明
list_firewall_policies列出所有防火墙策略
create_firewall_policy创建新的防火墙策略
update_firewall_policy更新现有策略
get_firewall_policy_detail获取包含已解析对象的策略
delete_firewall_policy删除防火墙策略

网络对象管理(4个工具)

工具说明
list_address_objects列出防火墙地址对象
create_address_object创建地址对象(子网/范围/FQDN)
list_service_objects列出防火墙服务对象
create_service_object创建服务对象(TCP/UDP/SCTP)

虚拟IP管理(5个工具)

工具说明
list_virtual_ips列出虚拟IP配置
create_virtual_ip使用可选端口转发创建VIP
update_virtual_ip更新虚拟IP配置
get_virtual_ip_detail获取详细的VIP信息
delete_virtual_ip删除虚拟IP

路线管理(8个工具)

工具说明
list_static_routes列出已配置的静态路由
create_static_route创建新的静态路由
update_static_route更新现有静态路由
delete_static_route删除静态路由
get_static_route_detail获取详细的路线信息
get_routing_table获取活动路由表
list_interfaces列出网络接口
get_interface_status获取接口运行状态

系统工具(2个工具)

工具说明
health_check服务器运行状况和设备连接状态
get_server_info服务器版本和配置信息

建筑

fortigate-mcp-server/
├── src/fortigate_mcp/
│   ├── server.py                # STDIO MCP server (FastMCP)
│   ├── server_http.py           # HTTP MCP server (FastMCP)
│   ├── config/
│   │   ├── loader.py            # Configuration file loading
│   │   └── models.py            # Pydantic config models
│   ├── core/
│   │   ├── fortigate.py         # Async API client + device manager
│   │   └── logging.py           # Structured logging setup
│   ├── tools/
│   │   ├── base.py              # Base tool class (error handling, formatting)
│   │   ├── definitions.py       # Tool description constants
│   │   ├── device.py            # Device management tools
│   │   ├── firewall.py          # Firewall policy tools
│   │   ├── network.py           # Address/service object tools
│   │   ├── routing.py           # Routing and interface tools
│   │   └── virtual_ip.py        # Virtual IP tools
│   └── formatting/
│       ├── formatters.py        # MCP content formatters
│       └── templates.py         # Response templates
└── tests/
    ├── conftest.py              # Shared fixtures (AsyncMock)
    ├── test_config.py           # Configuration model tests
    ├── test_device_manager.py   # Device manager lifecycle tests
    ├── test_fortigate_api.py    # Async API client tests
    ├── test_formatting.py       # Response formatting tests
    └── test_tools.py            # Tool integration tests

设计原则

  • 完全异步:所有API调用都使用 httpx.AsyncClient 每个设备都有持久连接池
  • 默认安全:启用SSL验证,空CORS源,无通配符默认值
  • 清洁分离:配置模型、API客户端、工具逻辑和格式是独立的层
  • 错误分类:FortiGate API错误被映射到具有HTTP状态感知功能的用户友好消息

安全

此服务器的设计默认为安全第一:

设置默认值说明
verify_ssltrueSSL证书验证已启用
allowed_origins[]不允许有CORS源(明确选择加入)
require_authfalseMCP服务器身份验证(启用生产)

生产建议:

  • 使用 API令牌 而不是用户名/密码身份验证
  • 保持 verify_ssl: true 除非使用自签名证书进行测试
  • 设置显式 allowed_origins 使用HTTP传输时
  • 启用 require_auth 为MCP服务器本身配置API令牌
  • 在受信任的网络上或反向代理后面运行服务器
  • 将环境变量用于敏感配置值

测试

该项目包括117个测试,涵盖了整个异步堆栈:

# Run all tests
python -m pytest

# Run with verbose output
python -m pytest -v

# Run specific test module
python -m pytest tests/test_tools.py

# Run with coverage report
python -m pytest --cov=src --cov-report=html

测试覆盖率

模块覆盖范围
配置模型安全默认值、验证、Pydantic模型
API客户端异步HTTP、连接池、错误处理
设备管理器生命周期(添加/删除/列出),异步操作
工具类所有CRUD操作、VDOM支持、错误路径
格式化模板、内容渲染、边缘案例

故障排除

连接被拒绝

  • 验证FortiGate设备是否可访问以及API是否已启用
  • 检查端口(默认443)是否未被网络防火墙阻止

身份验证失败(401)

  • 验证您的API令牌是否有效并具有适当的权限
  • 对于基本身份验证,请确认用户名/密码是否正确

SSL证书错误

  • 对于实验室环境中的自签名证书,请设置 verify_ssl: false
  • 对于生产,请在FortiGate设备上安装有效的证书

找不到VDOM

  • 使用 discover_vdoms 列出设备上可用的VDOM
  • 确保VDOM名称完全匹配(区分大小写)

贡献

  1. 分叉存储库
  2. 创建要素分支(git checkout -b feature/my-feature)
  3. 为新功能编写测试
  4. 确保所有测试通过(python -m pytest)
  5. 提交您的更改(git commit -m 'Add my feature')
  6. 推到您的分支(git push origin feature/my-feature)
  7. 打开拉取请求

许可证

该项目根据MIT许可证获得许可。看 许可证 文件以获取详细信息。

致谢

工具与能力

工具数量

30

资源数量

0

提示词数量

0

能力标签

防火墙管理Python本地部署网络安全网络配置异步APIMCP协议

支持客户端

ClaudeCursor

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

多步任务编排

把拆解、检索、执行串成一条链,模型按步骤调用工具。

长期上下文

把会话、笔记和知识放到外部存储,换个会话还能接着做。

接自有流程

把内部系统和模型连起来,让助手调用已有的工作流。

选择建议

值得选的地方

  • 工具数量 30 个,一次接入能覆盖的操作比单点工具更全。
  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 已经适配 Claude、Cursor,换客户端不用重新研究配置。

先想清楚的地方

  • stdio 方式要求本地装好 Python,换机器要重新装一遍。
  • 需要自备访问 Token,没有凭据没法直接试。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在AI代理场景里让模型直接调用外部能力的人。
  • 已经在用 Claude 的用户,接入路径最短。
  • 想先快速试一下、能接受在本地跑服务的人。

不太适合

  • 完全不想在本地装环境的人。
  • 暂时拿不到访问 Token的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
Fortigate MCP Server (Alpadalar)

MCP World · 本页

30stdio有1 个2026-05-17
Everything Claude Code

MCP World

0stdio有1 个2026-05-17
Filesystem 560c4363

MCP World

13未说明未标注2 个2026-05-17
Time 7365cb6d

MCP.so

2SSE有2 个2026-05-17
Server Everything (everything)

MCP World

11stdio有1 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

Fortigate MCP Server (Alpadalar) 怎么安装?

公开资料给出的安装命令是 python -m venv .venv,运行环境为 Python。装完后按客户端要求写进 MCP 配置,重启客户端生效。

Fortigate MCP Server (Alpadalar) 怎么在 Claude Desktop、Cursor 里配置?

它是stdio 本地进程,客户端配置里要写启动命令和参数,运行环境是 Python;保存后完全退出客户端再打开,配置才会生效。

Fortigate MCP Server (Alpadalar) 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

Fortigate MCP Server (Alpadalar) 需要 API Key 吗?

公开资料标注的认证方式是访问 Token,也就是要先拿到凭据才能连上;凭据只填在自己本地的配置里,不要写进公开仓库。

Fortigate MCP Server (Alpadalar) 支持哪些客户端?

公开资料标注支持 Claude、Cursor;其他客户端只要能配置 MCP Server,也能用同样的命令或地址接入。

来源信息

继续浏览同类 MCP