Skip to main content
Glama
dulithdivisekara

universal-tplink-mcp

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
PYTHONPATHNoPath to the universal-tplink-mcp repository, as shown in the MCP configuration example
TPLINK_PASSWORDYesRouter administrator password
TPLINK_ROUTER_IPNoRouter IP or base URL, for example http://192.168.1.1

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
}

Tools

Functions exposed to the LLM to take actions

NameDescription
router_profile_checkA

Inspects the current host network environment (SSID, Gateway) to ensure connection safety.

Use this tool before applying configuration changes to confirm that the host is connected to the target router and not University Wi-Fi (e.g. SLIIT) or a mobile hotspot.

router_get_statusA

Retrieves full device, cellular LTE, RF signal metrics, and WAN network status.

Args: force: Set to True to bypass Network Guard SSID/Gateway validation.

router_get_rf_signalB

Retrieves real-time 4G LTE RF signal metrics (RSRP, RSRQ, SNR, EARFCN, PCI, Signal Bars).

Guides router placement and antenna alignment for maximum 4G speed in Sri Lanka (e.g. Malabe/SLIIT).

router_set_cell_lockA

Locks or unlocks the router to a specific cellular base station tower (EARFCN + PCI).

IMPORTANT: Changing the cell tower momentarily drops and renegotiates the cellular link. You MUST provide confirm=True to execute.

Args: enable: True to lock to cell, False to unlock (return to auto roaming). earfcn: E-UTRA Absolute Radio Frequency Channel Number (e.g. '1550' for Band 3). pci: Physical Cell Identity (e.g. '58'). confirm: Safety confirmation. Set to True to proceed with connection renegotiation. force: Set to True to bypass Network Guard safety check.

router_set_dnsA

Configures custom DNS resolvers on the router's WAN connection.

Args: primary_dns: Primary DNS IP (e.g. '8.8.8.8' for Google DNS, '1.1.1.1' for Cloudflare). secondary_dns: Secondary DNS IP (default '8.8.8.8'). force: Set to True to bypass Network Guard safety check.

router_toggle_ipv6A

Enables or disables the IPv6 stack on the router's cellular connection.

Disabling IPv6 is recommended if Hutch IPv6 routing is introducing dual-stack timeout delays.

Args: enable: True to enable IPv6, False to disable. force: Set to True to bypass Network Guard safety check.

router_run_ussdA

Executes a USSD query on the cellular SIM card (e.g. '*344#' for Hutch quota, '*123#' for balance).

Args: code: USSD string to send. force: Set to True to bypass Network Guard safety check.

router_read_smsA

Reads incoming or sent SMS messages from the router SIM inbox (e.g. package expiry alerts).

Args: limit: Maximum number of SMS messages to retrieve (default 10). folder: Message folder ('inbox' or 'sent'). force: Set to True to bypass Network Guard safety check.

router_send_smsB

Sends an SMS message through the router SIM card.

Args: to_phone: Recipient phone number. message: Message text content. force: Set to True to bypass Network Guard safety check.

router_get_connected_clientsB

Retrieves all connected wired and wireless devices currently on the router LAN.

Returns hostnames, IP addresses, MAC addresses, and lease durations.

router_manage_dhcp_reservationA

Manages static DHCP IP address reservations on the router.

Args: action: 'add', 'delete', or 'list'. mac: Hardware MAC address (e.g. 'AA:BB:CC:DD:EE:FF', required for 'add' or 'delete'). ip: Desired reserved IP address (required for 'add'). confirm: Confirmation required for 'add' or 'delete'. force: Set to True to bypass Network Guard safety check.

router_get_data_limitB

Retrieves monthly cellular data allowance, billing cycle start day, and live bandwidth.

router_set_data_limitA

Configures monthly cellular data quota, billing day reset, and usage alert threshold.

Args: limit_mb: Total monthly data allowance in Megabytes (e.g. 50000 for 50GB). payment_day: Day of month when billing cycle resets (1-31). warning_percent: Threshold percent to trigger alert (e.g. 90). enable: True to enforce quota, False to disable. confirm: Confirmation required to apply data quota limits. force: Set to True to bypass Network Guard safety check.

router_get_wifi_networksC

Retrieves status, SSIDs, channels, and operational state of 2.4 GHz and 5 GHz Wi-Fi radios.

router_set_wifi_radioA

Enables or disables a Wi-Fi radio (2.4GHz or 5GHz) and optionally updates its SSID.

