tplink-easy-smart-switch-mcp
TP-Link Easy Smart Switch MCP
Servidor MCP TypeScript + Bun para conmutadores TP-Link y Mercury Easy Smart. Funciona a través de la interfaz web del conmutador y no depende de SNMP.
Destino predeterminado: http://192.168.3.10
Instalar como plugin de Codex
Instala Bun primero y luego añade el marketplace independiente network-tools y este plugin:
codex plugin marketplace add qwe7002-ai/net-tool-plugins --ref main
codex plugin add tplink-easy-smart-switch-mcp@net-tool-pluginsInicia una nueva tarea de Codex después de la instalación para que se carguen las herramientas MCP y la habilidad de gestión de conmutadores.
Related MCP server: packet-coders-mcp
Modelos probados
La implementación actual se ha probado con estas capturas de la interfaz web y llamadas de estado de solo lectura:
TP-Link TL-SE2106 en
192.168.3.10, firmware1.8.1 Build 20251128 Rel.57341Mercury SE106 Pro en
192.168.3.11, firmware1.0.0 Build 20240812 Rel.65021
Otros conmutadores TP-Link o Mercury Easy Smart pueden funcionar si usan las mismas páginas de interfaz web y endpoints CGI, pero aún no se han verificado.
Características confirmadas del dispositivo
La interfaz de gestión está disponible en HTTP
80El formulario de inicio de sesión envía a
POST /logon.cgiLos campos de inicio de sesión son
usernameypasswordcifradaLa página de inicio de sesión carga
/cryp_new.jsLas variables conocidas de la interfaz web incluyen
g_product,g_yearyencryptTypeAlgunos firmware exponen el token de solicitud como una asignación numérica sin comillas, por ejemplo
g_tid=1320064778;, en lugar de una cadena entre comillas. Otras páginas pueden solo hacer referencia atop.g_tid, por lo que los analizadores deben distinguir asignaciones de referencias.
Herramientas
Herramientas de solo lectura:
get_switch_status: Devuelve un resumen del estado del conmutadorget_port_status: Devuelve el estado de los puertosget_vlan_status: Devuelve el estado de la VLAN de puerto, VLAN 802.1Q, PVID y VLAN MTUget_trunk_status: Devuelve el estado de agregación de enlaces (trunking/LAG) de los puertossearch_mac_address: Consultamac_address_search.cgipara una dirección MAC y devuelve el puerto/VLAN aprendido cuando el conmutador tiene una entradaanalyze_topology: Analiza dos o más conmutadores en cascada e informa del puerto de enlace entre conmutadores, la relación ascendente/descendente y la relación de VLAN a través del enlace
El análisis de topología funciona iniciando sesión en cada conmutador y consultando el CGI de búsqueda de MAC para obtener la MAC de gestión del conmutador peer. Si un conmutador informa de la MAC del peer en un puerto, ese puerto se utiliza como evidencia de enlace entre conmutadores. Cuando la búsqueda de MAC no puede confirmar el enlace, la detección recurre a pares de puertos SFP/10G activos como una estimación de baja confianza, prefiriendo la superposición de VLAN y usando el tráfico en vivo como un criterio de desempate. Estos conmutadores Easy Smart no tienen LLDP, por lo que esta correlación dentro de la banda es la señal disponible.
Herramientas de configuración CGI:
configure_mtu_vlan: Genera o envíamtuVlanSet.cgidesdeVlanMtuRpm.htmconfigure_port_vlan: Genera o envíapvlanSet.cgidesdeVlanPortBasicRpm.htmconfigure_8021q_vlan: Genera o envíaqvlanSet.cgidesdeVlan8021QRpm.htmconfigure_vlan_pvid: Genera o envíavlanPvidSet.cgidesdeVlan8021QPvidRpm.htmconfigure_trunk_group: Genera o envíaport_trunk_set.cgi/port_trunk_display.cgidesdePortTrunkRpm.htmsave_configuration: Genera o envíaPOST savingconfig.cgidesdeSavingConfigRpm.htm
Las herramientas de configuración usan por defecto apply: false, lo que devuelve una vista previa de la solicitud en seco y no envía nada. Para escrituras reales se requiere todo lo siguiente:
apply: trueconfirm: "APPLY"Inicio de sesión correcto
Validación de reglas de la interfaz web superada
Un
token/top.g_tidlegible
Instalación
bun installEjecutar durante el desarrollo
bun run src/index.tsCompilar un binario
Windows:
bun run build:winPlataforma actual:
bun run buildEl resultado de la compilación se escribe en dist/.
Si un cliente MCP todavía informa de una versión anterior del servidor durante initialize, su command probablemente apunta a un ejecutable antiguo. Actualízalo a dist/tplink-easy-smart-switch-mcp.exe y reinicia el cliente.
Depurar MCP
Lista las herramientas MCP:
bun run debugLlama a la herramienta de estado del conmutador:
bun run debug -- --tool get_switch_status --host 192.168.3.10 --username admin --password your-password
bun run debug -- --tool get_switch_status --host 192.168.3.11Llama a la herramienta de estado de puertos:
bun run debug -- --tool get_port_status --host 192.168.3.10 --username admin --password your-passwordVista previa de las solicitudes de configuración sin enviarlas:
bun run debug -- --tool configure_mtu_vlan --params '{ "enabled": true }'
bun run debug -- --tool configure_port_vlan --params '{ "mode": "set", "vid": 1, "ports": "1,2" }'
bun run debug -- --tool configure_8021q_vlan --params '{ "mode": "set", "vid": 20, "name": "main", "untaggedPorts": "3", "taggedPorts": "5,6" }'
bun run debug -- --tool configure_vlan_pvid --params '{ "pvid": 20, "ports": "3" }'
bun run debug -- --tool configure_trunk_group --params '{ "mode": "set", "group": 1, "ports": "1,2" }'
bun run debug -- --tool save_configuration --params '{}'Muestras de páginas
Las capturas de desarrollo de solo lectura se almacenan en:
examples/tplink-192.168.3.10: conmutador TP-Link Easy Smart en192.168.3.10examples/mercury-192.168.3.11: Mercury SE106 Pro en192.168.3.11
Incluyen páginas de VLAN, agregación de enlaces, respaldo/restauración de configuración y guardado de configuración, además de pvlan.js, qvlan.js y menuList.js. Estas muestras no contienen valores de SessionID ni contraseñas.
También puedes enviar JSON-RPC sin procesar:
bun run debug -- --raw '{ "jsonrpc": "2.0", "id": 99, "method": "tools/list", "params": {} }'Ejemplo de cliente MCP
{
"mcpServers": {
"tplink-easy-smart-switch": {
"command": "C:\\path\\to\\tplink-easy-smart-switch-mcp.exe",
"env": {
"TPLINK_HOST": "192.168.3.10",
"TPLINK_USERNAME": "admin",
"TPLINK_PASSWORD": "your-password"
}
}
}
}Notas
El contenido de las páginas se analiza con un analizador DOM y se normaliza en resúmenes de título, formulario, marco, enlace, tabla y texto. Los datos de estado se extraen principalmente de variables JavaScript en páginas como MainRpm.htm, VlanPortBasicRpm.htm, Vlan8021QRpm.htm, Vlan8021QPvidRpm.htm, VlanMtuRpm.htm y PortTrunkRpm.htm.
En el firmware probado de TP-Link TL-SE2106 y Mercury SE106 Pro, MacSearchRpm.htm es un formulario de búsqueda en lugar de un volcado completo de la tabla de reenvío. Por lo tanto, la funcionalidad MAC compatible es search_mac_address, que sigue la lógica de la página y llama a mac_address_search.cgi con txt_macAddress_search, txt_vid_search y token.
La extracción de tokens admite g_tid entre comillas, g_tid numérico sin comillas y entradas token ocultas. El script de captura redacta tanto las asignaciones de g_tid entre comillas como las que no las llevan antes de guardar las muestras de desarrollo.
Las llamadas CGI de configuración usan un flujo de confirmación explícito. El desarrollo y la depuración usan por defecto el modo de prueba en seco. save_configuration también es una acción de escritura; sigue la lógica de la página de SavingConfigRpm.htm y usa POST savingconfig.cgi, pero no envía nada a menos que se confirme explícitamente.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseBqualityFmaintenanceSecurity-focused MCP server for TP-Link Omada Open API workflows, enabling network management via natural language.8720MIT
- FlicenseAqualityBmaintenanceA local MCP server for interacting with a network lab, supporting read-only and configuration tools for devices like Arista EOS switches.6
- AlicenseAqualityCmaintenanceMCP server for monitoring and controlling WiFi routers (OpenWrt) via SSH, enabling device listing, status checks, WiFi configuration, rebooting, and more.712MIT
- AlicenseNot gradedqualityBmaintenanceRead-only MCP server for TP-Link Omada SDN controllers, enabling querying controller, site, device, and WiFi state.Apache 2.0
Related MCP Connectors
MCP server for managing Prisma Postgres.
MCP server for URL shortening and management
MCP server wrapping the Tesla Fleet API and TeslaMate API
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/qwe7002-ai/tplink-easy-smart-switch-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server