Zyxel Switch MCP Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Zyxel Switch MCP Server show me the running configuration"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Zyxel Switch MCP Server
A comprehensive Model Context Protocol (MCP) server for Zyxel switch CLI commands, enabling AI applications to interact with Zyxel switches for network configuration, monitoring, and management operations.
Status
The server opens a real interactive CLI session on the switch over SSH (default) or Telnet, and runs commands against it. Command syntax and the expected output formats come from the official Zyxel CLI Reference Guide (407 pages).
An offline mode (ZYXEL_MOCK=true) replays canned output so the server can be developed
and demoed without hardware. Everything it returns is fabricated.
Related MCP server: NetContext MCP
Features
Live CLI sessions: SSH (
ssh2) or Telnet with its own option negotiationAutomatic privilege handling: enters
enable/configure terminalon demand, including the enable-password promptPagination handling:
--More--prompts are answered automatically, so long output arrives completeClean output: the echoed command and the trailing prompt are stripped before the result is returned
Serialised commands: overlapping tool calls are queued so they cannot interleave on the shared stream
Legacy switch support: older KEX/cipher/HMAC algorithms are offered in addition to the modern defaults
MCP Compliance: Full Model Context Protocol implementation with tools, resources, and prompts
Supported Zyxel Models
Based on the integrated CLI documentation:
GS1920 Series (24/48 port variants)
GS1900 Series
XGS1930 Series
XGS2220 Series
Other managed Zyxel switches with CLI access
MCP Tools (CLI Commands)
Connection Management
zyxel_connect- Connect to a Zyxel switchzyxel_disconnect- Disconnect from the switchzyxel_connection_status- Check connection status
System Information
zyxel_show_version- Display system version informationzyxel_show_system_info- Show detailed system informationzyxel_show_running_config- Display running configurationzyxel_show_startup_config- Display startup configuration
Interface Management
zyxel_show_interfaces- Display interface status and configurationzyxel_configure_interface- Configure interface settingszyxel_configure_switchport- Configure switchport settings
VLAN Management
zyxel_show_vlan- Display VLAN informationzyxel_create_vlan- Create a new VLANzyxel_delete_vlan- Delete a VLAN
Network Monitoring
zyxel_show_mac_table- Display MAC address tablezyxel_show_arp_table- Display ARP tablezyxel_show_spanning_tree- Display spanning tree informationzyxel_ping- Test network connectivity
Configuration Management
zyxel_save_config- Save running configuration to startupzyxel_execute_cli- Execute raw CLI commands
MCP Resources (Read-only Data)
System Resources
zyxel://switch/version- System version informationzyxel://switch/system-info- Detailed system informationzyxel://switch/running-config- Current running configurationzyxel://switch/startup-config- Saved startup configuration
Network Resources
zyxel://switch/interfaces- Interface status and statisticszyxel://switch/vlans- VLAN configuration and statuszyxel://switch/mac-table- MAC address table entrieszyxel://switch/arp-table- ARP table entrieszyxel://switch/spanning-tree- Spanning tree topologyzyxel://switch/port-statistics- Port traffic statistics
Documentation
zyxel://docs/cli-reference- Complete CLI command referencezyxel://docs/troubleshooting- Troubleshooting guide
MCP Prompts (Guided Workflows)
Setup and Configuration
zyxel_initial_setup- Guide for initial switch setupzyxel_vlan_setup- Step-by-step VLAN configurationzyxel_port_configuration- Port configuration guide
Maintenance and Operations
zyxel_troubleshooting- Network troubleshooting procedureszyxel_backup_restore- Configuration backup and restorezyxel_monitoring_setup- Monitoring and logging setup
Security and Performance
zyxel_security_hardening- Security configuration best practiceszyxel_performance_optimization- Performance tuning guide
Installation
Clone the repository:
git clone https://github.com/humyai99/mcp-zyxel.git
cd mcp-zyxelInstall dependencies:
npm installBuild the project:
npm run buildUsage
Direct Execution
npm startAs MCP Server
Configure your MCP client to use this server:
{
"mcpServers": {
"zyxel": {
"command": "npx",
"args": ["zyxel-mcp-server"]
}
}
}Development Mode
npm run devConfiguration
The server can be configured through environment variables. When host, username and
password are all present, the server starts pre-configured and zyxel_connect can be
called with no arguments.
ZYXEL_DEFAULT_HOST- Default switch IP addressZYXEL_DEFAULT_USERNAME- Default usernameZYXEL_DEFAULT_PASSWORD- Default passwordZYXEL_ENABLE_PASSWORD- Password for privileged mode (falls back to the login password)ZYXEL_PROTOCOL-ssh(default) ortelnetZYXEL_PORT- Overrides the protocol default (22 for SSH, 23 for Telnet)ZYXEL_TIMEOUT- Command timeout in milliseconds (default: 30000)ZYXEL_DEBUG- Log every command and response to stderr (true/false)ZYXEL_MOCK-truereplays canned output and never contacts a switch
Passwords are only held in memory for the lifetime of the session, and
zyxel_connection_status redacts them.
Offline mode
ZYXEL_MOCK=true npm startExamples
Connecting to a Switch
// Use the zyxel_connect tool. protocol defaults to "ssh", and port defaults
// to 22 for SSH / 23 for Telnet, so both can usually be omitted.
{
"host": "192.168.1.100",
"username": "admin",
"password": "admin123",
"enablePassword": "admin123" // optional; only if the switch asks for one
}Creating a VLAN
// Use the zyxel_create_vlan tool
{
"vlanId": 100,
"name": "Production_VLAN",
"description": "Production network VLAN"
}Configuring an Interface
// Use the zyxel_configure_interface tool
{
"interface": "ethernet 1/5",
"description": "User Workstation",
"shutdown": false,
"speed": "auto",
"duplex": "auto"
}Project Structure
src/
├── cli/
│ ├── handler.ts # Session state, privilege modes, command queue
│ ├── transport.ts # SSH + Telnet transports, prompt/pagination handling
│ ├── mock-transport.ts # Offline canned output (ZYXEL_MOCK=true)
│ └── types.ts # Type definitions
├── tools/
│ └── manager.ts # MCP tools implementation
├── resources/
│ └── manager.ts # MCP resources implementation
├── prompts/
│ └── manager.ts # MCP prompts implementation
└── index.ts # Main server entry point
test/
├── fake-switch.mjs # Emulated Zyxel CLI over SSH and Telnet
└── transport.test.mjs # Integration test for both transportsDevelopment
Building
npm run buildType Checking
npm run typecheckTesting
The test suite starts an emulated Zyxel switch (login prompts, command echo,
privilege modes, --More-- pagination) on both SSH and Telnet and drives the real
transports against it, so no hardware is required.
npm testCleaning
npm run cleanContributing
Fork the repository
Create a feature branch (
git checkout -b feature/amazing-feature)Commit your changes (
git commit -m 'Add amazing feature')Push to the branch (
git push origin feature/amazing-feature)Open a Pull Request
License
This project is licensed under the MIT License - see the LICENSE file for details.
Supported Zyxel Models
This MCP server has been designed to work with various Zyxel switch models, including:
GS1920 Series
GS1900 Series
XGS1930 Series
XGS2220 Series
And other Zyxel managed switches with CLI access
Support
For issues and support:
Check the troubleshooting guide
Search existing GitHub issues
Create a new issue with detailed information
Acknowledgments
Model Context Protocol specification
Zyxel for their comprehensive CLI documentation
Available Tools
19 toolszyxel_clear_mac_tableB
Clear MAC address table entries
Inputs: vlan, interface.
zyxel_configure_interfaceC
Configure interface settings
Inputs: interface (required), speed, duplex, shutdown, +1 more.
zyxel_configure_switchportC
Configure switchport settings for an interface
Inputs: mode (required), interface (required), accessVlan, allowedVlans.
zyxel_connectC
Connect to a Zyxel switch using Telnet or SSH
Inputs: host (required), password (required), username (required), port, +3 more.
zyxel_connection_statusA
Get the current connection status
Inputs: no named parameters.
zyxel_create_vlanB
Create a new VLAN
Inputs: vlanId (required), name.
zyxel_disconnectA
Disconnect from the Zyxel switch
Inputs: no named parameters.
zyxel_execute_cliC
Execute a raw CLI command on the Zyxel switch
Inputs: command (required), privilegeLevel.
zyxel_pingB
Ping a remote host from the switch
Inputs: target (required), size, count.
zyxel_save_configA
Save running configuration to startup configuration
Inputs: confirm.
zyxel_show_arp_tableA
Display ARP table
Inputs: interface, ipAddress.
zyxel_show_interfacesB
Display interface status and configuration
Inputs: detail, interface.
zyxel_show_mac_tableC
Display MAC address table
Inputs: vlan, address, interface.
zyxel_show_running_configA
Display the current running configuration
Inputs: section.
zyxel_show_spanning_treeB
Display Spanning Tree Protocol information
Inputs: instance, interface.
zyxel_show_startup_configB
Display the startup configuration
Inputs: no named parameters.
zyxel_show_system_infoB
Display comprehensive system information
Inputs: no named parameters.
zyxel_show_versionA
Display system version information
Inputs: no named parameters.
zyxel_show_vlanC
Display VLAN information
Inputs: vlanId.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 19 tools
Each tool targets a distinct resource or action—show commands for specific data (startup config, running config, interfaces, VLANs, MAC table, spanning tree, ARP), configuration commands for distinct operations, and connection management tools. Even execute_cli serves as an explicit raw fallback rather than causing confusion.
All tools follow the zyxel_verb_noun pattern, consistently using snake_case and clear verbs (show, connect, disconnect, save, configure, create, clear, ping, execute). This makes the tool set predictable and easy to navigate.
With 19 tools, the set is slightly above the typical 3-15 range, but the scope (full switch management) justifies the count. The tools are well-organized and cover essential functionalities without excess.
The surface covers most core switch operations: connection, config display/save, interface configuration, VLAN management, MAC table, spanning tree, ARP, and ping. Minor gaps exist (e.g., no explicit delete_vlan), but the raw execute_cli tool provides a workaround for such operations.
Maintenance
Related MCP Connectors
Zero-setup MCP gateway securely connecting AI to your tools with authentication and workflows
Protocol-native energy infrastructure orchestration for AI data centers. Provides 46 MCP tools across 8 grid protocols (IEC-61850, DNP3, Modbus, OCPP, OpenADR, IEEE 2030.5, IEC 60870-5-104, ICCP) with 5 core API primitives: connect, dispatch, settle, comply, and intel. Enables AI agents to programmatically interact with substations, grid interfaces, and energy assets for real-time workload-grid coordination.
Connect any AI agent to 1,000+ apps and 27,000+ actions through one remote MCP server (OAuth).
Run your Zenning AI employees and act across 2,000+ connected apps from any MCP client.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables AI applications to interact with Zyxel managed switches for network configuration, monitoring, and management using authentic CLI commands.19MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to execute SSH commands on network devices using natural language, supporting multiple vendors and authentication methods for automated network management.GPL 3.0
- AlicenseBqualityDmaintenanceEnables AI clients to safely read and configure Zyxel GS1900 smart-managed switches via typed MCP tools with guardrails like dry-run, auto-backup, and protected ports.261MIT
- FlicenseNot gradedqualityCmaintenanceEnables MCP-capable AI agents to observe, troubleshoot, and configure Aruba CX (AOS-CX) switches through REST and SSH, with safety controls, inventory management, and verification workflows.-