Skip to main content
Glama
humyai99

Zyxel Switch MCP Server

by humyai99

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: Network MCP Server

Features

  • Live CLI sessions: SSH (ssh2) or Telnet with its own option negotiation

  • Automatic privilege handling: enters enable / configure terminal on demand, including the enable-password prompt

  • Pagination handling: --More-- prompts are answered automatically, so long output arrives complete

  • Clean 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 switch

  • zyxel_disconnect - Disconnect from the switch

  • zyxel_connection_status - Check connection status

System Information

  • zyxel_show_version - Display system version information

  • zyxel_show_system_info - Show detailed system information

  • zyxel_show_running_config - Display running configuration

  • zyxel_show_startup_config - Display startup configuration

Interface Management

  • zyxel_show_interfaces - Display interface status and configuration

  • zyxel_configure_interface - Configure interface settings

  • zyxel_configure_switchport - Configure switchport settings

VLAN Management

  • zyxel_show_vlan - Display VLAN information

  • zyxel_create_vlan - Create a new VLAN

  • zyxel_delete_vlan - Delete a VLAN

Network Monitoring

  • zyxel_show_mac_table - Display MAC address table

  • zyxel_show_arp_table - Display ARP table

  • zyxel_show_spanning_tree - Display spanning tree information

  • zyxel_ping - Test network connectivity

Configuration Management

  • zyxel_save_config - Save running configuration to startup

  • zyxel_execute_cli - Execute raw CLI commands

MCP Resources (Read-only Data)

System Resources

  • zyxel://switch/version - System version information

  • zyxel://switch/system-info - Detailed system information

  • zyxel://switch/running-config - Current running configuration

  • zyxel://switch/startup-config - Saved startup configuration

Network Resources

  • zyxel://switch/interfaces - Interface status and statistics

  • zyxel://switch/vlans - VLAN configuration and status

  • zyxel://switch/mac-table - MAC address table entries

  • zyxel://switch/arp-table - ARP table entries

  • zyxel://switch/spanning-tree - Spanning tree topology

  • zyxel://switch/port-statistics - Port traffic statistics

Documentation

  • zyxel://docs/cli-reference - Complete CLI command reference

  • zyxel://docs/troubleshooting - Troubleshooting guide

MCP Prompts (Guided Workflows)

Setup and Configuration

  • zyxel_initial_setup - Guide for initial switch setup

  • zyxel_vlan_setup - Step-by-step VLAN configuration

  • zyxel_port_configuration - Port configuration guide

Maintenance and Operations

  • zyxel_troubleshooting - Network troubleshooting procedures

  • zyxel_backup_restore - Configuration backup and restore

  • zyxel_monitoring_setup - Monitoring and logging setup

Security and Performance

  • zyxel_security_hardening - Security configuration best practices

  • zyxel_performance_optimization - Performance tuning guide

Installation

  1. Clone the repository:

git clone https://github.com/humyai99/mcp-zyxel.git
cd mcp-zyxel
  1. Install dependencies:

npm install
  1. Build the project:

npm run build

Usage

Direct Execution

npm start

As MCP Server

Configure your MCP client to use this server:

{
  "mcpServers": {
    "zyxel": {
      "command": "npx",
      "args": ["zyxel-mcp-server"]
    }
  }
}

Development Mode

npm run dev

Configuration

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 address

  • ZYXEL_DEFAULT_USERNAME - Default username

  • ZYXEL_DEFAULT_PASSWORD - Default password

  • ZYXEL_ENABLE_PASSWORD - Password for privileged mode (falls back to the login password)

  • ZYXEL_PROTOCOL - ssh (default) or telnet

  • ZYXEL_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 - true replays 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 start

Examples

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 transports

Development

Building

npm run build

Type Checking

npm run typecheck

Testing

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 test

Cleaning

npm run clean

Contributing

  1. Fork the repository

  2. Create a feature branch (git checkout -b feature/amazing-feature)

  3. Commit your changes (git commit -m 'Add amazing feature')

  4. Push to the branch (git push origin feature/amazing-feature)

  5. 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:

  1. Check the troubleshooting guide

  2. Search existing GitHub issues

  3. Create a new issue with detailed information

Acknowledgments

Available Tools

19 tools
zyxel_clear_mac_tableB

Clear MAC address table entries

