{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.Servosity/fortinet-mcp","description":"Audit every client FortiGate for firmware, SSL-VPN exposure, admin accounts and license expiry.","title":"Fortinet MCP","repository":{"url":"https://github.com/servosity/msp-skills","source":"github","subfolder":"skills/fortinet"},"version":"0.1.0","icons":[{"src":"https://raw.githubusercontent.com/servosity/msp-skills/main/docs/assets/social/fortinet/fortinet-512x512.png","mimeType":"image/png","sizes":["512x512"]}],"packages":[{"registryType":"mcpb","identifier":"https://github.com/Servosity/msp-skills/releases/download/fortinet-v0.1.0/fortinet-mcp.mcpb","version":"0.1.0","fileSha256":"5d0eb938a5ea997c16f64c58d175a4e7333b0dc3aafe0cfbd6fbc2952bb190c7","transport":{"type":"stdio"},"environmentVariables":[{"description":"Your FortiGate's REST API root, e.g. https://203.0.113.10:8443/api/v2.","isRequired":true,"name":"FORTINET_BASE_URL"},{"description":"The FortiGate REST API admin token (System > Administrators > Create New > REST API Admin). Use a read-only admin profile.","isRequired":true,"isSecret":true,"name":"FORTINET_API_TOKEN"},{"description":"Optional. Path to a devices.toml listing every FortiGate the fleet, audit and policies hygiene commands check, each with a token_file. Leave blank to check only the FortiGate above.","name":"FORTINET_DEVICES"},{"description":"Optional. https://<fortimanager> for the read-only fmg commands. Leave blank if you do not use FortiManager.","name":"FORTINET_FMG_URL"},{"description":"Optional. API key of a FortiManager REST API admin (FortiManager 7.2.2 or later) for the fmg commands.","isSecret":true,"name":"FORTINET_FMG_API_KEY"},{"description":"Optional. FortiCloud IAM API user (with FortiGate Cloud portal permission) for the read-only cloud commands.","name":"FORTINET_CLOUD_API_USER"},{"description":"Optional. Password of the FortiCloud IAM API user. Repeated failed logins lock the FortiCloud account for 15-30 minutes.","isSecret":true,"name":"FORTINET_CLOUD_API_PASSWORD"},{"description":"Optional. global (default), us, eu or jp: the region your FortiGates were provisioned in.","name":"FORTINET_CLOUD_REGION"},{"description":"Optional. Required only when FortiCloud Organizations are enabled.","name":"FORTINET_CLOUD_ACCOUNT_ID"},{"description":"Optional. Set to 1 to expose only read-only mirrored tools and refuse any non-GET execute call.","name":"FORTINET_MCP_READ_ONLY"},{"description":"Required only when running the MCP server with --transport http (a remote/hosted deployment); callers must send a matching Authorization: Bearer header. Not needed for the default local stdio transport Claude Desktop uses.","isSecret":true,"name":"FORTINET_MCP_HTTP_TOKEN"},{"description":"Optional. Overrides the User-Agent the CLI sends to your FortiGates. Leave blank to use the built-in one.","name":"FORTINET_USER_AGENT"},{"description":"Only used when the MCP server is bound to a tenant-gated client profile. This connector registers no tenant-gated source, so leave it blank.","isSecret":true,"name":"PRINTING_PRESS_CLIENT_PROFILE"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-10-15T11:32:09.612938Z","publishedAt":"2026-10-15T11:32:09.612938Z","updatedAt":"2026-10-15T11:32:09.612938Z","isLatest":true}}}
