Skip to main content
Glama

VyOS MCP Server

by danielbodnar
openapi.json22.9 kB
{ "openapi": "3.1.0", "info": { "version": "1.0.0", "title": "VyOS MCP Server API", "description": "Complete Model Context Provider API for VyOS network operating system automation and management", "contact": { "name": "VyOS MCP Server", "url": "https://github.com/bitbuilder-io/vyos-mcp" }, "license": { "name": "MIT", "url": "https://opensource.org/licenses/MIT" } }, "servers": [ { "url": "http://localhost:3000", "description": "Local development server" } ], "tags": [ { "name": "Authentication", "description": "VyOS system connection and authentication" }, { "name": "Configuration", "description": "VyOS configuration management operations" }, { "name": "Operational", "description": "VyOS operational mode commands" }, { "name": "System", "description": "System-level operations and information" }, { "name": "Interfaces", "description": "Network interface configuration and management" }, { "name": "Routing", "description": "Routing protocol configuration and management" }, { "name": "Network Tools", "description": "Network diagnostic and testing tools" }, { "name": "Monitoring", "description": "System and network monitoring" } ], "paths": { "/connect": { "post": { "tags": [ "Authentication" ], "summary": "Connect to VyOS", "description": "Connect to a VyOS system using API credentials", "operationId": "vyos-connect", "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "required": [ "host", "apiKey" ], "properties": { "host": { "type": "string", "format": "uri", "description": "VyOS system hostname or IP address" }, "apiKey": { "type": "string", "minLength": 1, "description": "VyOS API authentication key" }, "timeout": { "type": "number", "default": 30000, "description": "Request timeout in milliseconds" }, "verifySSL": { "type": "boolean", "default": false, "description": "Verify SSL certificates" } } } } } }, "responses": { "200": { "description": "Successfully connected to VyOS system", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SuccessResponse" } } } }, "500": { "description": "Connection failed", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } } } } }, "/system/info": { "post": { "tags": [ "System" ], "summary": "Get system information", "description": "Get VyOS system information including version, hostname, and hardware details", "operationId": "vyos-system-info", "responses": { "200": { "description": "System information retrieved successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SuccessResponse" } } } }, "400": { "description": "Not connected to VyOS system", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { "description": "Failed to retrieve system information", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } } } } }, "/config/show": { "post": { "tags": [ "Configuration" ], "summary": "Show configuration", "description": "Retrieve VyOS configuration for specified path or entire configuration", "operationId": "vyos-show-config", "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "path": { "type": "array", "items": { "type": "string" }, "description": "Configuration path to retrieve" }, "format": { "type": "string", "enum": [ "json", "commands" ], "default": "json", "description": "Output format" } } } } } }, "responses": { "200": { "description": "Configuration retrieved successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SuccessResponse" } } } }, "400": { "description": "Not connected to VyOS system", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { "description": "Failed to retrieve configuration", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } } } } }, "/config/set": { "post": { "tags": [ "Configuration" ], "summary": "Set configuration", "description": "Set configuration value at specified path", "operationId": "vyos-set-config", "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "required": [ "path" ], "properties": { "path": { "type": "array", "items": { "type": "string" }, "description": "Configuration path to set" }, "value": { "type": "string", "description": "Value to set (omit for valueless nodes)" }, "comment": { "type": "string", "description": "Configuration comment" } } } } } }, "responses": { "200": { "description": "Configuration set successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SuccessResponse" } } } }, "400": { "description": "Not connected to VyOS system", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { "description": "Failed to set configuration", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } } } } }, "/config/delete": { "post": { "tags": [ "Configuration" ], "summary": "Delete configuration", "description": "Delete configuration at specified path", "operationId": "vyos-delete-config", "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "required": [ "path" ], "properties": { "path": { "type": "array", "items": { "type": "string" }, "description": "Configuration path to delete" } } } } } }, "responses": { "200": { "description": "Configuration deleted successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SuccessResponse" } } } }, "400": { "description": "Not connected to VyOS system", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { "description": "Failed to delete configuration", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } } } } }, "/config/commit": { "post": { "tags": [ "Configuration" ], "summary": "Commit configuration", "description": "Commit pending configuration changes", "operationId": "vyos-commit", "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "comment": { "type": "string", "description": "Commit comment" }, "confirmTimeout": { "type": "number", "description": "Auto-rollback timeout in minutes" } } } } } }, "responses": { "200": { "description": "Configuration committed successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SuccessResponse" } } } }, "400": { "description": "Not connected to VyOS system", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { "description": "Failed to commit configuration", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } } } } }, "/config/save": { "post": { "tags": [ "Configuration" ], "summary": "Save configuration", "description": "Save current configuration to startup config", "operationId": "vyos-save-config", "responses": { "200": { "description": "Configuration saved successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SuccessResponse" } } } }, "400": { "description": "Not connected to VyOS system", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { "description": "Failed to save configuration", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } } } } }, "/interface/configure": { "post": { "tags": [ "Interfaces" ], "summary": "Configure interface", "description": "Configure network interface settings", "operationId": "vyos-configure-interface", "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "required": [ "name" ], "properties": { "name": { "type": "string", "description": "Interface name (e.g., eth0, wg0)" }, "address": { "type": "string", "description": "IP address with CIDR" }, "description": { "type": "string", "description": "Interface description" }, "enabled": { "type": "boolean", "default": true, "description": "Interface administrative state" }, "mtu": { "type": "number", "description": "Maximum transmission unit" }, "vlan": { "type": "number", "description": "VLAN ID for VLAN interfaces" } } } } } }, "responses": { "200": { "description": "Interface configured successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SuccessResponse" } } } }, "400": { "description": "Not connected to VyOS system", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { "description": "Failed to configure interface", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } } } } }, "/network/ping": { "post": { "tags": [ "Network Tools" ], "summary": "Ping host", "description": "Execute ping connectivity test", "operationId": "vyos-ping", "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "required": [ "host" ], "properties": { "host": { "type": "string", "description": "Target hostname or IP address" }, "count": { "type": "number", "default": 3, "description": "Number of packets to send" }, "interval": { "type": "number", "default": 1, "description": "Interval between packets" }, "timeout": { "type": "number", "default": 5, "description": "Timeout for each packet" }, "size": { "type": "number", "default": 56, "description": "Packet size in bytes" }, "source": { "type": "string", "description": "Source IP address" } } } } } }, "responses": { "200": { "description": "Ping executed successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SuccessResponse" } } } }, "400": { "description": "Not connected to VyOS system", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { "description": "Ping failed", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } } } } }, "/monitoring/interfaces": { "post": { "tags": [ "Monitoring" ], "summary": "Get interface statistics", "description": "Get network interface statistics and status", "operationId": "vyos-interface-stats", "responses": { "200": { "description": "Interface statistics retrieved successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SuccessResponse" } } } }, "400": { "description": "Not connected to VyOS system", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { "description": "Failed to get interface statistics", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } } } } }, "/system/health": { "post": { "tags": [ "System" ], "summary": "System health check", "description": "Comprehensive system health assessment", "operationId": "vyos-health-check", "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "includeInterfaces": { "type": "boolean", "default": true, "description": "Check interface status" }, "includeRouting": { "type": "boolean", "default": true, "description": "Check routing protocols" }, "includeServices": { "type": "boolean", "default": true, "description": "Check system services" }, "includeResources": { "type": "boolean", "default": true, "description": "Check system resources" } } } } } }, "responses": { "200": { "description": "Health check completed successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SuccessResponse" } } } }, "400": { "description": "Not connected to VyOS system", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { "description": "Health check failed", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } } } } } }, "components": { "schemas": { "SuccessResponse": { "type": "object", "properties": { "content": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "text" ] }, "text": { "type": "string" } } } } } }, "ErrorResponse": { "type": "object", "properties": { "content": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "text" ] }, "text": { "type": "string" } } } } } } } } }

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