Skip to main content
Glama
mdemirn

FortiGate MCP Server

by mdemirn

remove_address_group_members

Removes address objects from a FortiGate address group, refusing to remove the last member since FortiOS requires at least one member; delete the group instead.

Instructions

Remove address objects from an address group.

FortiOS requires a group to keep at least one member; removing the last member is refused -- delete the group instead.

Parameters:

  • device_id: Identifier of the FortiGate device

  • name: Address group name

  • members: Address object names to remove

  • vdom: Virtual Domain name (optional)

Returns:

  • Which members were removed and the new member count

Input Schema

NameRequiredDescriptionDefault
nameYesAddress group name
vdomNoVirtual Domain
membersYesAddress object names to remove
device_idYesFortiGate device identifier

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.1.0

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does real work: it discloses the FortiOS invariant that a group must retain at least one member and that the call is refused otherwise. It also states the return payload (removed members and new count) since no output schema exists. Minor gaps remain on idempotency when removing a non-member and on required device permissions.

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 action, followed by the critical constraint, then structured Parameters/Returns blocks. The parameter restatements duplicate schema content and are the only mild waste; the constraint sentence earns its place.

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 mutation tool with no annotations and no output schema, the description supplies the safety constraint, the parameter roles, and the return shape, which is nearly everything an agent needs. Missing only permission/error semantics and behavior for member names not currently present in the group.

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 description coverage is 100%, so the schema already documents all four parameters. The description's parameter list largely restates those descriptions verbatim without adding format, syntax, or behavior details (e.g. whether an unknown member name errors or is silently ignored). Baseline 3 applies when the schema does the heavy lifting.

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 ('Remove address objects from an address group') with unambiguous scope. It is clearly distinguishable from siblings like add_address_group_members and delete_address_group without opening a 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?

Explicitly names the condition that changes the approach: when the last member would be removed, the operation is refused and the group should be deleted instead, which implicitly routes the agent to delete_address_group. It doesn't cover other edge cases (e.g. a member name that isn't in the group), but the key decision point is stated.

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