netmiko-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| NETMKO_MCP_AUDIT_LOG | No | Path to the audit log file | audit.log |
| NETMKO_MCP_INVENTORY | No | Path to the inventory file | hosts.yaml |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_devicesA | 枚举清单中的目标设备及 description 描述(不含密码/secret/sudo 密码)。 |
| run_commandA | 对目标设备执行命令。mode 为 read(只读)或 config(配置下发)。 |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 2 tools
list_devices and run_command have clearly distinct purposes: one enumerates available devices, the other executes commands on a target device. There is no overlap or ambiguity between them.
Both tool names follow the same verb_noun pattern: list_devices and run_command. The naming is consistent, predictable, and easy for an agent to reason about.
With only two tools, the server feels minimal and is at the thin end of the scale. The tools are essential and earn their place, but the surface is quite sparse for a network automation MCP.
The combination of listing devices and running arbitrary read/config commands covers the core Netmiko workflow well. Minor gaps exist, such as no dedicated multi-device execution or explicit save/commit operation, but agents can work around these via run_command.