ParametersJSON Schema
NameRequiredDescriptionDefault
vlanNoClear MAC addresses for specific VLAN
interfaceNoClear MAC addresses for specific interface

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, and the description fails to disclose critical behavioral traits. It does not specify whether clearing applies only to filtered parameters or all entries when no parameters are given, nor does it mention the destructive impact or confirmation requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, focused sentence with no wasted words. It is front-loaded with the action and resource, making it easy to scan.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Although the schema covers parameter definitions, the description omits essential context for a destructive operation, such as what happens when no parameters are provided (presumably clearing all entries), potential impact on network traffic, and whether the operation is reversible. This is inadequate for a mutation tool with no annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds no additional meaning beyond the schema's own parameter descriptions, which already explain that VLAN and interface are optional filters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the action ('Clear') and the resource ('MAC address table entries'). It is specific and distinguishes from sibling tool zyxel_show_mac_table, which only displays entries.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives, such as show_mac_table for inspection or execute_cli for broader CLI commands. There are no stated prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

zyxel_configure_interfaceC

Configure interface settings

ParametersJSON Schema
NameRequiredDescriptionDefault
speedNoInterface speed
duplexNoInterface duplex mode
shutdownNoShutdown or enable the interface
interfaceYesInterface to configure (e.g., 'ethernet 1/1')
descriptionNoInterface description

TDQS

C2.1/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description must fully disclose behavioral traits. 'Configure interface settings' only implies a mutation operation and provides no details on side effects, reversibility, required permissions, or interaction with existing configuration. This is a significant transparency gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

While the description is a single sentence with no wasted words, it is under-specified rather than concise. It does not convey enough information to justify its brevity, similar to the 'Process' example in the calibration.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a mutation tool with five parameters, two enums, and no output schema. The description is completely inadequate in explaining what configuring an interface entails, what the parameters do in practice, or what the result of the operation is. The tool is far more complex than the description suggests.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all five parameters are already documented in the input schema. The description adds no additional context about parameter relationships or usage, but per the rubric the baseline is 3 when schema coverage is high.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Configure interface settings' provides a clear verb ('configure') and resource ('interface settings'), but it is vague about what specific settings are addressed and does not distinguish it from the sibling tool 'zyxel_configure_switchport'. It is not a tautology, but it lacks precision.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance on when to use this tool versus alternatives like 'zyxel_configure_switchport' or 'zyxel_show_interfaces'. There is no context about prerequisites, connection requirements, or when this tool is the appropriate choice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

zyxel_configure_switchportC

Configure switchport settings for an interface

ParametersJSON Schema
NameRequiredDescriptionDefault
modeYesSwitchport mode
interfaceYesInterface to configure (e.g., 'ethernet 1/1')
accessVlanNoAccess VLAN ID (for access mode)
allowedVlansNoAllowed VLANs for trunk mode (e.g., '1,10,20-30')

TDQS

C2.7/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of disclosure, but it only states 'Configure' without revealing effects such as overwriting existing settings, parameter dependencies (e.g., accessVlan only valid in access mode), or whether the change is persistent or temporary. This is a serious omission for a mutating tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, compact sentence that is easy to parse and front-loaded with the verb. However, it is almost too brief, missing opportunities to include meaningful context, but it does not contain filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

As a configuration tool with no output schema and no annotations, the description is too sparse. It fails to explain expected side effects, return values, or any special conditions (e.g., required dependencies between mode and VLAN parameters), leaving the agent with insufficient information to anticipate the tool's full behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already provides 100% coverage for all parameters, including examples and conditional context. The description adds no parameter-level detail, so the baseline of 3 applies; the schema itself is sufficiently clear.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Configure') and the resource ('switchport settings') with an explicit interface target. It is distinct from generic interface configuration, though it does not explicitly contrast with the sibling 'zyxel_configure_interface', leaving slight ambiguity about tool boundaries.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like 'zyxel_configure_interface' or any prerequisites. There is no mention of context such as requiring a connection or the need to save configuration.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

zyxel_connectC

Connect to a Zyxel switch using Telnet or SSH

ParametersJSON Schema
NameRequiredDescriptionDefault
hostYesIP address or hostname of the Zyxel switch
portNoPort number (defaults to 22 for SSH, 23 for Telnet)
timeoutNoConnection timeout in milliseconds
passwordYesPassword for authentication
protocolNoConnection protocolssh
usernameYesUsername for authentication
enablePasswordNoEnable password for privileged mode (optional)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It does not explain what happens after connecting (e.g., whether a persistent session is held), whether the tool blocks or times out, or what state changes occur on the switch. For a connection tool, this is a significant gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence with no redundancy. It efficiently communicates the core purpose and protocol. However, it is too brief to convey behavioral context, but conciseness itself is well-executed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 7 parameters, no output schema, and no annotations, the description is inadequate. It does not mention what the tool returns (e.g., session handle or status), whether it must be called once before other commands, or any side effects. This is a complex operational tool that needs more context than a single sentence.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, ensuring every parameter is documented in the schema. The tool description adds no parameter information beyond what the schema already provides, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Connect') and the target resource ('Zyxel switch'), and specifies the protocols ('Telnet or SSH'). This distinguishes it from sibling tools that perform show/config operations. It is specific but does not mention what connection state is established or that it should precede other commands.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool relative to alternatives. It does not state that connection must be established before using other zyxel tools, nor does it describe prerequisites like network reachability or authentication setup. The sibling tools like zyxel_disconnect and zyxel_connection_status imply a usage flow, but the description lacks this context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

zyxel_connection_statusA

Get the current connection status

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description carries the full burden. 'Get' implies a read-only operation, but the description does not disclose what 'connection status' means, what the return value looks like, or whether an active connection is required. This under-disclosure is a significant gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, short sentence that directly states the tool's purpose without any wasted words. It is concise and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (no parameters, no output schema, no annotations), the description is minimal but not fully complete. It lacks context about the meaning of the status output or the tool's role in a workflow, leaving an agent to infer too much.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters and an empty input schema, so the description does not need to explain parameter semantics. The baseline for zero parameters is 4, and nothing in the description detracts from that.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'Get' with the resource 'connection status', making it clear what the tool does. It is easily distinguishable from sibling tools like zyxel_connect, zyxel_disconnect, and various show commands.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. There is no mention of prerequisites, exclusions, or the relationship to connection-related sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

zyxel_create_vlanB

Create a new VLAN

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoVLAN name
vlanIdYesVLAN ID to create

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose behavioral details itself, but it only says 'Create a new VLAN.' It does not state whether creating a duplicate ID fails, whether it modifies the running config or startup config, or if any special privileges are required. The mutation effect is implied but not detailed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single five-word sentence that directly states the tool's purpose, with no fluff or redundancy. However, this brevity comes at the cost of missing contextual detail, though that is scored in other dimensions.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no annotations and no output schema, the description is too sparse. It lacks information about expected behavior, error conditions, and how it fits into the broader workflow (e.g., needing to connect first). This makes it incomplete for an agent to confidently invoke it in varied situations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Both parameters are already described in the input schema, with vlanId having a range and name having a type. The description adds no further meaning to the parameters, so it relies entirely on the schema, which meets the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'Create' with the resource 'VLAN', clearly distinguishing this from sibling tools like zyxel_show_vlan (which only displays VLANs) and configure tools that modify ports. It is unambiguous about the tool's function.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, nor does it mention prerequisites such as an active connection or existing VLAN configurations. It simply states the operation, leaving the agent to infer usage context from the tool name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

zyxel_disconnectA

Disconnect from the Zyxel switch

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It only states 'Disconnect' without revealing side effects, whether the session is closed gracefully, or any impact on the switch. This is insufficient for a state-changing operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no extraneous words. It is front-loaded with the verb 'Disconnect' and clearly states the resource, making it appropriately concise for a simple tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter tool with no output schema, the description covers the basic purpose. However, it lacks context about session management, such as whether a connection must exist first or what the state after disconnection is. This is a minor gap given the tool's simplicity, but it prevents a higher score.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the baseline is 4. The description adds no parameter details, but none are needed. It clearly conveys the intended action without any ambiguity.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Disconnect from the Zyxel switch' uses a specific verb and clearly identifies the resource. It distinguishes itself from sibling tools like zyxel_connect and zyxel_connection_status, making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. The description solely states the action without any mention of prerequisites, context, or situations in which disconnecting would be appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

zyxel_execute_cliC

Execute a raw CLI command on the Zyxel switch

ParametersJSON Schema
NameRequiredDescriptionDefault
commandYesCLI command to execute
privilegeLevelNoRequired privilege level for the commanduser

TDQS

