Skip to main content
Glama

VyOS MCP Server

by danielbodnar

VyOS MCP Server

VyOS Logo

A comprehensive Model Context Provider (MCP) server for VyOS network operating system automation. This server provides complete access to VyOS functionality through 25+ tools covering configuration management, operational commands, system administration, network diagnostics, and monitoring.

๐Ÿš€ Features

  • Complete VyOS API Coverage: All endpoints from VyOS HTTPS API

  • Type Safety: Full TypeScript with Zod schema validation

  • MCP Compatible: Works with Claude Desktop and other MCP clients

  • Streaming Support: SSE transport for real-time communication

  • OpenAPI v3.1: Auto-generated API documentation

  • Error Handling: Robust error management with proper HTTP status codes

Related MCP server: Filesystem MCP Server

๐Ÿ“‹ Requirements

  • Bun v1.0+ (JavaScript runtime and package manager)

  • TypeScript v5.6+ with strict configuration

  • VyOS system with HTTPS API enabled

  • MCP Client (Claude Desktop, etc.)

๐Ÿ› ๏ธ Installation

From JSR (Recommended)

# Install from JSR bunx jsr add @danielbodnar/vyos-mcp # Or with other package managers npx jsr add @danielbodnar/vyos-mcp pnpm dlx jsr add @danielbodnar/vyos-mcp yarn dlx jsr add @danielbodnar/vyos-mcp

From Source

# Clone or navigate to project directory cd vyos-mcp # Install dependencies bun install # Generate OpenAPI specification bun run openapi # Generate documentation bun run docs # Start development server bun run dev

Using as a Library (JSR)

import { VyOSClient } from "@danielbodnar/vyos-mcp"; // Create client instance const client = new VyOSClient({ host: "https://vyos.example.com", apiKey: "your-api-key", timeout: 30000, verifySSL: false }); // Configure interface await client.setConfig(["interfaces", "ethernet", "eth0", "address"], "192.168.1.1/24"); await client.commit("Configure LAN interface"); await client.save();

๐Ÿ”ง Configuration

VyOS System Setup

Enable the HTTPS API on your VyOS system:

# Enter configuration mode configure # Enable HTTPS API set service https api keys id my-api-key key 'your-secure-api-key-here' # Configure HTTPS certificates (optional, for production) set service https certificates system-generated-certificate # Commit and save commit save exit

MCP Client Configuration

Add to your Claude Desktop configuration (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):

{ "mcpServers": { "vyos": { "command": "bun", "args": ["run", "/path/to/vyos-mcp/src/index.ts"], "env": {} } } }

๐ŸŽฏ Usage

1. Connect to VyOS System

// Use the vyos-connect tool const connection = await vyosConnect({ host: "https://192.168.1.1", apiKey: "your-api-key", timeout: 30000, verifySSL: false // For self-signed certificates });

2. Configuration Management

// Show configuration await vyosShowConfig({ path: ["interfaces", "ethernet"], format: "json" }); // Set configuration values await vyosSetConfig({ path: ["interfaces", "ethernet", "eth0", "address"], value: "192.168.1.1/24", comment: "LAN interface configuration" }); // Commit changes await vyosCommit({ comment: "Updated interface configuration", confirmTimeout: 10 // Auto-rollback in 10 minutes if not confirmed }); // Save to startup config await vyosSaveConfig();

3. Network Diagnostics

// Ping connectivity test await vyosPing({ host: "8.8.8.8", count: 5, timeout: 3 }); // Traceroute analysis await vyosTraceroute({ host: "google.com", maxHops: 30 });

4. System Monitoring

// Comprehensive health check await vyosHealthCheck({ includeInterfaces: true, includeRouting: true, includeServices: true, includeResources: true }); // Interface statistics await vyosInterfaceStats(); // BGP status await vyosBgpStatus();

๐Ÿ” Available Tools

Authentication

  • vyos-connect - Connect to VyOS system

Configuration Management

  • vyos-show-config - Retrieve configuration

  • vyos-set-config - Set configuration values

  • vyos-delete-config - Delete configuration nodes

  • vyos-config-exists - Check configuration existence

  • vyos-return-values - Get configuration values

  • vyos-commit - Commit pending changes

  • vyos-save-config - Save to startup config

Operational Commands

  • vyos-show-operational - Execute show commands

  • vyos-reset - Execute reset commands

  • vyos-generate - Execute generate commands

System Management

  • vyos-system-info - Get system information

  • vyos-reboot - Reboot system

  • vyos-poweroff - Power off system

  • vyos-health-check - Comprehensive health assessment

Network Interface Management

  • vyos-configure-interface - Configure interface settings

  • vyos-interface-stats - Get interface statistics

Routing

  • vyos-configure-static-route - Configure static routes

  • vyos-routing-table - Display routing table

  • vyos-bgp-status - Get BGP status

Network Diagnostic Tools

  • vyos-ping - Ping connectivity test

  • vyos-traceroute - Traceroute network analysis

๐Ÿ“– Documentation

Scripts

# Development bun run dev # Start with hot reloading bun run build # Build for production bun run start # Start production server # Documentation (Pure Bun/TypeScript) bun run docs # Generate TypeDoc documentation bun run docs:serve # Generate and serve docs on :8080 bun run docs:dev # Serve existing docs (no rebuild) bun run docs:watch # Watch source files and rebuild docs bun run docs:open # Generate, serve, and open in browser bun run docs:clean # Clean generated documentation bun run openapi # Generate OpenAPI specification # Quality bun run typecheck # TypeScript type checking bun run lint # ESLint code quality

๐Ÿ—๏ธ Architecture

Type Safety

  • Zod Schemas: All API operations use Zod for runtime validation

  • TypeScript: Strict typing throughout the codebase

  • Generated Types: Type definitions derived from schemas

Error Handling

  • HTTP Status Codes: Proper 200/400/500 responses

  • VyOS API Errors: Translated to meaningful messages

  • Network Timeouts: Configurable timeout handling

  • Connection Management: Automatic retry and reconnection

Streaming

  • SSE Transport: Server-Sent Events for real-time communication

  • Bridge Pattern: Connects MCP server to transport layer

  • CORS Support: Cross-origin requests for web clients

๐Ÿค Contributing

  1. Fork the repository

  2. Create a feature branch

  3. Add comprehensive JSDoc documentation

  4. Include TypeScript type definitions

  5. Add error handling and validation

  6. Update tests and documentation

  7. Submit a pull request

๐Ÿ“„ License

MIT License - see LICENSE file for details.

๐Ÿ†˜ Support


Built with โค๏ธ for network automation and infrastructure management.

-
security - not tested
-
license - not tested
-
quality - not tested

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/danielbodnar/vyos-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server