IMPORTANT: Disabling the Wi-Fi band you are currently connected to will disconnect your host! You MUST provide confirm=True to execute.

Args: band: '2.4GHz' or '5GHz'. enable: True to enable radio, False to disable. ssid: Optional new SSID name. confirm: Safety confirmation. Set to True to apply radio changes. force: Set to True to bypass Network Guard safety check.

router_get_led_statusB

Retrieves the physical LED status and night mode schedule.

router_set_led_night_modeA

Configures night mode to turn off router front panel LEDs automatically during sleeping hours.

Args: enable: True to activate night mode schedule, False to disable. start_time: 'HH:MM' time when LEDs turn OFF (e.g. '22:00'). end_time: 'HH:MM' time when LEDs turn back ON (e.g. '07:00'). force: Set to True to bypass Network Guard safety check.

router_run_diagnosticC

Runs a router-side diagnostic self-test verifying physical link, WAN IP, and Internet NCSI reachability.

router_set_lte_bandA

Manually locks router to a specific LTE band (e.g. '3' for 1800MHz, '8' for 900MHz, '40' for 2300MHz, or 'auto').

Essential for locking to optimal Hutch/Dialog 4G towers in Sri Lanka (e.g. Malabe). IMPORTANT: Changing bands triggers cellular radio renegotiation.

Args: band: LTE Band number (e.g. '3', '8', '40') or 'auto'. confirm: Safety confirmation. Set to True to execute band change. force: Set to True to bypass Network Guard safety check.

router_calibrateA

Runs autonomous RF band calibration across LTE frequencies (Band 8, 3, 1, 40, Auto) with 45s watchdog fail-safe.

Launches a real-time Live Web Dashboard on http://localhost:8765. During band switches, the router modem temporarily detaches for 5-15 seconds. The local daemon safeguards against permanent disconnection by auto-reverting if WAN drops for >45s.

Args: web: Launch real-time Web UI on localhost:8765 (default: True). port: Web dashboard port (default: 8765). dry_run: Simulate band switches without modem detachment. confirm: Confirmation flag to execute calibration.

router_rebootA

Initiates a graceful reboot of the TP-Link router.

IMPORTANT: Rebooting will terminate the host's internet and Wi-Fi connection for ~60-90 seconds. You MUST provide confirm=True to execute.

Args: confirm: Safety confirmation. Set to True to trigger the restart. force: Set to True to bypass Network Guard safety check.

router_get_system_logsA

Retrieves system and cellular event logs from the TP-Link router.

Args: lines: Maximum number of recent log entries to return (default: 50). module: Optional filter by subsystem (e.g. '4G', 'DHCP', 'System', 'DNS'). min_level: Optional minimum severity filter ('EMERG', 'ALERT', 'CRIT', 'ERROR', 'WARN', 'NOTICE', 'INFO', 'DEBUG'). force: Set to True to bypass Network Guard safety check.

router_clear_system_logsA

Clears the internal system event log buffer on the router.

Args: confirm: Safety confirmation. Set to True to clear logs. force: Set to True to bypass Network Guard safety check.

router_get_guest_wifiA

Retrieves current dual-band (2.4GHz / 5GHz) Guest Wi-Fi status, SSIDs, and isolation settings.

Args: force: Set to True to bypass Network Guard safety check.

router_set_guest_wifiB

Configures or toggles dual-band Guest Wi-Fi networks and local LAN isolation.

Args: band: Target band ('2.4GHz', '5GHz', or 'both'). enabled: Enable (True) or disable (False) Guest Wi-Fi on selected band. ssid: Custom SSID name for the guest network. password: WPA2-PSK password (minimum 8 characters, or empty string '' for open network). allow_lan: If True, guests can reach LAN devices; if False, guests are isolated to Internet-only. confirm: Confirmation flag to apply configuration. force: Set to True to bypass Network Guard safety check.

router_get_port_forwardingA

Lists active NAT Virtual Server port forwarding rules on the cellular WAN interface.

Args: force: Set to True to bypass Network Guard safety check.

router_add_port_forwardingA

Creates a new NAT virtual server port forwarding rule on the router.

Args: name: Service or descriptive name (e.g. 'web', 'ssh', 'minecraft'). external_port: Incoming WAN port or port range (e.g. '8080' or '8000-8010'). internal_ip: LAN destination IP address (e.g. '192.168.1.150'). internal_port: LAN destination port (defaults to external_port if omitted). protocol: Transport protocol ('TCP', 'UDP', or 'ALL'). confirm: Confirmation flag to add rule. force: Set to True to bypass Network Guard safety check.

