Skip to main content
Glama
rstierli

FortiManager MCP Server

by rstierli

update_device_dhcp_server

Modify an existing DHCP server scope on a managed FortiManager device by scope ID, changing only specified fields and requiring start and end IPs together for lease range changes.

Instructions

Update a device-DB DHCP server scope by id. Only provided fields change.

The lease range is replaced as a whole, so start_ip and end_ip must be given together.

Args: device: Managed device name dhcp_server_id: Numeric scope id (see list_device_dhcp_servers) start_ip: New first address of the lease range end_ip: New last address of the lease range netmask: New scope netmask default_gateway: New gateway handed to clients dns_servers: Up to three DNS servers; replaces the served set lease_time: New lease time in seconds vdom: VDOM the scope lives in (default "root")

Returns: Update result

Input Schema

NameRequiredDescriptionDefault
vdomNoroot
deviceYes
end_ipNo
netmaskNo
start_ipNo
lease_timeNo
dns_serversNo
dhcp_server_idYes
default_gatewayNo

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv1.12.0

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description carries the burden and does well: it discloses partial-update semantics, the coupled start_ip/end_ip replacement rule, and that dns_servers replaces the served set entirely (capped at three). It does not cover permission requirements or whether a commit/install step is needed for changes to take effect, which matters for this mutation.

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

Conciseness5/5

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

The mutation contract and the atomic lease-range rule are front-loaded in the first two sentences, followed by a scannable Args list where every line adds distinct information. No redundant restatement of the tool name or filler.

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?

An output schema exists, so the brief 'Returns: Update result' is sufficient and no return documentation is owed. Parameter and mutation semantics are well covered; the only gaps are operational context such as permission/commit requirements and behavior when the id is invalid.

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%, so the Args block is the only source of parameter meaning, and it documents all nine parameters with real semantics: dhcp_server_id as a numeric scope id, vdom defaulting to root, dns_servers capped at three and replacing the existing set, lease_time in seconds. This is substantially more than the bare titles in the schema.

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

Purpose4/5

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

The opening sentence gives a specific verb (Update), resource (device-DB DHCP server scope), and addressing key (by id), which distinguishes it from create/delete siblings by verb alone. It also points to list_device_dhcp_servers for id discovery, though it does not explicitly contrast against create_device_dhcp_server.

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?

The description clearly states the partial-update contract ('Only provided fields change') and a key precondition: the lease range is atomic, so start_ip and end_ip must be supplied together. It also routes the agent to list_device_dhcp_servers to obtain dhcp_server_id. No explicit when-not guidance or alternative tool is named.

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