C2.8/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only says 'execute', giving no hint of side effects, safety risks, privilege requirements, or whether commands mutate state. For a raw CLI executor, this is a critical gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no wasted words. It efficiently conveys the core action and target.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the absence of an output schema and annotations, and the potentially dangerous nature of a raw CLI tool, the description is underspecified. It lacks context about output format, error handling, or the privilegeLevel parameter's role, making it incomplete for an agent to use confidently.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the parameters are well-defined in the schema. The description adds no extra meaning beyond the schema, making this a baseline score of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with a specific verb ('Execute') and resource ('raw CLI command on the Zyxel switch'). It distinguishes itself from siblings by indicating generic raw access rather than specialized operations, making its role unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus the many specialized sibling tools (e.g., zyxel_show_running_config, zyxel_configure_interface). It does not mention exclusions, prerequisites, or situational appropriateness.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

zyxel_pingB

Ping a remote host from the switch

ParametersJSON Schema
NameRequiredDescriptionDefault
sizeNoPing packet size in bytes
countNoNumber of ping packets to send
targetYesTarget IP address or hostname to ping

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden, but it only states the action without disclosing whether the tool is a read-only diagnostic, whether an active connection is required, or what the output format is. This leaves the agent to infer these behaviors.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, six-word sentence that front-loads the action and is free of unnecessary detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple and the schema is detailed, but the description omits contextual details such as the need for an active connection and the expected output format. It is adequate for a basic ping but lacks completeness for an agent unfamiliar with the environment.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema covers all three parameters with descriptions, including defaults and bounds for 'size' and 'count'. The description itself adds no parameter-specific meaning beyond the action, so it relies entirely on the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the verb 'Ping' with a specific resource ('remote host') and location ('from the switch'), clearly distinguishing it from other switch management tools. No ambiguity about the operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, such as zyxel_execute_cli, nor does it mention prerequisites like establishing a connection first. The usage context is only implied by the verb 'ping'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

zyxel_save_configA

Save running configuration to startup configuration

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmNoConfirm the save operation

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It does not disclose that saving overwrites the startup configuration, which is a potentially destructive or irreversible action, nor does it mention any confirmation behavior beyond the schema. The minimal description lacks cautionary context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that is front-loaded with the primary action. It contains no filler words or redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple with no output schema and one optional parameter, but the description omits any mention of prerequisites, such as an active connection (sibling tool zyxel_connect), or typical use cases. It is complete enough for basic invocation but lacks full contextual guidance.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already covers 100% of the single parameter and describes 'confirm' as 'Confirm the save operation.' The tool description adds no additional meaning or clarification about how the confirm parameter behaves (e.g., what happens if set to false), so the baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Save running configuration to startup configuration' clearly states the tool's function with a specific verb and resource, and it distinguishes itself from sibling tools like zyxel_show_running_config and zyxel_show_startup_config. It is unambiguous and action-oriented.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage (persisting running config after changes) but provides no explicit guidance on when to use it or alternatives. There are no similar save-tool siblings, so the need is inferred rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

zyxel_show_arp_tableA

Display ARP table

ParametersJSON Schema
NameRequiredDescriptionDefault
interfaceNoShow ARP entries for specific interface
ipAddressNoShow ARP entry for specific IP address

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must itself disclose behavior. The verb 'Display' implies a read-only, non-destructive operation, which is a key behavioral trait. However, it does not elaborate on output format, connection requirements, or any potential limitations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is only two words, extremely concise and front-loaded. Every word is necessary and there is no wasted text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple show command with two optional parameters and no output schema, the description is minimally adequate. It states the core functionality clearly, though it could benefit from a note about requiring an active connection or typical output.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with both parameters fully documented. The description adds no additional semantic meaning beyond what is already in the schema, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'Display ARP table'. This clearly distinguishes it from sibling show commands like show_mac_table or show_interfaces.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives. It does not mention any prerequisites such as an active connection or provide context for choosing between show_* tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

zyxel_show_interfacesB

Display interface status and configuration

ParametersJSON Schema
NameRequiredDescriptionDefault
detailNoShow detailed interface information
interfaceNoPort or port list to show, e.g. '5' or '1-4' or '1,3,5'. Defaults to every port on the switch.

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. 'Display' implies read-only behavior, but there is no explicit statement about non-destructiveness, connection requirements, or output characteristics. Minimal behavioral disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no filler. Every word contributes to the purpose, making it highly concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple show command with two optional parameters, the description is minimally adequate. It does not describe return values or default behavior (e.g., all interfaces), but the schema compensates for parameter details. Lacks explicit mention of output format.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with clear examples for both parameters ('detail' and 'interface'). The description adds no parameter-specific meaning, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Display') and identifies the resource ('interface status and configuration'), making the tool's purpose clear. It distinguishes from sibling tools like zyxel_show_running_config because it focuses on interfaces, though it could be more explicit about scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. The description does not mention relationships to other zyxel_show_* commands or when this would be preferred.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

