vyos-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| VYOS_URL | Yes | Base URL of your VyOS router (e.g. https://10.0.0.1) | |
| VYOS_API_KEY | Yes | API key configured on the router | |
| VYOS_VERIFY_SSL | No | Set to false to skip TLS verification (default: true) | true |
Capabilities
Features and capabilities supported by this server
| 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 |
|---|---|
| vyos_infoA | Get public system information (version, hostname, banner). No authentication required. Useful to verify connectivity. Returns: str: JSON with version, hostname, and banner fields. |
| vyos_show_configA | Retrieve the running VyOS configuration (full or partial). Pass an empty path list for the entire config tree, or specify path segments to retrieve a subtree. Args: params: path — config path segments (e.g. ["interfaces", "ethernet"]) Returns: str: JSON configuration data for the requested path. Examples: - Full config: path=[] - Interfaces only: path=["interfaces"] - Specific interface: path=["interfaces", "ethernet", "eth0"] - Firewall rules: path=["firewall"] - BGP config: path=["protocols", "bgp"] |
| vyos_return_valuesA | Return values of a multi-valued configuration node. Use this for nodes that hold multiple values (e.g. interface addresses, DNS servers, NTP servers). Args: params: path — path to the multi-valued node Returns: str: JSON array of values. Examples: - Interface addresses: path=["interfaces", "dummy", "dum0", "address"] - DNS nameservers: path=["system", "name-server"] |
| vyos_existsA | Check whether a configuration path exists. Returns true/false. Useful before setting or deleting a path. Args: params: path — config path segments to check Returns: str: "true" or "false" Examples: - Check if API is enabled: path=["service", "https", "api"] - Check if interface exists: path=["interfaces", "ethernet", "eth1"] |
| vyos_showA | Run an operational-mode 'show' command. Equivalent to running 'show ' in the VyOS CLI. Returns the text output of the command. Args: params: path — command path segments Returns: str: Command output text. Examples: - System images: path=["system", "image"] - Interface status: path=["interfaces"] - BGP summary: path=["ip", "bgp", "summary"] - Route table: path=["ip", "route"] - DHCP leases: path=["dhcp", "server", "leases"] - Firewall stats: path=["firewall"] - System uptime: path=["system", "uptime"] - VPN status: path=["vpn", "ipsec", "sa"] |
| vyos_setA | Set a single VyOS configuration path. Equivalent to 'set ' in configure mode. The value is the last element of the path list. Args: params: - path: Config path including the value as the last segment - confirm_time: Optional rollback timeout in minutes Returns: str: Success message or error. Examples: - Set interface address: path=["interfaces", "ethernet", "eth0", "address", "10.0.0.1/24"] - Set hostname: path=["system", "host-name", "router01"] - Enable SSH: path=["service", "ssh"] - Set static route: path=["protocols", "static", "route", "0.0.0.0/0", "next-hop", "10.0.0.254"] - Set firewall rule: path=["firewall", "name", "WAN_IN", "rule", "10", "action", "accept"] |
| vyos_deleteA | Delete a VyOS configuration path. Equivalent to 'delete ' in configure mode. Removes the specified node and all its children. Args: params: - path: Config path to delete - confirm_time: Optional rollback timeout in minutes Returns: str: Success message or error. Examples: - Remove interface address: path=["interfaces", "ethernet", "eth0", "address", "10.0.0.1/24"] - Remove firewall rule: path=["firewall", "name", "WAN_IN", "rule", "10"] - Remove entire interface: path=["interfaces", "dummy", "dum1"] |
| vyos_commentA | Add a comment to a VyOS configuration node. Equivalent to 'comment ' in configure mode. The comment text is the last element of the path list. Args: params: - path: Config path with comment text as last segment Returns: str: Success message or error. |
| vyos_configure_batchA | Apply multiple configuration operations in a single atomic commit. Use this for changes that must be applied together (e.g. creating a VXLAN interface with its remote and VNI, or setting up a firewall ruleset with multiple rules). Args: params: - operations: List of {op, path} dicts - confirm_time: Optional rollback timeout in minutes Returns: str: Success message or error. Examples: - Create VXLAN with settings: operations=[ {"op": "set", "path": ["interfaces", "vxlan", "vxlan1", "remote", "203.0.113.99"]}, {"op": "set", "path": ["interfaces", "vxlan", "vxlan1", "vni", "1"]}, {"op": "set", "path": ["interfaces", "vxlan", "vxlan1", "address", "10.10.10.1/24"]} ] - Set up BGP peer: operations=[ {"op": "set", "path": ["protocols", "bgp", "65000", "neighbor", "10.0.0.2", "remote-as", "65001"]}, {"op": "set", "path": ["protocols", "bgp", "65000", "neighbor", "10.0.0.2", "address-family", "ipv4-unicast"]} ] |
| vyos_save_configA | Save the running configuration to disk. By default saves to /config/config.boot. Optionally specify a custom file path. Args: params: file — optional save path Returns: str: Success message or error. |
| vyos_load_configA | Load a configuration file, replacing the running configuration. WARNING: This replaces the entire running config with the file contents. Args: params: file — absolute path on VyOS filesystem Returns: str: Success message or error. |
| vyos_merge_configA | Merge configuration from a file or inline string into the running config. Merging adds/overwrites matching nodes without removing unrelated configuration. Supports commit-confirm for safe rollback. Args: params: - file: path on VyOS filesystem, OR - string: inline VyOS config text - confirm_time: optional rollback timeout in minutes Returns: str: Success message or error. Examples: - Merge from file: file="/config/branch-office.config" - Merge inline config: string="interfaces { ethernet eth1 { address 192.168.50.1/24 } }" |
| vyos_confirm_commitA | Confirm a pending commit-confirm timer. If a previous configure or merge operation was sent with
Returns: str: Confirmation result or error. |
| vyos_generateA | Run a VyOS 'generate' command. Used to generate cryptographic keys, certificates, and other system components. Args: params: path — generate command path segments Returns: str: Generated output (keys, etc.) or error. Examples: - WireGuard keypair: path=["pki", "wireguard", "key-pair"] - OpenVPN keys: path=["pki", "openvpn"] |
| vyos_resetA | Run a VyOS 'reset' command. Resets protocol sessions, counters, or other runtime state. Does NOT affect saved configuration. Args: params: path — reset command path segments Returns: str: Reset result or error. Examples: - Reset BGP peer: path=["ip", "bgp", "192.0.2.11"] - Reset all BGP: path=["ip", "bgp", "all"] - Reset OSPF: path=["ip", "ospf", "process"] - Reset counters: path=["interfaces", "ethernet", "eth0", "counters"] |
| vyos_imageA | Add or delete VyOS system images. Use 'add' with a URL to download and install a new image. Use 'delete' with a name to remove an existing image. Args: params: - op: 'add' or 'delete' - url: download URL (required for add) - name: image name (required for delete) Returns: str: Operation result or error. |
| vyos_system_controlA | Reboot or power off the VyOS router. CRITICAL: This will take the router offline. The 'confirm' parameter must be explicitly set to true. Args: params: - action: 'reboot' or 'poweroff' - confirm: must be true to proceed Returns: str: Result message or error. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
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/alch3mistdev/vyos-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server