fortigate-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@fortigate-mcpshow firewall policies"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
fortigate-mcp
An MCP (Model Context Protocol) server for managing FortiGate firewalls via the FortiOS REST API. Provides 393 tools covering system management, firewall policies, routing, VPN, security profiles, user authentication, DNS, external threat feeds, monitoring, and more.
Requirements
Node.js 18+
A FortiGate firewall with REST API access enabled
An API token generated on the FortiGate
Related MCP server: io.github.abl030/pfsense-mcp
Generating a FortiGate API Token
Log in to the FortiGate web UI
Go to System > Administrators
Create a new REST API Admin or edit an existing one
Under Administrator Profile, assign an appropriate profile (e.g.,
super_adminfor full access, or a custom read-only profile)Optionally restrict Trusted Hosts to limit API access by source IP
Save and copy the generated API token
Installation
npm install
npm run buildConfiguration
The server is configured via environment variables:
Variable | Required | Default | Description |
| Yes | - | FortiGate hostname or IP address |
| Yes | - | REST API token |
| No |
| HTTPS port |
| No |
| Set to |
Usage
With Claude Desktop
Add to your Claude Desktop configuration (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
{
"mcpServers": {
"fortigate": {
"command": "node",
"args": ["/path/to/fortigate-mcp/dist/index.js"],
"env": {
"FORTIGATE_HOST": "192.168.1.1",
"FORTIGATE_API_TOKEN": "your-api-token-here",
"FORTIGATE_VERIFY_SSL": "false"
}
}
}
}With Claude Code
Add to your Claude Code MCP settings:
claude mcp add fortigate -- node /path/to/fortigate-mcp/dist/index.jsThen set the required environment variables before launching, or configure them in your MCP settings.
Standalone
FORTIGATE_HOST=192.168.1.1 \
FORTIGATE_API_TOKEN=your-token \
FORTIGATE_VERIFY_SSL=false \
npm startDevelopment
FORTIGATE_HOST=192.168.1.1 \
FORTIGATE_API_TOKEN=your-token \
FORTIGATE_VERIFY_SSL=false \
npm run devAvailable Tools (393)
System
Tool | Description |
| Get system status (hostname, firmware, serial number) |
| Get CPU, memory, and disk usage statistics |
| Get system performance metrics |
| Get system global settings (admin port, timezone, language) |
| Update system global settings (hostname, timezone, admin ports) |
| List all virtual domains (VDOMs) |
| List system administrator accounts |
| List admin access profiles (permissions) |
| Check available firmware versions |
| List installed local certificates |
| Get FortiGuard license and subscription status |
| Download the full configuration backup |
Interfaces
Tool | Description |
| List all network interfaces with config and status |
| Get details for a specific interface |
| Update interface configuration (IP, allowaccess, alias, etc.) |
| Get real-time interface traffic statistics and link status |
| List all system zones and their interface members |
Firewall Policies
Tool | Description |
| List all firewall policies |
| Get a specific policy by ID |
| Create a new firewall policy |
| Update an existing policy by ID |
| Delete a policy by ID |
IPv6 Firewall Policies
Tool | Description |
| List all IPv6 firewall policies |
| Get a specific IPv6 policy by ID |
| Create a new IPv6 firewall policy |
| Update an existing IPv6 policy by ID |
| Delete an IPv6 policy by ID |
Central SNAT
Tool | Description |
| List all central SNAT map entries |
| Get a specific central SNAT entry by ID |
| Create a new central SNAT map entry |
| Update an existing central SNAT entry by ID |
| Delete a central SNAT entry by ID |
DoS Policies
Tool | Description |
| List all DoS protection policies |
| Get a specific DoS policy by ID |
| Create a new DoS protection policy |
| Update an existing DoS policy by ID |
| Delete a DoS policy by ID |
Multicast Policies
Tool | Description |
| List all multicast firewall policies |
| Get a specific multicast policy by ID |
| Create a new multicast firewall policy |
| Update an existing multicast policy by ID |
| Delete a multicast policy by ID |
Proxy Policies
Tool | Description |
| List all explicit/transparent proxy policies |
| Get a specific proxy policy by ID |
| Create a new proxy policy |
| Update an existing proxy policy by ID |
| Delete a proxy policy by ID |
Local-in Policies
Tool | Description |
| List all local-in policies (traffic to the FortiGate itself) |
| Get a specific local-in policy by ID |
| Create a new local-in policy |
| Update an existing local-in policy by ID |
| Delete a local-in policy by ID |
Address Objects
Tool | Description |
| List all firewall address objects |
| Get a specific address object by name |
| Create a new address object (ipmask, iprange, or fqdn) |
| Update an existing address object by name |
| Delete an address object by name |
| List all firewall address groups |
IPv6 Address Objects
Tool | Description |
| List all IPv6 firewall address objects |
| Get a specific IPv6 address object by name |
| Create a new IPv6 address object |
| Update an existing IPv6 address object by name |
| Delete an IPv6 address object by name |
| List all IPv6 firewall address groups |
Multicast Addresses
Tool | Description |
| List all firewall multicast address objects |
Services
Tool | Description |
| List all custom firewall service objects |
| List all firewall service groups |
| List all firewall service categories |
| List all predefined internet service objects |
Firewall Schedules
Tool | Description |
| List all recurring firewall schedules |
| List all one-time firewall schedules |
Virtual IPs (DNAT / Port Forwarding)
Tool | Description |
| List all VIP objects |
| Get a specific VIP by name |
| Create a VIP for DNAT / port forwarding |
| Delete a VIP by name |
| List all firewall virtual IP groups |
IP Pools (SNAT)
Tool | Description |
| List all IP pools used for source NAT |
| List all IPv6 IP pools for source NAT |
Shaping Policies
Tool | Description |
| List all firewall traffic shaping profiles |
| List all firewall traffic shaping policies |
| Get a specific shaping policy by ID |
| Create a new traffic shaping policy |
| Update an existing shaping policy by ID |
| Delete a shaping policy by ID |
Routing
Tool | Description |
| Get the active routing table (IPv4) |
| List all configured static routes |
| Create a new static route |
| Update an existing static route by ID |
| Delete a static route by ID |
BGP
Tool | Description |
| Get BGP configuration (neighbors, networks) |
| Get BGP learned/advertised route paths |
| Get BGP neighbor status (state, uptime, prefixes received) |
| List BGP network entries being advertised |
| Get BGP route redistribution settings |
| Update BGP config (router-id, AS, neighbors, networks) |
OSPF
Tool | Description |
| Get OSPF configuration (areas, interfaces) |
| Get OSPF neighbor adjacency status |
| Update OSPF config (router-id, areas, redistribute) |
Route Policy
Tool | Description |
| List all router prefix lists |
| List all router route maps |
| List all BGP community lists |
| List all IPv6 router prefix lists |
Access Lists
Tool | Description |
| List all router access lists (IPv4) |
| Get a specific router access list by name |
| Create a new router access list |
| Update an existing router access list |
| Delete a router access list by name |
| List all IPv6 router access lists |
AS Path Lists
Tool | Description |
| List all BGP AS path lists |
| Get a specific AS path list by name |
| Create a new BGP AS path list |
| Update an existing AS path list |
| Delete an AS path list by name |
BFD
Tool | Description |
| Get BFD (Bidirectional Forwarding Detection) configuration |
| Update BFD configuration |
RIP
Tool | Description |
| Get RIP routing configuration |
| Update RIP routing configuration |
IS-IS
Tool | Description |
| Get IS-IS routing configuration |
| Update IS-IS routing configuration |
Multicast Routing
Tool | Description |
| Get multicast routing (PIM) configuration |
| Update multicast routing (PIM) configuration |
Router Policy (PBR)
Tool | Description |
| List all policy-based routing rules |
| Get a specific PBR rule by sequence number |
| Create a new policy-based routing rule |
| Update an existing PBR rule |
| Delete a PBR rule by sequence number |
Key Chains
Tool | Description |
| List all router authentication key chains |
| Get a specific key chain by name |
| Create a new key chain |
| Update an existing key chain |
| Delete a key chain by name |
IPv6 Static Routes
Tool | Description |
| List all IPv6 static routes |
| Get a specific IPv6 static route by ID |
| Create a new IPv6 static route |
| Update an existing IPv6 static route by ID |
| Delete an IPv6 static route by ID |
Firewall Policy Statistics
Tool | Description |
| Get policy hit counts, byte/packet stats, last-used timestamps |
SD-WAN
Tool | Description |
| Get SD-WAN configuration (members, health checks, rules) |
| Get SD-WAN health check status |
| Get SD-WAN member interface status and statistics |
| Get SLA performance log for a health check (latency, jitter, loss over time) |
| List SD-WAN zone configurations and member interfaces |
| Update SD-WAN settings (status, load-balance-mode, etc.) |
VPN
Tool | Description |
| Get IPsec VPN tunnel status and statistics |
| List IPsec Phase 1 interface configurations |
| Get a specific IPsec Phase 1 interface by name |
| Create a new IPsec Phase 1 interface (IKE gateway) |
| Update an existing IPsec Phase 1 interface |
| Delete an IPsec Phase 1 interface by name |
| List IPsec Phase 2 interface configurations |
| Get a specific IPsec Phase 2 interface by name |
| Create a new IPsec Phase 2 interface (IPsec SA) |
| Update an existing IPsec Phase 2 interface |
| Delete an IPsec Phase 2 interface by name |
| Get SSL VPN sessions and connected users |
| Get SSL VPN server settings |
| Update SSL VPN server settings |
SSL VPN Portals
Tool | Description |
| List all SSL VPN web portal profiles |
| Get a specific SSL VPN portal profile by name |
| Create a new SSL VPN portal profile |
| Update an existing SSL VPN portal profile |
| Delete an SSL VPN portal profile by name |
SSL VPN Realms
Tool | Description |
| List all SSL VPN authentication realms |
| Get a specific SSL VPN realm by name |
| Create a new SSL VPN realm |
| Update an existing SSL VPN realm |
| Delete an SSL VPN realm by name |
PPTP
Tool | Description |
| Get PPTP VPN server settings |
| Update PPTP VPN server settings |
L2TP
Tool | Description |
| Get L2TP VPN server settings |
| Update L2TP VPN server settings |
VPN Certificates
Tool | Description |
| List all VPN CA certificates |
| List all remote VPN certificates |
| List all VPN certificate revocation lists |
Security Profiles
Tool | Description |
| List all web filter profiles |
| List all antivirus profiles |
| List all IPS sensor profiles |
| List all application control profiles |
| List all DNS filter profiles |
| List all SSL/SSH inspection profiles |
WAF (Web Application Firewall)
Tool | Description |
| List all WAF profiles |
| Get a specific WAF profile by name |
DLP (Data Leak Prevention)
Tool | Description |
| List all DLP sensor profiles |
| Get a specific DLP sensor by name |
| List all DLP fingerprint document sources |
Email Filter
Tool | Description |
| List all email filter profiles |
| Get a specific email filter profile by name |
ICAP
Tool | Description |
| List all ICAP server configurations |
| List all ICAP profiles |
| Get a specific ICAP profile by name |
VoIP
Tool | Description |
| List all VoIP/SIP security profiles |
| Get a specific VoIP profile by name |
File Filter
Tool | Description |
| List all file filter profiles |
| Get a specific file filter profile by name |
Video Filter
Tool | Description |
| List all video filter profiles |
SCTP Filter
Tool | Description |
| List all SCTP filter profiles |
Users
Tool | Description |
| List local user accounts |
| List user groups |
| List currently banned user IPs |
LDAP Servers
Tool | Description |
| List all configured LDAP server connections |
| Get a specific LDAP server configuration by name |
| Create a new LDAP server connection |
| Update an existing LDAP server configuration |
| Delete an LDAP server configuration by name |
RADIUS Servers
Tool | Description |
| List all configured RADIUS server connections |
| Get a specific RADIUS server configuration by name |
| Create a new RADIUS server connection |
| Update an existing RADIUS server configuration |
| Delete a RADIUS server configuration by name |
TACACS+ Servers
Tool | Description |
| List all configured TACACS+ server connections |
| Get a specific TACACS+ server configuration by name |
| Create a new TACACS+ server connection |
| Update an existing TACACS+ server configuration |
| Delete a TACACS+ server configuration by name |
SAML
Tool | Description |
| List all configured SAML IdP server connections |
| Get a specific SAML IdP server configuration by name |
| Create a new SAML IdP server connection |
| Update an existing SAML IdP server configuration |
| Delete a SAML IdP server configuration by name |
FortiToken
Tool | Description |
| List all FortiToken two-factor authentication tokens |
FSSO (Fortinet SSO)
Tool | Description |
| List all FSSO agent/polling connections |
| Get a specific FSSO agent/polling connection by ID |
| Create a new FSSO agent/polling connection |
| Update an existing FSSO agent/polling connection |
| Delete an FSSO agent/polling connection by ID |
Web Proxy
Tool | Description |
| Get global web proxy settings |
| Update global web proxy settings |
| Get explicit web proxy settings |
| Update explicit web proxy settings |
| List all web proxy forward servers |
| Get a specific forward server by name |
| Create a new forward server |
| Update an existing forward server |
| Delete a forward server by name |
| List all URL match rules |
| Create a new URL match rule |
| Delete a URL match rule by name |
DHCP
Tool | Description |
| List all DHCP leases across interfaces |
| List all DHCP server configurations |
DNS
Tool | Description |
| Get DNS server configuration |
| Update DNS server settings (primary, secondary, domain) |
| List all DNS database zones |
| Get a specific DNS zone by name (includes all entries) |
| Create a new DNS zone (master/slave/forwarder) with optional initial entries |
| Update an existing DNS zone's properties |
| Delete a DNS zone and all its entries |
| Add a DNS record (A, AAAA, CNAME, MX, NS, PTR, TXT, SRV) to a zone |
| Update an existing DNS entry by zone name and entry ID |
| Delete a DNS entry from a zone by entry ID |
Network
Tool | Description |
| Get the ARP table (MAC-to-IP mappings) |
High Availability
Tool | Description |
| Get HA cluster peer status |
SNMP
Tool | Description |
| List SNMP community configurations |
| Get SNMP system information settings |
| Update SNMP system info (contact, location, description) |
NTP
Tool | Description |
| Get NTP time synchronization settings |
| Update NTP settings (sync, interval, server mode) |
Automation
Tool | Description |
| List all automation stitches |
| Get a specific automation stitch by name |
| Create a new automation stitch |
| Update an existing automation stitch |
| Delete an automation stitch by name |
| List all automation triggers |
| List all automation actions |
Virtual Wire Pairs
Tool | Description |
| List all virtual wire pairs |
| Create a new virtual wire pair |
| Delete a virtual wire pair by name |
VDOM Links
Tool | Description |
| List all inter-VDOM links |
| Create a new inter-VDOM link |
| Delete an inter-VDOM link by name |
Session Helpers
Tool | Description |
| List all session helper (ALG) configurations |
| Update a session helper entry by ID |
NetFlow
Tool | Description |
| Get NetFlow export configuration |
| Update NetFlow export configuration |
sFlow
Tool | Description |
| Get sFlow export configuration |
| Update sFlow export configuration |
FortiGuard
Tool | Description |
| Get FortiGuard update and filtering service settings |
| Update FortiGuard settings |
Security Fabric
Tool | Description |
| Get Security Fabric (CSF) configuration |
| Update Security Fabric settings |
Central Management
Tool | Description |
| Get FortiManager central management settings |
| Update FortiManager central management settings |
Link Monitor
Tool | Description |
| List all WAN link monitors |
| Get a specific link monitor by name |
| Create a new link monitor |
| Update an existing link monitor |
| Delete a link monitor by name |
Object Tagging
Tool | Description |
| List all object tag categories |
| Create a new object tag category |
| Delete an object tag category |
Replacement Messages
Tool | Description |
| List all custom replacement message groups |
Traffic Shaping
Tool | Description |
| List all traffic shaper profiles |
| List per-IP traffic shaper policies |
Logging
Tool | Description |
| Get recent traffic (forward) logs |
| Get recent system event logs |
| Get recent IPS/UTM security logs |
Log Settings
Tool | Description |
| Get global log configuration settings |
| Update global log configuration settings |
| Get log event filter (which event types are logged) |
| Update log event filter |
| Get threat weight scoring configuration |
| Update threat weight scoring configuration |
Syslog
Tool | Description |
| Get remote syslog server configuration |
| Update remote syslog server settings |
| Get syslog log filter settings |
| Update syslog log filter settings |
FortiAnalyzer
Tool | Description |
| Get FortiAnalyzer log forwarding configuration |
| Update FortiAnalyzer log forwarding settings |
| Get FortiAnalyzer log filter settings |
| Update FortiAnalyzer log filter settings |
Log Disk
Tool | Description |
| Get local disk logging settings |
| Update local disk logging settings |
| Get local disk log filter settings |
| Update local disk log filter settings |
FortiCloud Logging
Tool | Description |
| Get FortiCloud log upload settings |
| Update FortiCloud log upload settings |
Sessions
Tool | Description |
| Get firewall session count summary |
| List active sessions with optional source IP filter |
Switch Controller (FortiSwitch)
Tool | Description |
| List all FortiSwitch managed switches |
| Get a specific managed switch by serial number |
| Update a managed switch configuration |
| Delete (deauthorize) a managed switch |
| List all switch controller VLANs |
| Create a new switch controller VLAN |
| Delete a switch controller VLAN |
| Get STP settings |
| Update STP settings |
| List all switch QoS policies |
| List all 802.1p priority maps |
| List all IP DSCP maps |
Monitor: Traffic Top
Tool | Description |
| Get top traffic sources ranked by bytes/packets/sessions |
| Get top traffic destinations ranked by bytes/packets/sessions |
| Get top applications ranked by bytes/packets/sessions |
Monitor: WiFi Clients
Tool | Description |
| List all connected WiFi clients (signal, SSID, IP, traffic) |
| Get a specific WiFi client by MAC address |
Monitor: Rogue APs
Tool | Description |
| List all detected rogue access points |
Monitor: Security Rating
Tool | Description |
| Get Security Fabric security rating results and recommendations |
| Get security rating score history over time |
| Get security rating check run status |
Monitor: FortiSwitch
Tool | Description |
| Get FortiSwitch port statistics (traffic, link status, speed) |
| Get managed switch status (online/offline, firmware, model) |
| Get FortiSwitch health check status |
| Get FortiSwitch faceplate/port layout |
| Get FortiSwitch transceiver (SFP/SFP+) information |
Wireless Controller
Tool | Description |
| List all managed FortiAP access points |
| Get a specific managed AP by ID |
| Update a managed AP configuration |
| Delete (deauthorize) a managed AP |
| List all WTP (Wireless Termination Point) profiles |
| Get a specific WTP profile |
| List all wireless SSIDs (VAPs) |
| Get a specific wireless SSID (VAP) |
| Create a new wireless SSID (VAP) |
| Update a wireless SSID (VAP) |
| Delete a wireless SSID (VAP) |
| List all Wireless IDS profiles |
| Get a specific Wireless IDS profile |
WAN Optimization
Tool | Description |
| List all WAN optimization profiles |
| Get a specific WAN optimization profile |
| Create a WAN optimization profile (HTTP, FTP, CIFS, MAPI, TCP) |
| Update a WAN optimization profile |
| Delete a WAN optimization profile |
| List all WAN optimization peers |
| Get a specific WAN optimization peer |
| Create a WAN optimization peer |
| Update a WAN optimization peer |
| Delete a WAN optimization peer |
| List all WAN optimization auth groups |
| Get a specific WAN optimization auth group |
| Create a WAN optimization auth group |
| Update a WAN optimization auth group |
| Delete a WAN optimization auth group |
| List all WAN optimization CDN rules |
| Get a specific WAN optimization CDN rule |
| Create a WAN optimization CDN rule |
| Update a WAN optimization CDN rule |
| Delete a WAN optimization CDN rule |
| Get WAN optimization cache service settings |
| Update WAN optimization cache service settings |
| Get WAN optimization web cache settings |
| Update WAN optimization web cache settings |
| Get WAN optimization remote storage settings |
| Update WAN optimization remote storage settings |
| Get global WAN optimization settings |
| Update global WAN optimization settings |
External Threat Feeds
Tool | Description |
| List all external threat feed connectors |
| Get a specific external threat feed by name |
| Create a new external threat feed (IP, domain, URL category, or malware hash) |
| Update an existing external threat feed |
| Delete an external threat feed by name |
| Get status and loaded entries for all threat feeds |
| Force immediate refresh of a threat feed |
Monitor: FortiGuard
Tool | Description |
| Get FortiGuard service communication statistics |
| Get FortiGuard update status (AV, IPS, app control versions) |
VDOM Support
Most tools accept an optional vdom parameter to target a specific virtual domain. When omitted, the FortiGate uses its default VDOM (typically root).
SSL/TLS Notes
FortiGate devices commonly use self-signed certificates. Set FORTIGATE_VERIFY_SSL=false to bypass certificate verification. This is expected in lab and many production environments.
Project Structure
fortigate-mcp/
src/
index.ts # MCP server - tool definitions and registration
fortigate-client.ts # FortiOS REST API client
dist/ # Compiled output (after build)
package.json
tsconfig.jsonLicense
MIT
This server cannot be installed
Maintenance
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
- Alicense-qualityFmaintenanceA modular MCP server that provides access to over 2,000 OPNsense firewall management methods through 88 specialized tools. It enables AI assistants to securely manage firewall rules, network interfaces, and system diagnostics using a type-safe TypeScript interface.89972MIT
- Alicense-qualityBmaintenanceAn MCP server that gives AI agents full control over pfSense firewalls via the REST API v2, with 677 tools covering firewall rules, NAT, VPN, services, routing, certificates, users, diagnostics, and more.1MIT
- AlicenseBqualityDmaintenanceA complete MCP server for Fortinet FortiOS 7.6.x that exposes the entire REST API as typed MCP tools for use with MCP-compatible clients like Claude Desktop.10011MIT
- Alicense-qualityCmaintenanceA production-ready MCP server for managing FortiGate firewalls, enabling AI assistants to manage firewall policies, network objects, routing, and device configurations.33MIT
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 Pentest-Tools.com: run scans, manage findings and reports via your preffered LLM.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/oscardagrach/fortigate-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server