Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
KEENETIC_URLNoYour router's web-admin addresshttp://192.168.1.1
KEENETIC_HOSTNoBind address (use 127.0.0.1 for local-only)0.0.0.0
KEENETIC_PASSYesRequired. Admin password
KEENETIC_PORTNoBind port8905
KEENETIC_USERNoAdmin usernameadmin
KEENETIC_ENABLE_WRITESNoSet to 1 to enable write tools0

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
list_devicesA

List devices currently holding a DHCP lease: ip, mac, name, remaining lease time (live, read-only). Use this to find a device's IP/MAC before pin_device or rename_device. For fixed reservations (including offline devices) use list_static_leases instead.

list_static_leasesA

List static DHCP reservations (MAC → fixed IP) from the router's running-config (read-only). Use this to check which IPs are already reserved before set_static_lease/pin_device, or to find the MAC to pass to remove_static_lease. Includes offline devices; for currently connected devices use list_devices.

set_static_leaseA

Reserve a fixed IP for a MAC address (static DHCP lease) and save the router config. Use when you already know the MAC (e.g. a device that is offline); for a connected device prefer pin_device, which looks up the MAC for you and checks for IP conflicts. This tool does NOT check conflicts — call find_free_ip or list_static_leases first. Re-running with the same values is harmless. The optional name is only the dhcp-host label; to change the display name in the web UI use rename_device. Takes effect when the device next renews its lease (reconnect it to apply immediately).

pin_deviceA

Turn a connected device's current IP into a static reservation in one step (no need to know the MAC), then save the config. Preferred way to give a device a fixed IP; use set_static_lease only for devices that are offline (not in list_devices). A name fragment must match exactly one device; an address-like identifier must be the full IP or MAC and never matches names ("66" won't hit "Room-66-Cam"). Passing ip moves the device there at its next lease renewal — get a candidate from find_free_ip. Refuses (changes nothing) if the target IP is active on or reserved to another device. Examples: pin_device("192.168.1.66") · pin_device("PS5", "192.168.1.154")

rename_deviceA

Give a device a persistent DISPLAY name on the router (Keenetic 'known host' entry = the device name in the web UI). identifier: the device's IP, MAC, or current name fragment (looked up in the active lease table). name: the new display name (spaces allowed; double quotes and non-printable characters are stripped). NOTE: set_static_lease / pin_device do NOT change the DISPLAY name — the display name is set ONLY by this tool. Examples: rename_device("192.168.1.66", "Pi5 Media") · rename_device("PS5", "PlayStation 5 Living Room")

find_free_ipA

Suggest up to 5 unused IPs on the LAN for a new static reservation (read-only; changes nothing). Use before set_static_lease or pin_device(ip=...) to avoid conflicts. Excludes active leases, existing static reservations, the gateway and broadcast. start/end are last octets (e.g. 100 and 149 → 192.168.1.100-149); pick a range outside the router's dynamic DHCP pool. start > end is accepted and swapped.

remove_static_leaseA

Delete the static DHCP reservation for a MAC and save the router config. Irreversible (re-create it with set_static_lease). The device stays online but may get a different dynamic IP at its next lease renewal. Use list_static_leases to find the exact MAC first. To move a device to another IP, call set_static_lease/pin_device directly instead of removing first.

wan_statusA

Report internet (WAN) connectivity and router health: per-uplink connected/link state and WAN IP, plus router uptime, CPU load and memory. Read-only; queries the router live on every call (no caching). Use to diagnose "is the internet down?" or check the public IP; not for LAN devices (use list_devices).

list_port_forwardsA

List port-forwarding / static NAT rules as raw 'ip static' lines from the running-config (read-only). Use to see which ports are exposed to the internet and to which LAN host. This server cannot add or remove port forwards; change them in the router's web UI.

rebootA

Reboot the router. All devices lose internet for ~1-2 minutes and this MCP server cannot reach the router until it is back. Use only as a last resort (e.g. WAN stuck down per wan_status); config and lease changes are already saved and never need a reboot. Call once with confirm=false to preview, then confirm=true to run.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4.6/5.0

Scored across 10 tools

Disambiguation4/5

Most tools have clearly distinct purposes, and the descriptions cross-reference each other well. The main overlap is between pin_device and set_static_lease, but the descriptions clearly separate them by online/offline usage and conflict checking, so an agent should be able to choose correctly.

Naming Consistency4/5

Tool names mostly follow a consistent snake_case verb_noun pattern (list_devices, set_static_lease, remove_static_lease, rename_device). Minor deviations are reboot as a bare verb and wan_status as a noun phrase rather than a verb_noun name, but these do not create real confusion.

Tool Count5/5

Ten tools is well-scoped for a router-management server. Each tool covers a meaningful operation or read-only query, and the set is neither bloated nor too thin for the apparent domain.

Completeness4/5

The DHCP lease lifecycle is well covered: active leases, static leases, create via set_static_lease or pin_device, delete, rename, and free-IP lookup. The main gap is that port forwarding is read-only only, and the server explicitly cannot add or remove port-forward rules, which limits full network configuration coverage but does not break the core DHCP/status workflows.

Maintenance

ActivityMaintained
ResponsivenessNo issues