Skip to main content
Glama

opn_items

Search, add, update, delete, or toggle OPNsense model items by controller and item type, with optional apply and confirmed deletion for safe firewall and service changes.

Instructions

Work with the items of any OPNsense model controller. controller + item name the endpoints: ("firewall/alias", "item") -> firewall/alias/search_item, add_item, ...; ("firewall/filter", "rule"), ("firewall/d_nat", "rule"), ("unbound/settings", "host_override"), ("dnsmasq/settings", "host"), ("kea/dhcpv4", "reservation"), ("nginx/settings", "upstream"). data holds just the item's fields (see opn_api_describe on the add_ endpoint). apply=true runs the controller's apply/reconfigure afterwards; for firewall rules that arms the auto-revert (confirm with opn_firewall_confirm). del needs confirm=true.

Input Schema

NameRequiredDescriptionDefault
dataNo
itemYes
rowsNo
uuidNo
applyNo
actionNosearch
searchNo
confirmNo
dry_runNo
enabledNo
controllerYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

B3.3/5.0
Behavior3/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 disclose meaningful behavior: apply triggers reconfigure, firewall-rule applies arm an auto-revert that needs opn_firewall_confirm, and deletes require confirm=true. However it omits that action defaults to "search" (so the tool reads by default) and that apply defaults to true, meaning mutations reconfigure by default — a significant undisclosed side effect. No return shape or error behavior is described.

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 controller+item model, followed by compact parenthetical examples and short clauses on apply, auto-revert, and confirm. The endpoint example list is long but each entry is load-bearing for discovery. No filler sentences.

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

Completeness2/5

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

This is an 11-parameter, multi-operation mutation tool with no annotations and no output schema, so the description should be thorough. It covers lifecycle side effects well but leaves the operation selector, dry_run, uuid targeting, pagination, and filtering entirely unexplained, so an agent cannot reliably invoke non-default actions from this definition alone.

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

Parameters2/5

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

Schema description coverage is 0% across 11 parameters, so the description must compensate and only partly does: controller, item (with the endpoint mapping examples), data, apply, and confirm are explained. Six parameters remain undocumented anywhere, including action with its six-value enum (search/get/add/set/del/toggle), plus uuid, search, rows, enabled, and dry_run — the most consequential gap being the parameter that selects read versus write.

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?

"Work with the items of any OPNsense model controller" is a somewhat generic verb, but the controller+item mapping formula and the six concrete endpoint examples (firewall/alias, unbound/settings host_override, kea/dhcpv4 reservation, etc.) make the scope concrete. An agent can tell this is the generic per-item CRUD tool rather than a search or describe tool, though it never names a sibling explicitly.

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?

Gives clear conditional guidance: apply=true triggers the controller's apply/reconfigure, firewall rules arm auto-revert which must be confirmed with opn_firewall_confirm, and del requires confirm=true. It also routes to opn_api_describe for field names. It lacks any when-not guidance or explicit comparison to opn_api/opn_settings/opn_api_search, so it falls short of a 5.

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