Skip to main content
Glama
vespo92

OPNSense MCP Server

create_backup

Generate a configuration backup for OPNSense firewalls, allowing users to save and restore settings. Ideal for maintaining network reliability and ensuring system integrity during changes.

Instructions

Create a configuration backup

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
descriptionNoBackup description

Implementation Reference

  • Input options schema for the createBackup function defining optional backup parameters.
    export interface BackupOptions {
      description?: string;
      compress?: boolean;
      includeRRD?: boolean;
      includeCaptivePortal?: boolean;
    }
  • Main handler function that executes the backup creation: generates ID, downloads config from OPNsense, creates metadata, logs, saves metadata and file, returns BackupInfo.
    async createBackup(options: BackupOptions = {}): Promise<BackupInfo> {
      try {
        // Generate backup ID
        const timestamp = new Date();
        const id = `backup-${timestamp.toISOString().replace(/[:.]/g, '-')}`;
        
        // Download configuration
        const config = await this.downloadConfig();
        
        // Create backup info
        const backupInfo: BackupInfo = {
          id,
          filename: `${id}.xml`,
          timestamp,
          description: options.description || `Automated backup before API operation`,
          size: config.length
        };
    
        // Log backup creation
        console.log(`Created backup: ${backupInfo.id}`);
        
        // Store backup metadata (in production, save to database)
        await this.saveBackupMetadata(backupInfo);
        
        // Store backup file (in production, save to TrueNAS or local storage)
        await this.saveBackupFile(backupInfo.filename, config);
        
        return backupInfo;
      } catch (error: any) {
        throw new Error(`Failed to create backup: ${error.message}`);
      }
    }
  • Output schema for backup information returned by createBackup.
    export interface BackupInfo {
      id: string;
      filename: string;
      timestamp: Date;
      size?: number;
      description?: string;
      checksum?: string;
    }
  • Helper method that creates a backup before executing an operation and returns the backup ID, useful for safe API operations.
    async withBackup<T>(
      operation: () => Promise<T>,
      description?: string
    ): Promise<{ result: T; backupId: string }> {
      // Create backup first
      const backup = await this.createBackup({ description });
      
      try {
        // Execute operation
        const result = await operation();
        
        return {
          result,
          backupId: backup.id
        };
      } catch (error) {
        console.error(`Operation failed. Backup available: ${backup.id}`);
        throw error;
      }
    }

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/vespo92/OPNSenseMCP'

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