nornir-mcp-server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
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 |
|---|---|
| get_inventoryA | Get inventory hosts and their metadata, optionally filtered. Args: filter_criteria: Dictionary of key-value pairs to filter hosts (e.g. {"name": "router1"} or {"role": "core", "site": "tokyo"}). Matches host attributes or data fields. |
| run_netmiko_commandA | Run a show command concurrently on multiple hosts via Netmiko. Args: command: The CLI command to execute (e.g., 'show version'). filter_criteria: Dictionary of key-value pairs to filter target hosts. If empty, runs on ALL hosts! use_textfsm: If True, attempts to parse output into structured data using ntc-templates. |
| run_http_requestA | Run an HTTP API request (REST) concurrently on multiple hosts. Args: method: HTTP method (e.g., 'GET', 'POST', 'PUT'). path: API path to request (e.g., '/api/v1/system'). filter_criteria: Dictionary to filter target hosts. json_data: Optional JSON payload for POST/PUT requests. |
| run_serial_commandA | Run a CLI command on devices via direct Serial connection (using Netmiko). Note: Physical serial ports generally cannot be used concurrently by multiple threads, so hosts are processed sequentially (one at a time). Args: command: The CLI command to execute (e.g., 'show version'). filter_criteria: Dictionary to filter target hosts. |
| generate_configA | Generate configuration from a Jinja2 template string for each target host. Does NOT deploy the configuration; useful for dry-runs and auditing. Args: template_string: Jinja2 template string. Available variables: {{ host.name }}, {{ host.hostname }}, {{ host.platform }}, {{ host.groups }}, {{ host.data['key'] }}. Other host attributes (e.g. credentials) are not exposed. filter_criteria: Dictionary to filter target hosts. |
| run_netmiko_configA | WRITE OPERATION: modifies device configuration. Deploy configuration commands concurrently to multiple hosts via Netmiko. Confirm with the user before calling this tool. Args: commands: List of configuration commands to execute. filter_criteria: Dictionary to filter target hosts. |
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 6 tools
Each tool has a distinct purpose: inventory retrieval, command execution via Netmiko/Serial/HTTP, config generation, and config deployment. No two tools overlap in function; the transport-specific tools are clearly differentiated.
All tools follow a consistent verb_noun pattern using snake_case (e.g., get_inventory, run_netmiko_command). The naming is predictable and self-explanatory.
With 6 tools, the server is well-scoped for network automation. It covers essential operations without being bloated or insufficient.
The tool set covers inventory, multi-protocol command execution, config generation, and config deployment. Missing a serial config deployment tool and perhaps backup/restore, but core workflows are supported.