MCP server for VyOS router management via the HTTPS REST API
Project description
mcp-server-vyos
MCP server for VyOS router management via the HTTPS REST API. Provides both router management tools and live VyOS documentation lookup.
Installation
pip install mcp-server-vyos
Configuration
Set environment variables:
VYOS_URL— Router API endpoint (e.g.,https://vyos.example.com)VYOS_API_KEY— API key for authenticationVYOS_READ_ONLY— Set totrueto disable all mutating tools (config changes, reboot, poweroff, etc.)
VyOS Router Setup
Enable the HTTPS API on your VyOS router:
configure
set service https api keys id my-mcp-key key <your-api-key>
set service https api rest
commit
save
Claude Code
Add to your MCP client configuration:
{
"mcpServers": {
"vyos": {
"command": "mcp-server-vyos",
"env": {
"VYOS_URL": "https://vyos.example.com",
"VYOS_API_KEY": "your-api-key"
}
}
}
}
Read-Only Mode
For safe, query-only access (monitoring, investigation, documentation lookup), enable read-only mode:
{
"mcpServers": {
"vyos": {
"command": "mcp-server-vyos",
"env": {
"VYOS_URL": "https://vyos.example.com",
"VYOS_API_KEY": "your-api-key",
"VYOS_READ_ONLY": "true"
}
}
}
}
This registers only non-mutating tools: vyos_info, vyos_retrieve, vyos_return_values, vyos_exists, vyos_config_diff, vyos_show, vyos_docs_search, and vyos_docs_read.
Tools
Router Management
| Tool | Description |
|---|---|
vyos_info |
System info (no auth required) |
vyos_retrieve |
Read configuration at a path |
vyos_return_values |
Get multi-valued config node values |
vyos_exists |
Check if a config path exists |
vyos_config_diff |
Show config differences (saved vs running, or by revision) |
vyos_show |
Run operational show commands |
vyos_validate |
Validate config syntax (temporary apply with auto-rollback) |
vyos_configure |
Apply config with commit-confirm (safe default) |
vyos_confirm |
Confirm a pending commit-confirm |
vyos_save |
Save running config to disk |
vyos_load |
Load a configuration file |
vyos_merge |
Merge config file or string into running config |
vyos_generate |
Generate keys, certificates, etc. |
vyos_reset |
Reset operations |
vyos_reboot |
Reboot the router |
vyos_poweroff |
Power off the router |
vyos_image_add |
Add a system image from URL |
vyos_image_delete |
Delete a system image |
Documentation
| Tool | Description |
|---|---|
vyos_docs_search |
Search VyOS documentation by topic |
vyos_docs_read |
Read a specific documentation page |
Documentation is fetched live from the vyos-documentation repository, so it stays in sync with the latest VyOS releases. Results are cached for 1 hour.
Safety
- Configuration changes use
commit-confirmby default -- changes auto-revert after 5 minutes unless confirmed withvyos_confirm - Destructive operations (
vyos_reboot,vyos_poweroff,vyos_image_delete) include warning descriptions - API keys are never logged or included in tool outputs
- Self-signed TLS certificates are accepted by default (common on VyOS)
Development
uv venv && source .venv/bin/activate
uv pip install -e ".[dev]"
pytest
ruff check .
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mcp_server_vyos-0.2.0.tar.gz.
File metadata
- Download URL: mcp_server_vyos-0.2.0.tar.gz
- Upload date:
- Size: 15.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
05babb8eb59571ed0e469ae2c9292c33f85ec7df9921f9746e9c1c7d8ff0644c
|
|
| MD5 |
3dc8808e3d1b00480d8777257d540a9e
|
|
| BLAKE2b-256 |
61e5e205db2ef9038261d408ce91956f3de430de0ff84320573c35450c59a3ee
|
Provenance
The following attestation bundles were made for mcp_server_vyos-0.2.0.tar.gz:
Publisher:
release-please.yml on cacack/mcp-server-vyos
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mcp_server_vyos-0.2.0.tar.gz -
Subject digest:
05babb8eb59571ed0e469ae2c9292c33f85ec7df9921f9746e9c1c7d8ff0644c - Sigstore transparency entry: 1231142460
- Sigstore integration time:
-
Permalink:
cacack/mcp-server-vyos@31ade4a84bbaf190621b3caefdb304e41724de7b -
Branch / Tag:
refs/heads/main - Owner: https://github.com/cacack
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-please.yml@31ade4a84bbaf190621b3caefdb304e41724de7b -
Trigger Event:
push
-
Statement type:
File details
Details for the file mcp_server_vyos-0.2.0-py3-none-any.whl.
File metadata
- Download URL: mcp_server_vyos-0.2.0-py3-none-any.whl
- Upload date:
- Size: 10.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b6a257bca051c3caaf32a9154b277f2f1a6d69349f042b9c3fc0dbf593e1b458
|
|
| MD5 |
d3bd2cf88859eb366fe5f97bf43341c7
|
|
| BLAKE2b-256 |
3beb6f544a8e91af18043a7502f6a54556e3da070b02317f077b23bb9c05eed3
|
Provenance
The following attestation bundles were made for mcp_server_vyos-0.2.0-py3-none-any.whl:
Publisher:
release-please.yml on cacack/mcp-server-vyos
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mcp_server_vyos-0.2.0-py3-none-any.whl -
Subject digest:
b6a257bca051c3caaf32a9154b277f2f1a6d69349f042b9c3fc0dbf593e1b458 - Sigstore transparency entry: 1231142538
- Sigstore integration time:
-
Permalink:
cacack/mcp-server-vyos@31ade4a84bbaf190621b3caefdb304e41724de7b -
Branch / Tag:
refs/heads/main - Owner: https://github.com/cacack
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-please.yml@31ade4a84bbaf190621b3caefdb304e41724de7b -
Trigger Event:
push
-
Statement type: