Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
MIKROTIK_TLSNoWhether to use TLS.true
MIKROTIK_HOSTYesRouter address. Required.
MIKROTIK_PORTNo8729 for api-ssl, 8728 for plaintext.8729
MIKROTIK_TIMEOUTNoTimeout in seconds.10
MIKROTIK_PASSWORDNoRouter password (optional if the router user has no password).
MIKROTIK_USERNAMEYesRequired.
MIKROTIK_TLS_FINGERPRINTNoSHA-256 of the router certificate, to pin it.

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
system_infoA

Identity, RouterOS version, model, uptime, CPU and memory for the device.

ros_listA

Read any RouterOS configuration path.

The escape hatch for everything without a dedicated tool. Read-only: it lists items at a path and cannot modify the device.

list_interfacesA

List every interface with its type, MAC, MTU and running state.

set_interface_enabledA

Bring an interface up or down.

Disabling the interface you are reaching the router through will cut this connection, and nothing here can undo that remotely.

list_ip_addressesA

List configured IPv4 addresses and the interfaces they sit on.

list_firewall_rulesA

List firewall filter rules in evaluation order.

Each rule carries both an id and a position. Use id for any later change: position is only where the rule currently sits, and it shifts as soon as anything is added, removed or moved.

get_firewall_ruleA

Every field of one firewall rule, including counters.

add_firewall_ruleA

Add a firewall filter rule.

Order decides everything in a RouterOS firewall: the first matching rule wins. A new rule appended after a final drop is dead code, so set place_before unless the end of the chain is genuinely what you want.

update_firewall_ruleA

Change fields on an existing firewall rule.

Only the arguments you pass are modified; omitted ones are left alone. Returns the rule as it stands afterwards.

set_firewall_rule_enabledA

Enable or disable one firewall rule, leaving its position intact.

Disabling is the reversible way to test whether a rule is responsible for something — prefer it over removing the rule.

remove_firewall_ruleA

Delete a firewall rule permanently.

There is no undo. Disabling a rule (set_firewall_rule_enabled) is almost always the better first move, and the returned copy of the deleted rule is the only record you will have afterwards.

move_firewall_ruleA

Reorder a firewall rule relative to another rule.

Both ends are given by id rather than position, so the move means the same thing even if the list shifted since you last read it.

list_nat_rulesA

List NAT rules, including port forwards, in evaluation order.

add_nat_ruleA

Add a NAT rule, such as a port forward.

A port forward also needs the forward chain to permit the traffic; check list_firewall_rules(chain='forward') for a rule accepting connection-nat-state=dstnat before concluding it is broken.

set_nat_rule_enabledB

Enable or disable one NAT rule.

remove_nat_ruleA

Delete a NAT rule permanently. Returns the rule that was removed.

list_dhcp_leasesA

List DHCP leases — effectively the inventory of what is on the network.

make_lease_staticA

Pin a dynamic DHCP lease so the device keeps its address.

list_dns_staticA

List static DNS entries and regex overrides.

add_dns_staticC

Add a static DNS entry.

remove_dns_staticA

Delete a static DNS entry.

list_routesC

List the IPv4 routing table.

get_logsB

Read the device log, most recent last.

connectivity_checkA

Confirm the hub can reach and authenticate to this device.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3.4/5.0

Scored across 24 tools

Disambiguation5/5

Each tool targets a distinct resource/action pair, from list_interfaces to move_firewall_rule, so an agent can reliably select the right operation. ros_list is broad but is explicitly framed as a read-only escape hatch, not a competing path.

Naming Consistency4/5

Most tools follow a clean list_/add_/remove_/set_*_enabled pattern, and the firewall group is especially consistent. A few stragglers like system_info, ros_list, and connectivity_check break the verb-first convention without causing real confusion.

Tool Count4/5

24 tools is at the upper edge of reasonable, but the server spans many distinct MikroTik subsystems: interfaces, firewall, NAT, DHCP, DNS, routes, and logs. Each tool earns a place, and there is little obvious redundancy beyond the intentional ros_list fallback.

Completeness3/5

Firewall lifecycle is well covered with create, read, update, delete, move, and enable/disable. However, NAT and DNS entries lack update operations, routes are read-only, and ros_list cannot write, so some configuration changes require workarounds or are impossible.