Skip to main content
Glama
FortiManager MCP Server

FortiManager MCP Server

by rstierli

update_device_sslvpn_web_portal

Modify an existing SSL-VPN web portal in a managed device's database, changing only provided settings such as tunnel mode, split tunneling, IP pools, web mode, and DNS servers.

Instructions

Update an SSL-VPN web portal in a device's device DB.

The portal itself must already exist in the device DB (created via the FortiOS CLI/GUI or a prior install) -- this tool only updates an existing entry, matching the "get/update" scope of this module. Only provided fields change.

Args: device: Managed device name name: Web portal name to update tunnel_mode: Enable/disable full-tunnel mode: "disable" or "enable" split_tunneling: Enable/disable split tunneling: "disable" or "enable" ip_pools: Firewall address/address-group names to draw tunnel-mode client IPs from web_mode: Enable/disable web-mode (clientless HTML5) access: "disable" or "enable" dns_server1: Primary DNS server handed to portal clients dns_server2: Secondary DNS server handed to portal clients vdom: VDOM the portal lives in (default "root")

Returns: Update result

Input Schema

NameRequiredDescriptionDefault
nameYes
vdomNoroot
deviceYes
ip_poolsNo
web_modeNo
dns_server1No
dns_server2No
tunnel_modeNo
split_tunnelingNo

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv1.12.0

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden, and it does disclose real behavior: the target object must pre-exist, and only supplied fields are modified (partial-update semantics), plus the vdom default of 'root'. Gaps remain for a mutation tool — nothing about ADOM lock requirements (lock_adom/unlock_adom exist in the toolset) or whether the change is staged in the ADOM and needs a commit/install to reach the device.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the pre-existence constraint and partial-update rule before the Args list, which is the right ordering. The parameter block is justified by the empty schema descriptions, though the 'Returns: Update result' line is near-wasted space given an output schema exists.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 9-parameter mutation tool with no annotations, the description covers preconditions, partial-update behavior and every argument, and the output schema relieves it of explaining return values. The one material omission is lifecycle: an agent cannot tell from this whether the update takes effect on the device immediately or requires a subsequent install/commit.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% with 9 parameters, so the Args block is doing essential work: it supplies the accepted values 'disable'/'enable' for tunnel_mode, split_tunneling and web_mode where the schema declares only an unrestricted string, explains that ip_pools takes firewall address/address-group names, and documents the vdom default. This adds meaning well beyond the bare JSON schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and a highly specific resource ('Update an SSL-VPN web portal in a device's device DB'), which separates it from the sibling update_device_sslvpn_settings (global settings) and from get_device_sslvpn_web_portal. The opening sentence alone lets an agent pick correctly without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit when-to-use ('The portal itself must already exist in the device DB... this tool only updates an existing entry') and an implicit when-not (creation must happen via FortiOS CLI/GUI or a prior install). It does not name the companion read tool or point to update_device_sslvpn_settings for non-portal settings, so routing is clear but not fully enumerated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools