Skip to main content
Glama
coreyhines

coreyhines/opnsense-mcp

by coreyhines

ipv6

Manage IPv6 NPTv6 translation, virtual IPs, router advertisements, and ULA conversion, including creating, deleting, and applying configurations on OPNsense.

Instructions

IPv6: NPTv6 prefix translation, virtual IPs, router advertisements, and planning or applying a ULA conversion. Call action='help' for each action's fields and rules.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
modeNo[create_vip, set_advert] One of: ipalias, carp, proxyarp, other (default ipalias)
uuidNoRecord to act on, identified by a list action.
vhidNo[create_vip] CARP virtual host id; required only for mode=carp
applyNoApply now rather than leaving the change staged. The default differs by action; action='help' reports each one.
actionYesOperation to run. 'help' lists fields.
subnetNo[create_vip] Address, without the prefix length
confirmNoToken returned by the previous call, to confirm.
domainsNo[apply_ula] Subset of ['vip', 'npt', 'ra', 'unbound'], in that order
dry_runNo[apply_ula] Report what would run without doing it (default true)
enabledNoTarget state, set explicitly rather than flipped.
trackifNo[create_npt] Interface whose delegated prefix supplies the external side
interfaceNo[create_npt, create_vip] Interface the translation applies on, usually wan
gua_prefixNo[plan_ula] Current delegated prefix, for example 2001:db8:1::/64
source_netNo[create_npt] Internal prefix, for example fd00:...:2::/64
ula_prefixNo[plan_ula] Target ULA prefix of the same length
descriptionNoFree-text note stored on the record.
subnet_bitsNo[create_vip] Prefix length, e.g. 64
public_namesNo[plan_ula] Fully qualified names the outside world resolves; these keep their delegated address
valid_lifetimeNo[set_advert] valid_lifetime
destination_netNo[create_npt] External prefix; omit when using trackif
deprecate_prefixNo[set_advert] Advertise the prefix as deprecated
preferred_lifetimeNo[set_advert] Advertised preferred lifetime; 0 deprecates the prefix

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv1.0.0

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description must carry the behavioral burden. It names the feature areas but does not mention that many actions mutate state, that some changes are staged until apply, that confirmation tokens may be required, or that delete/toggle/apply actions exist. The help pointer is useful but not a substitute for behavioral disclosure.

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?

Two sentences with no filler; the scope is front-loaded and the help pointer is useful. It is slightly too terse for such a complex multi-action tool, but as a concise overview it earns a 4.

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 a 22-parameter, 12-action tool with no output schema and no annotations. The description only gives a high-level feature list and defers to an action='help' call, so an agent still lacks context about which action to choose, what each returns, prerequisites, and staged-vs-applied behavior.

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%, and the schema already adds per-parameter context such as [create_npt], [create_vip], and defaults like dry_run defaulting to true. The description itself contributes no parameter meaning beyond directing users to the help action, so the baseline 3 applies.

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 description identifies the domain and resources: NPTv6 prefix translation, virtual IPs, router advertisements, and ULA conversion. It is clear about the tool's scope but does not use a single specific verb or contrast it with sibling tools, so it falls short of a 5.

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

Usage Guidelines2/5

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

There is no guidance about when to use this tool instead of siblings such as routing, interface_device, or nat_outbound. The only usage note is to call action='help' for each action's fields and rules, which helps within the tool but does not establish selection criteria.

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