VyOS MCP Server
An MCP server for managing VyOS routers via the VyOS HTTP API. Gives any MCP-compatible AI assistant full control over your VyOS router — from reading config to setting up interfaces, firewall rules, VPNs, and more.
Prerequisites
A VyOS router (1.4+ or rolling) with the HTTP API enabled:
configure
set service https api keys id my-app key 'YOUR_API_KEY'
set service https api rest
commit
save
Quick Start
No installation needed — run directly with uvx:
uvx vyos-mcp
Claude Code
claude mcp add vyos \
-e VYOS_URL=https://10.0.0.1 \
-e VYOS_API_KEY=YOUR_API_KEY \
-e VYOS_VERIFY_SSL=false \
-- uvx vyos-mcp
Or add to your ~/.claude.json or project .mcp.json:
{
"mcpServers": {
"vyos": {
"command": "uvx",
"args": ["vyos-mcp"],
"env": {
"VYOS_URL": "https://10.0.0.1",
"VYOS_API_KEY": "YOUR_API_KEY",
"VYOS_VERIFY_SSL": "false"
}
}
}
}
Claude Desktop
Add to your Claude Desktop config:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"vyos": {
"command": "uvx",
"args": ["vyos-mcp"],
"env": {
"VYOS_URL": "https://10.0.0.1",
"VYOS_API_KEY": "YOUR_API_KEY",
"VYOS_VERIFY_SSL": "false"
}
}
}
}
Environment Variables
| Variable | Required | Description |
|---|---|---|
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) |
Tools
Read-Only
| Tool | Description |
|---|---|
vyos_info |
Get system version, hostname, and banner (no auth required) |
vyos_show |
Run operational-mode show commands (interfaces, routes, BGP, etc.) |
vyos_show_config |
Retrieve running configuration (full or partial subtree) |
vyos_exists |
Check whether a configuration path exists |
vyos_return_values |
Return values of a multi-valued config node (e.g. DNS servers) |
Configuration
| Tool | Description |
|---|---|
vyos_set |
Set a single configuration path |
vyos_delete |
Delete a configuration path and its children |
vyos_comment |
Add a comment to a configuration node |
vyos_configure_batch |
Apply multiple set/delete/comment operations in a single atomic commit |
All configuration tools automatically save to /config/config.boot after a successful commit, so changes persist across reboots.
Use confirm_time (1-60 minutes) on any config tool for safe rollback — changes auto-revert unless confirmed with vyos_confirm_commit.
Config File Management
| Tool | Description |
|---|---|
vyos_save_config |
Save running config to disk (default or custom path) |
vyos_load_config |
Load a config file, replacing the running configuration |
vyos_merge_config |
Merge config from a file or inline string into running config |
vyos_confirm_commit |
Confirm a pending commit-confirm timer |
System
| Tool | Description |
|---|---|
vyos_generate |
Run generate commands (WireGuard keys, certificates, etc.) |
vyos_reset |
Reset protocol sessions, counters, or runtime state |
vyos_image |
Add (download) or delete system images |
vyos_system_control |
Reboot or power off the router (requires explicit confirmation) |
Examples
Once configured, ask your AI assistant things like:
- "Show me the current interface status"
- "Set up eth0 as WAN with DHCP and eth1 as LAN with a DHCP server on 192.168.1.0/24"
- "Add a firewall rule to block incoming traffic on port 22 from WAN"
- "Set up a WireGuard VPN tunnel to 203.0.113.1"
- "Show me the routing table"
- "What DHCP leases are active?"
- "Generate a new WireGuard key pair"
Development
git clone https://github.com/openclaw/vyos-mcp.git
cd vyos-mcp
python -m venv .venv
source .venv/bin/activate
pip install -e .
License
MIT
Metadata
Release files for vyos-mcp 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| vyos_mcp-0.1.0.tar.gz | 10.1 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| vyos_mcp-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 21.9 kB
Release files / vyos_mcp-0.1.0.tar.gz
| Download URL | vyos_mcp-0.1.0.tar.gz |
|---|---|
| Size | 10.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ae9c90e7cdf0d976f15c964d7d21317f73092f626dfcfeb55555e9a771d883bc
|
|
BLAKE2b-256 checksum How to use checksums |
19e4df2b8edcd0a8173da76f0f3f3811b605cebeaa048015aeedc351a6fc76ab
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.14
|
Release files / vyos_mcp-0.1.0-py3-none-any.whl
| Download URL | vyos_mcp-0.1.0-py3-none-any.whl |
|---|---|
| Size | 11.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0be9b434090153fb058358ebb38c352e2c2055ca5879709a93d1eb605e5ea425
|
|
BLAKE2b-256 checksum How to use checksums |
47dbff057811be3c96fddb3ca3e57b566e03894d7e6bd6fd841828c416249184
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.14
|
Security for vyos-mcp 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.