Skip to main content
Glama
danielbodnar

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

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

-
license - not tested
-
quality - not tested
-
maintenance - not tested

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    -
    quality
    F
    maintenance
    A Model Context Protocol server that provides file system operations, analysis, and manipulation capabilities through a standardized tool interface.
    6
    MIT
  • A
    license
    -
    quality
    D
    maintenance
    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.
    6
    GPL 3.0
  • A
    license
    B
    quality
    F
    maintenance
    A comprehensive Model Context Protocol server providing access to 70+ IT tools for developers and system administrators, including encoding/decoding, text manipulation, hashing, and network utilities.
    34
    100
    179
    22
    TypeScript
    MIT

View all related MCP servers

Related MCP Connectors

  • A Model Context Protocol server for Wix AI tools

  • A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…

  • MCP (Model Context Protocol) server for Appwrite

View all MCP Connectors

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