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

📋 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

# 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.

Related MCP Servers

  • -
    security
    F
    license
    -
    quality
    Provides a scalable, containerized infrastructure for deploying and managing Model Context Protocol servers with monitoring, high availability, and secure configurations.
    Last updated -
  • -
    security
    A
    license
    -
    quality
    A Model Context Protocol server that provides file system operations, analysis, and manipulation capabilities through a standardized tool interface.
    Last updated -
    4
    TypeScript
    MIT License
  • A
    security
    A
    license
    A
    quality
    A Model Context Protocol server that enables enhanced file system operations including reading, writing, copying, moving files with streaming capabilities, directory management, file watching, and change tracking.
    Last updated -
    12
    15
    TypeScript
    MIT License
    • Linux
    • Apple
  • -
    security
    A
    license
    -
    quality
    A Model Context Protocol server that provides programmatic access to ONOS SDN controller's network management capabilities, enabling device control, topology management, and analytics through ONOS's REST API.
    Last updated -
    4
    Python
    GPL 3.0

View all related MCP servers

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