zyxel_show_mac_tableC

Display MAC address table

ParametersJSON Schema
NameRequiredDescriptionDefault
vlanNoShow MAC addresses for specific VLAN
addressNoShow specific MAC address
interfaceNoShow MAC addresses for specific interface

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full responsibility for behavioral disclosure. It only says 'Display', which implies a read-only operation, but it does not explain whether the connection must be established, the output format, or any side effects. This is a significant gap for a network device tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that states the core function without fluff. It is appropriately sized for a simple display operation, though it could benefit from a second sentence about filtering capabilities.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity and lack of output schema or annotations, the description is incomplete. It doesn't mention return value specifics, the need for an active connection (as implied by sibling tools like zyxel_connect), or whether the output is paginated or tabular. This prevents an agent from fully understanding the tool's behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 100%, with each parameter (vlan, address, interface) having a clear description. The tool description adds no additional semantic information about these parameters, but the baseline of 3 is appropriate since the schema already provides sufficient detail.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with a specific verb and resource: 'Display MAC address table'. It distinguishes itself from siblings like zyxel_clear_mac_table because 'display' is clearly a read operation. However, it doesn't mention that filtering by VLAN, address, or interface is possible, which could be considered part of the purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives like zyxel_show_arp_table or zyxel_show_interfaces. It simply says what it does without providing context about typical use cases or prerequisites such as an active connection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

zyxel_show_running_configA

Display the current running configuration

ParametersJSON Schema
NameRequiredDescriptionDefault
sectionNoSpecific configuration section to show (optional)

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. 'Display' clearly implies a read-only operation, but it does not disclose additional behavioral details such as output format or whether the optional 'section' parameter affects the display. It is adequate but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence with no wasted words. It is appropriately sized for the tool's simplicity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only tool with one optional parameter and no output schema, the description is complete enough. It explains the tool's basic behavior, though it does not explicitly mention the return value or possible section values. The simplicity of the tool reduces the need for more detail.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema fully describes the single optional parameter ('section' with 'Specific configuration section to show (optional)'). The tool description adds no further parameter context, so it does not exceed the baseline of 3 for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Display') and resource ('current running configuration'), clearly distinguishing it from the sibling tool 'zyxel_show_startup_config' by the word 'running'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage—it's for showing the active configuration—but does not explicitly mention when to use it over alternatives like 'zyxel_show_startup_config' or 'zyxel_show_version'. No exclusions or alternative guidance is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

zyxel_show_spanning_treeB

Display Spanning Tree Protocol information

ParametersJSON Schema
NameRequiredDescriptionDefault
instanceNoSTP instance number
interfaceNoShow STP info for specific interface

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must fully convey behavioral context. It only says 'Display,' which implies a read-only operation, but gives no details about the output contents, potential side effects (e.g., requiring privileged mode), or limitations (e.g., only works on certain firmware versions).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, grammatically clear sentence with no unnecessary words or repetition. It is perfectly concise and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is relatively simple with two optional parameters, but the lack of an output schema means the description should clarify what 'Spanning Tree Protocol information' includes (e.g., root bridge, port states, timers). The current phrasing is vague and does not fully compensate for the absence of output schema or annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides descriptions for both parameters ('STP instance number' and 'Show STP info for specific interface'). The tool description adds no additional parameter-level meaning, so it receives the baseline score for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear action ('Display') and a specific resource ('Spanning Tree Protocol information'), uniquely identifying it among the many sibling show commands. It is immediately obvious what this tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided about when to use this tool versus alternatives such as other show commands. There is no mention of prerequisites, typical scenarios, or situations where a different tool would be more appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

zyxel_show_startup_configB

Display the startup configuration

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full responsibility for behavioral disclosure. 'Display' implies a read-only operation, but the description does not clarify whether a connection to the device is required, whether it reads from a cached store, or if it has any side effects. This is minimal transparency for a tool that interacts with a network device.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence that contains no filler or redundant information. It is appropriately concise for a tool with no parameters and a simple action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (no parameters, no output schema), the description is mostly adequate, but it lacks a small bit of context: it does not clarify that 'startup configuration' is the saved configuration used at device boot time, as opposed to the running configuration shown by the sibling tool 'zyxel_show_running_config'. This distinction would help the agent select the correct tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, which per the rubric receives a baseline of 4. There is no parameter ambiguity, and the description does not need to explain any argument semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Display') and the target resource ('startup configuration'), making the tool's purpose unambiguous. However, it does not explicitly distinguish it from the sibling tool 'zyxel_show_running_config', though the name itself conveys the distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like 'zyxel_show_running_config' or 'zyxel_save_config'. It also omits any prerequisites, such as whether a connection must be established first. This leaves the agent without clear decision-making context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