router_del_port_forwardingC

Deletes an existing NAT virtual server port forwarding rule by stack ID.

Args: rule_stack: Stack identifier of the rule to remove (e.g. '2,1,1,1,0,0'). confirm: Confirmation flag to delete rule. force: Set to True to bypass Network Guard safety check.

router_get_dmzB

Retrieves DMZ (Demilitarized Zone) host forwarding status and destination IP.

Args: force: Set to True to bypass Network Guard safety check.

router_set_dmzB

Enables or disables DMZ host forwarding to an internal IP address.

Args: enabled: True to enable DMZ, False to disable. ip_address: Internal IP address to receive all unmapped incoming traffic. confirm: Confirmation flag to modify DMZ. force: Set to True to bypass Network Guard safety check.

router_get_upnpB

Retrieves Universal Plug and Play (UPnP) status and active dynamic port mappings.

Args: force: Set to True to bypass Network Guard safety check.

router_set_upnpB

Enables or disables UPnP dynamic port forwarding on the router.

Args: enabled: True to enable UPnP, False to disable. confirm: Confirmation flag to modify UPnP. force: Set to True to bypass Network Guard safety check.

router_get_reboot_scheduleA

Retrieves the automated periodic reboot schedule settings.

Args: force: Set to True to bypass Network Guard safety check.

router_set_reboot_scheduleA

Configures or disables automated daily or weekly periodic router reboots.

Args: enabled: True to enable auto-reboot, False to disable. hours: Hour of the day in 24h format (0-23, default: 3). minutes: Minute of the hour (0-59, default: 0). mode: Repeat frequency ('daily' or 'weekly'). day_of_week: Day of week for weekly mode (1=Mon, 2=Tue, ..., 7=Sun). confirm: Confirmation flag to apply schedule. force: Set to True to bypass Network Guard safety check.

router_get_timeB

Retrieves current router system clock, time zone, daylight savings, and NTP server status.

Args: force: Set to True to bypass Network Guard safety check.

router_sync_timeA

Triggers an immediate NTP network time synchronization on the router.

Args: force: Set to True to bypass Network Guard safety check.

router_get_operation_modeB

Retrieves the active router operation mode (3G/4G Router Mode vs Wireless Router Mode).

Args: force: Set to True to bypass Network Guard safety check.

router_get_ddnsA

Retrieves Dynamic DNS (DDNS) provider configurations (TP-Link Cloud, No-IP, DynDNS).

Args: force: Set to True to bypass Network Guard safety check.

router_check_firmwareB

Checks for available online official TP-Link firmware updates.

Args: force: Set to True to bypass Network Guard safety check.

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 39 tools

Disambiguation4/5

Most tools target a distinct resource+action pair (DNS, DMZ, UPnP, guest Wi-Fi, port forwarding), but the cellular-tuning cluster overlaps: router_set_cell_lock, router_set_lte_band, and router_calibrate all renegotiate the radio to different towers/bands. Similarly router_get_status, router_get_rf_signal, and router_run_diagnostic partially overlap in connectivity reporting, though descriptions do help separate them.

Naming Consistency4/5

Strong, predictable router_<verb>_<noun> pattern throughout (router_get_*, router_set_*, router_add_*, router_del_*), with a consistent shared arg vocabulary (confirm, force). Minor deviations: router_manage_dhcp_reservation uses a vague 'manage' verb instead of add/delete/list, router_profile_check is noun_verb order, and 'del' is abbreviated where other tools spell things out.

Tool Count3/5

39 tools is heavy for a single router surface and pushes well past the comfortable 3-15 range, with several near-duplicate getters that could be folded into a single status call. Each tool does map to a real router feature, so it is not gratuitous padding, but the surface is on the bloated side.

Completeness4/5

Coverage is broad and balanced: DHCP reservations, DNS, IPv6, Wi-Fi radios, guest networks, NAT/DMZ/UPnP, SMS/USSD, data quotas, logs, scheduling, and diagnostics are all present with get/set pairs. Gaps remain: firmware is check-only (no update action), and there is no WPS, MAC/access-control filtering, or static routing surface.

Maintenance

ActivityMaintained
ResponsivenessNo issues