gNMIBuddy
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| NETWORK_INVENTORY | Yes | Path to the device inventory JSON file. This file must contain a JSON list of device objects with fields like name, ip_address, nos, and authentication credentials. | |
| GNMIBUDDY_LOG_FILE | No | Custom log file path (overrides the default sequential log files in the logs/ directory) | |
| GNMIBUDDY_LOG_LEVEL | No | Global log level (debug, info, warning, error) | info |
| GNMIBUDDY_MODULE_LEVELS | No | Module-specific log levels, e.g., 'src.cmd=warning,src.inventory=debug' | |
| GNMIBUDDY_MCP_TOOL_DEBUG | No | Enable MCP tool debugging | false |
| GNMIBUDDY_STRUCTURED_LOGGING | No | Enable JSON structured logging | false |
| GNMIBUDDY_EXTERNAL_SUPPRESSION_MODE | No | External library suppression mode (cli, mcp, development) | cli |
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": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_routing_infoC | Get routing information from a network device. |
| get_logsC | Get logs from a network device. |
| get_interface_infoB | Get interface information from a network device. |
| get_mpls_infoC | Get MPLS information from a network device. |
| get_vpn_infoC | Get VPN/VRF information from a network device. |
| get_devicesA | Get information about all available devices in the inventory. Returns: A dictionary containing a list of all devices with their name, IP address, and network OS (sensitive authentication data is redacted for security) |
| get_device_profile_apiA | Retrieve a comprehensive device profile summarizing the core service provider role and key protocol features for a network device. This function queries the device using gNMI and analyzes its configuration to determine:
The resulting profile is essential for automation, troubleshooting, and intent-based operations in service provider networks. It allows higher-level systems (including LLMs) to:
Example output for a PE device: { "is_mpls_enabled": true, "is_isis_enabled": true, "is_bgp_l3vpn_enabled": true, "is_route_reflector": false, "has_vpn_ipv4_unicast_bgp": true, "role": "PE" } |
| get_system_infoA | Retrieve structured system-level information from a network device via gNMI. Returns key attributes such as hostname, software version, timezone, memory, gRPC server config, logging, users, boot time, and uptime. Useful for inventory, monitoring, and diagnostics. |
| get_network_topology_apiA | Retrieve the full L3 IP-only direct connection list for all devices in the network inventory (excluding management interfaces). This function returns a detailed list of all discovered L3 IP direct connections (edges) in the network topology graph. Each connection describes a direct L3 IP connectivity between two devices, including interface names, IP addresses, and the shared network segment. The output is suitable for LLMs and automation tools to reason about network structure, connectivity, and path computation. |
| get_topology_neighborsB | Get direct neighbors of a specified device. |
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 10 tools
Each tool targets a distinct aspect of network device information: logs, routing, interfaces, MPLS, VPN, system info, device inventory, device profile, and topology (full vs neighbors). There is no ambiguity between tools.
All tools follow a 'get_' prefix with snake_case, which is consistent. However, two tools have an '_api' suffix (get_device_profile_api, get_network_topology_api) while others do not, creating a minor inconsistency.
With 10 tools, the set is well-scoped for a network device management server. It covers core diagnostic and topology functions without being too large or too small.
The tool surface covers essential read operations (logs, routing, interfaces, MPLS, VPN, system, devices, topology). Minor gaps exist: no direct BGP or config retrieval (though device profile summarizes BGP state), and the topology tools partially overlap. Overall, it's reasonably complete for read-only diagnostics.