zyxel_show_system_infoB

Display comprehensive system information

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must convey behavioral traits. It only states that it displays info, not whether it's read-only, requires auth, or has side effects. 'Display' implies read-only, but this is not explicit.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, concise sentence that front-loads the action. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter display tool, the description is minimally sufficient but lacks information on what constitutes 'system information' or any output format details. The lack of annotations/output schema increases the need for more detail, but the tool's simplicity keeps the score at a middle ground.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, and the schema confirms this. The description doesn't need to explain parameter usage, so the baseline 4 applies per the rubric.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Display comprehensive system information' uses a specific verb ('Display') and clearly identifies the resource (system information). It distinguishes from siblings like zyxel_show_version and zyxel_show_running_config by focusing on general system info, though 'comprehensive' is slightly vague.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool vs alternatives. The description does not mention situations, exclusions, or alternative tools, leaving the agent to infer usage from the name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

zyxel_show_versionA

Display system version information

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description carries the full burden of disclosing behavior. The verb 'Display' implies a read-only operation, but the description does not state whether a connection is required, what the output format is, or any side effects. It is too minimal to be fully transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that precisely and succinctly states the tool's purpose. There is no redundant or irrelevant wording, making it highly concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (no parameters, no output schema), the description is minimally viable but lacks some context. It does not clarify what 'version information' includes, such as firmware, hardware model, or uptime, nor does it mention any connectivity requirements. A slightly richer description would make it complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, and the schema confirms this. Since there are no parameters to explain, a baseline score of 4 is appropriate. The description adds no parameter information, but none is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'Display' and resource 'system version information', clearly distinguishing it from sibling tools like zyxel_show_system_info which may cover broader system details. It is unambiguous and directly tied to the tool name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives such as zyxel_show_system_info or zyxel_show_running_config. It does not mention prerequisites like an active connection or context in which version information is needed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

zyxel_show_vlanC

Display VLAN information

ParametersJSON Schema
NameRequiredDescriptionDefault
vlanIdNoSpecific VLAN ID to show

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It only states 'Display VLAN information', implying a read-only operation, but does not explicitly confirm non-destructiveness, describe the output format, or mention whether all VLANs are shown when no vlanId is given. No side effects or device interaction details are disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence with no redundant verbiage. It is front-loaded with the verb and resource. However, it is slightly under-specified for a tool with an optional parameter, but this is more a completeness issue than conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a simple tool with one optional parameter and no output schema, so the description is minimally viable. It fails to clarify behavior with and without vlanId, the return structure, or required connection state, which leaves gaps in completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for the sole parameter vlanId, which includes a clear description ('Specific VLAN ID to show') and constraints (min/max). The tool description itself adds no extra meaning to the parameter, so the baseline of 3 is appropriate since the schema adequately handles parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'Display' and target resource 'VLAN information', which clearly distinguishes it from sibling tools like 'zyxel_create_vlan' (create). However, 'VLAN information' is somewhat vague, as it could imply a subset or full configuration, and it does not mention the optional vlanId scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, such as when to use 'zyxel_show_interfaces' or 'zyxel_create_vlan'. It also fails to mention prerequisites (e.g., an active connection to the device) or contexts where this tool is appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

B3.3/5.0
Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count4/5

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.

Completeness4/5

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

ActivityMaintained
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides AI assistants with direct access to multi-vendor network devices for tasks like configuration management, health checks, and topology discovery through 35 specialized tools. It enables natural language control over platforms including Cisco, Juniper, and Nokia using SSH, NETCONF, and SNMP protocols.
    11
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to interact with Cisco IOS-XE network devices over SSH using structured tools. Provides read and write capabilities for network management with built-in validation and security.
  • A
    license
    A
    quality
    B
    maintenance
    A comprehensive MCP server for network device management via SSH/Telnet. Supports multiple vendors such as Cisco IOS and BDCOM, enabling AI assistants to execute commands and manage routers, switches, and firewalls.
    4
    MIT

Latest Blog Posts

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/humyai99/mcp-zyxel'

If you have feedback or need assistance with the MCP directory API, please join our Discord server