Skip to main content
Glama

Change a RouterOS item or setting

mikrotik_set

Modify RouterOS configuration item properties by path, using an ID or a where filter to target exactly one entry; omitting both updates singleton menus.

Instructions

Change properties of an item (/<path> set <id> ...). Identify the item by id (e.g. "*1F") or a where filter matching exactly one item. For singleton menus such as /system/identity, /ip/dns or /ip/cloud omit both.

Input Schema

NameRequiredDescriptionDefault
idNoItem .id, e.g. "*1F". For most menus the item name also works.
pathYesRouterOS menu path, e.g. "/ip/address", "/interface/bridge/port" or "ip firewall filter".
whereNoEquality filters, e.g. {"type": "ether", "disabled": false}.
deviceNoName of the configured device. Defaults to the first device (see mikrotik_list_devices).
propertiesYesItem properties as in the CLI, e.g. {"address": "10.0.0.1/24", "interface": "ether2"}.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare the mutation profile (readOnly=false, idempotent=false, destructive=false, openWorld=true), and the description adds the constraint that a `where` filter must match exactly one item and that singleton menus need no identifier. It stops short of saying what happens on multi-match (error vs silent partial apply), whether unrelated properties are preserved, or what the call returns.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences: the operation, the identification strategy, then the singleton exception. The CLI form is front-loaded and every clause carries operational information with no filler.

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 5-parameter mutation tool with no output schema, the description covers identification and the singleton edge case well. It is slightly thin on result behavior (what the response contains, whether the item is re-read after the change) and on error conditions when a filter matches zero or many items.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3, but the description adds semantics the schema does not encode: the mutual-exclusivity/omission rule for `id` and `where` in singleton menus, and the requirement that a filter resolve to exactly one item. That is real decision-making value beyond the per-parameter text.

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+resource ("Change properties of an item") and grounds it in the underlying RouterOS CLI form (`/<path> set <id> ...`), which unambiguously separates it from mikrotik_add and mikrotik_remove. It does not explicitly name the closest siblings (mikrotik_set_enabled for a single boolean, mikrotik_run_command for arbitrary CLI), so it falls short of full sibling differentiation.

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?

The description explains how to target the item (id, or a where filter matching exactly one item, or neither for singleton menus), which is genuinely actionable guidance. However it gives no guidance on when to prefer this over mikrotik_set_enabled or mikrotik_run_command, and no exclusions such as bulk edits across many matches.

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