cmdb_listLABSCO SUMMARY
Typed tools for the common work, a pass-through for everything else.
That pairing is what keeps this usable. The typed tools give the model good arguments for the questions people actually ask, and when someone needs an endpoint nobody wrapped, cmdb_list takes the raw resource path instead of returning nothing. Set FORTIOS_VERIFY_SSL=true in production, and remember the API token carries exactly the privileges of the admin profile behind it — a read-only profile is the right start.
What it is
A FortiOS 7.6.x server. It exposes the FortiGate REST API as typed MCP tools organised by functional area, and backs them with generic pass-through tools that cover the rest of the API.
What you get
- The README counts 204+ typed tools across system, firewall, VPN, router, user, monitor, log, security and wireless, but names only a few of them —
firewall_policy_list,system_status,monitor_vpn_ipsecandlog_traffic_forwardamong them - Firewall gets 32 tools covering IPv4 and IPv6 policies, addresses and groups, services, VIPs, IP pools, schedules and sessions
- VPN gets 22 for IPsec Phase 1 and 2, SSL VPN portals and settings, and tunnel state; Router gets 17 for static routes, OSPF, BGP, RIP and SD-WAN health
- Security gets 29 across IPS, AV, webfilter, app control, DLP, email filter, DNS filter, WAF, ICAP and ZTNA
- 5 generic pass-through tools reach everything else — a CMDB family starting at
cmdb_listthat also gets, creates, updates and deletes any resource, plusmonitor_get,log_getandservice_call - CMDB, Monitor, Log and Service API sections are all supported, and multi-VDOM environments work
Requirements
Python 3.11 or higher with uv, and a FortiGate running FortiOS 7.6.x. Create a REST API Admin under System > Administrators and copy the token — it is shown once. Then set FORTIOS_HOST, FORTIOS_API_TOKEN, FORTIOS_VDOM and FORTIOS_VERIFY_SSL. It runs over stdio by default; MCP_TRANSPORT=streamable-http MCP_PORT=8000 serves it remotely instead.
Setup effort
Build from source — git clone https://github.com/paoloamato2/fortinet-mcp-server.git
USE CASES
Auditing firewall rules
List policies filtered by action and read them back in plain language.
Finding out why a site-to-site link is down
Check IPsec tunnel state and the Phase 1 and Phase 2 configuration behind it.
Answering a question about traffic
Query forward traffic logs for a source IP and get the rows without opening the log viewer.
Reaching a feature nobody wrapped
Pass the CMDB resource path directly and get the data anyway.
8 tools
Listed in project docs. Your client may show a different list.
monitor_getlog_getservice_callfirewall_policy_listsystem_statusmonitor_vpn_ipseclog_traffic_forwardBEFORE YOU INSTALL
What to know first
Tools you get
8 tools named in the project's documentation.
Requires
FORTIOS_API_TOKEN in your environment
Where it runs
The documented client runs the server on your machine.
INSTALLATION
Connect your client
Server setup
git clone https://github.com/paoloamato2/fortinet-mcp-server.git
cd fortinet-mcp-server
# Using uv (recommended)
uv sync
# Or using pip
pip install -e .MCP Clients
Claude Desktop
{
"mcpServers": {
"fortios": {
"command": "uv",
"args": [
"run",
"--directory",
"<YOUR_PATH_TO_FORTINET_MCP_SERVER>",
"python",
"server.py"
],
"env": {
"FORTIOS_HOST": "https://192.168.1.1",
"FORTIOS_API_TOKEN": "<YOUR_FORTIOS_API_TOKEN>",
"FORTIOS_VDOM": "root",
"FORTIOS_VERIFY_SSL": "false"
}
}
}
}