Skip to main content
Glama
ry-ops

fortigate-mcp-server

by ry-ops

set_config

Validate and preview FortiGate configuration changes before applying them; update, create, or delete endpoints with schema-checked fields and dry-run output.

Instructions

Change any configuration endpoint, validated against the FortiGate's schema first: field names, option values, integer ranges, string lengths, and table vs single-object rules. action is update (default), create or delete. With dry_run (the default) nothing is sent; the result shows the request and each field's current and new value. Fields that reference other objects take a list of names, e.g. srcaddr: ['LAB-NET'].

Input Schema

NameRequiredDescriptionDefault
mkeyNoEntry key; required to update or delete a table entry
vdomNoVDOM (default: FORTIGATE_VDOM, usually root)
actionNoupdate, create or delete (default update)
fieldsNoField values, using the schema's hyphenated names
dry_runNoOnly validate and show the change (default true)
endpointYese.g. log/setting, firewall/local-in-policy

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv1.1.3

TDQS

A3.7/5.0
Behavior4/5

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

No annotations are supplied, so the description carries the full burden and does most of it: it discloses that validation happens before sending, that dry_run defaults to nothing being sent, and what the result contains (request plus each field's current and new value). It omits permission requirements and whether delete is irreversible, which keeps it from a 5.

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 core capability and validation behavior, then defaults, then a concrete example. Four dense sentences with no filler; slightly packed but every sentence contributes.

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 generic mutation tool with six params (one nested object) and no output schema, the description covers validation, defaults, and result shape adequately. Missing only sibling routing guidance and any mention of permissions or side effects on delete.

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

Parameters3/5

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

Schema coverage is 100%, so the baseline is 3. The description does add value beyond the schema by explaining dry_run behavior, the action default, and the notable rule that reference fields take a list of names (e.g. srcaddr: ['LAB-NET']) — but on balance it largely restates what the schema already documents.

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?

States a specific verb and resource scope: changing any configuration endpoint, with pre-validation against the FortiGate schema. It implies a generic setter distinct from read-side siblings like get_config/describe_config, though it never explicitly names those alternatives.

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?

It documents the action modes (update default, create, delete) and that dry_run defaults to no-op, which is real usage guidance. However, with dozens of dedicated siblings (create_firewall_policy, update_interface, set_dns_server, create_address…), it gives no guidance on when to use this generic tool versus those task-specific ones — the biggest gap in the definition.

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