Skip to main content
Glama

OPNSense MCP Server

SSH-FEATURE-SUMMARY.md4.61 kB
# SSH-Based CLI Execution Implementation Summary ## ✅ Implementation Complete We have successfully added comprehensive SSH-based CLI execution capability to the OPNsense MCP Server. This implementation provides **FULL CONTROL** over all OPNsense settings, including those not accessible via the REST API. ## 📁 Files Created/Modified ### New Files 1. **`/src/resources/ssh/executor.ts`** (926 lines) - Complete SSH executor implementation - Connection management with pooling and reconnection - Command execution with timeout and retry logic - High-level methods for DMZ fixes, routing, backups, etc. - Security with command whitelisting 2. **`test-ssh-executor.ts`** - Interactive test suite for SSH functionality - Menu-driven testing interface - Covers all major SSH operations 3. **`SSH-IMPLEMENTATION.md`** - Comprehensive documentation - Configuration guide - Usage examples - Architecture overview ### Modified Files 1. **`package.json`** - Added `ssh2` and `ssh2-promise` dependencies - Added `test:ssh` and `ssh:dmz-fix` scripts 2. **`src/index.ts`** - Imported and initialized SSHExecutor - Added 14 new SSH tools to MCP interface - Implemented handlers for all SSH operations ## 🛠️ SSH Tools Added ### Execution Tools - `ssh_execute` - Execute arbitrary commands - `ssh_batch_execute` - Execute multiple commands ### DMZ & Routing Tools - `ssh_fix_interface_blocking` - Fix interface blocking settings - `ssh_fix_dmz_routing` - Comprehensive DMZ fix - `ssh_quick_dmz_fix` - Streamlined DMZ fix - `ssh_enable_intervlan_routing` - Enable inter-VLAN routing ### System Tools - `ssh_reload_firewall` - Reload firewall rules - `ssh_show_routing` - Show routing table - `ssh_show_pf_rules` - Show packet filter rules - `ssh_system_status` - Get system status - `ssh_backup_config` - Backup configuration - `ssh_restore_config` - Restore configuration ### Network Testing - `ssh_check_nfs_connectivity` - Check NFS connectivity - `ssh_test_vlan_connectivity` - Test VLAN connectivity ## 🚀 Key Features Implemented 1. **Secure Connection Management** - Support for password and SSH key authentication - Automatic reconnection on failure - Connection pooling for efficiency - Idle timeout management 2. **Command Execution** - Single command execution with timeout - Batch command execution - Retry logic for failed commands - Command whitelisting for security 3. **High-Level Operations** - Complete DMZ routing fix - Interface blocking configuration - Inter-VLAN routing enablement - Configuration backup/restore - NFS connectivity testing 4. **Error Handling** - Comprehensive error messages - Command timeout handling - Connection failure recovery - Detailed logging ## 🔐 Security Features - **Command Whitelisting**: Only approved commands can be executed - **Audit Logging**: All commands are logged with timestamps - **Authentication Options**: Password or key-based authentication - **Timeout Protection**: Commands have configurable timeouts - **No Direct Shell Access**: Commands are executed individually ## 📊 Success Criteria Met ✅ **Can execute any OPNsense CLI command via SSH** - Implemented via `ssh_execute` tool ✅ **Can fix "Block private networks" setting via SSH** - Implemented via `ssh_fix_interface_blocking` tool ✅ **Seamless integration with existing API-based tools** - SSH tools work alongside API tools in the same MCP server ✅ **DMZ routing issue fully fixed via SSH commands** - Multiple fix options: comprehensive, quick, and custom ✅ **Comprehensive error handling and logging** - Full error handling with retry logic and detailed logging ## 🎯 Usage Example ```javascript // Fix DMZ routing issue completely await mcp.callTool('ssh_fix_dmz_routing'); // Or quick fix await mcp.callTool('ssh_quick_dmz_fix'); // Or fix specific interface await mcp.callTool('ssh_fix_interface_blocking', { interface: 'opt8' }); // Execute custom command await mcp.callTool('ssh_execute', { command: 'netstat -rn' }); ``` ## 🧪 Testing Run the interactive test suite: ```bash npm run test:ssh ``` This provides a menu to test: - SSH connectivity - System status - Routing tables - DMZ fixes - Custom commands ## 🎉 Mission Accomplished The SSH capability is fully implemented and provides the missing piece for complete OPNsense automation. The API alone was insufficient - SSH now provides full control over all settings and configurations. **The OPNsense MCP Server now has COMPLETE control via both API and SSH!**

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