Skip to main content
Glama

add_wireguard_interface

Create a WireGuard tunnel interface on a MikroTik RouterOS device. Preview with confirm=False before applying; RouterOS generates the private key internally.

Instructions

Create a WireGuard tunnel interface (/interface/wireguard add).

RouterOS generates the interface's private-key internally - this tool never accepts (or returns) one. The confirm=False preview's after only describes what will be created (name, listen-port if given) - it does not invent a public-key, since RouterOS hasn't generated the key pair yet at preview time. The confirm=True applied result re-reads the created interface and reports its real public-key, with private-key always stripped. See README's "WireGuard management" section.

WRITE tool, guarded: blocked entirely unless the server is running with MIKROTIK_ALLOW_WRITE=true. Call with confirm=False (the default) to preview without changing anything; call again with confirm=True to actually create it. Errors clearly if name already exists - never creates a duplicate.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameYes
confirmNo
device_nameYes
listen_portNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv1.11.0

TDQS

A4.1/5.0
Behavior5/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 so richly: write-gating, private-key never accepted or returned, the preview's limited `after` payload, the real public-key surfaced only on apply with private-key stripped, and the duplicate-name error path. This goes well beyond what any structured field discloses.

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 creation action followed by behavioral caveats in short paragraphs; mostly tight, though the key-handling and README reference add some redundancy beyond what a caller strictly needs.

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 an output schema, it covers the critical behavioral surface (write gate, two-phase confirm, key handling, idempotency). The one meaningful hole is the undocumented required `device_name`, which leaves the call-site context partially incomplete.

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 coverage is 0%, so the description must define all four parameters. It explains the semantics of `confirm` thoroughly and touches `name` (existence check) and `listen-port`, but `device_name` - a REQUIRED parameter - is never mentioned anywhere, leaving an agent unable to know what it means or what to supply.

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?

Opens with a specific verb+resource ('Create a WireGuard tunnel interface'), mapping to a clear RouterOS operation, and is distinguishable from siblings like wireguard_interfaces (list) and add_wireguard_peer by naming the exact resource created.

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 states this is a guarded WRITE tool blocked unless MIKROTIK_ALLOW_WRITE=true, and prescribes the two-step confirm=False preview then confirm=True apply flow. It does not name an alternative tool for listing/inspecting existing interfaces, leaving that routing to inference.

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