Skip to main content
Glama
mdemirn

FortiGate MCP Server

by mdemirn

update_cmdb_object

Modifies selected fields of an existing FortiGate CMDB configuration object via the REST API, leaving other fields unchanged. Use it to update interfaces, policies, or other objects by path and key.

Instructions

Change fields of an existing configuration object (PUT /api/v2/cmdb/{path}/{key}).

Only the fields in data change. Example: path "system/interface", key "vlan60-guest", data {"description": "Guest Wi-Fi"}.

Parameters:

  • device_id: Identifier of the FortiGate device

  • path: cmdb table path

  • key: Object key

  • data: Fields to change as JSON

  • vdom: Virtual Domain name (optional)

Returns:

  • Update status

Input Schema

NameRequiredDescriptionDefault
keyYesObject key
dataYesFields to change
pathYescmdb table path
vdomNoVirtual Domain
device_idYesFortiGate device identifier

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.1.0

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations at all, the description carries the full burden, and it does disclose the key behavioral trait that this is a merge-style partial update rather than a full replace. It does not state permission requirements, reversibility, whether changes are applied to the live config immediately, or what "Update status" actually contains.

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 operation and endpoint, followed by the critical partial-update caveat and a concrete example. The trailing parameter and return lists largely duplicate schema text that is already at 100% coverage, so they are mild filler rather than wasted space.

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?

No output schema exists, and the description at least signals the return ("Update status"), while the example disambiguates the nested `data` object and the path format. What remains missing is error/failure behavior and the effect of the optional vdom on which object is targeted.

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

Parameters4/5

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

Schema coverage is already 100%, so baseline is 3, but the worked example (path "system/interface", key "vlan60-guest", data {"description": "Guest Wi-Fi"}) adds real interpretive value by showing the path/key/data relationship concretely. The per-parameter bullet list otherwise just restates the schema descriptions.

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 resource ("Change fields of an existing configuration object") plus the underlying endpoint (PUT /api/v2/cmdb/{path}/{key}), making it clearly distinct from the create/delete/get CMDB siblings. An agent can route between update_cmdb_object and create_cmdb_object without opening either schema.

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

Usage Guidelines3/5

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

The phrase "Only the fields in data change" is useful partial-update guidance, but there is no explicit when-to-use / when-not-to-use statement and no routing to alternatives such as cmdb_get (to read before writing) or create_cmdb_object. Prerequisites like needing a valid device_id and vdom scope are left implicit.

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