Skip to main content
Glama
gensecaihq

SonicWall MCP Server

by gensecaihq
README.md
# SonicWall MCP Server

> **Professional SonicWall log analysis and threat detection via Model Context Protocol**

## ๐Ÿงช **Community Testing Needed**

> **โš ๏ธ IMPORTANT:** This project needs community testing and validation!  
> **๐Ÿ‘ฅ We need your help to test this with real SonicWall devices and environments.**
>
> - **๐Ÿ” Test it** with your SonicWall setup  
> - **๐Ÿ› Report issues** via GitHub Issues  
> - **๐Ÿ”ง Fix bugs** and submit PRs  
> - **๐Ÿ“ Improve documentation** based on real-world usage  
> - **๐Ÿ’ก Contribute features** and enhancements
>
> **Your testing and contributions will help make this production-ready for everyone!**

A production-ready MCP server that provides intelligent analysis of SonicWall firewall logs through natural language queries. **Fully compliant with MCP 2025-06-18 specification** with comprehensive support for both SonicOS 7.x and 8.x including accurate API endpoints and version-specific features.

[![MCP Compatible](https://img.shields.io/badge/MCP-2025--06--18-blue)](https://modelcontextprotocol.io/)
[![SonicOS Support](https://img.shields.io/badge/SonicOS-7.x%20%7C%208.x-orange)](https://www.sonicwall.com/)
[![Docker Ready](https://img.shields.io/badge/Docker-Ready-2496ED)](https://hub.docker.com/)
[![Security First](https://img.shields.io/badge/Security-First-green)](docs/SECURITY.md)

## โœจ Features

- ๐Ÿ” **Natural Language Log Analysis** - Query firewall logs using conversational AI
- ๐Ÿ›ก๏ธ **Real-time Threat Detection** - Advanced threat correlation and behavioral analysis
- ๐ŸŒ **Complete SonicOS Support** - Accurate API endpoints for both 7.x and 8.x versions
- ๐ŸŽฏ **Version-Aware Integration** - Automatic endpoint resolution and feature detection
- ๐Ÿš€ **Enterprise Ready** - Production deployment with comprehensive security
- ๐Ÿ“Š **Advanced Analytics** - Network intelligence and security metrics
- ๐Ÿ”’ **MCP 2025-06-18 Compliant** - Latest protocol compliance with enhanced JSON-RPC 2.0
- โšก **High Performance** - In-memory caching with intelligent TTL management
- ๐Ÿ” **Security First** - Authentication, authorization, and comprehensive audit logging

## ๐Ÿ“‹ Quick Start

### Prerequisites

- **SonicWall Device** running SonicOS 7.x or 8.x
- **API Access** enabled on your SonicWall (MANAGE > System Setup > Appliance > SonicOS API)
- **Docker & Docker Compose** (recommended) or Node.js 20+

### 1. Get the Server

```bash
git clone https://github.com/gensecaihq/sonicwall-mcp-server.git
cd sonicwall-mcp-server
```

### 2. Configure Environment

```bash
# Copy example configuration
cp .env.example .env

# Edit with your SonicWall details
nano .env
```

Required configuration:
```env
SONICWALL_HOST=192.168.1.1
SONICWALL_USERNAME=admin
SONICWALL_PASSWORD=your_password
SONICWALL_VERSION=7  # or 8 for SonicOS 8.x
```

### 3. Start the Server

**Using Docker (Recommended):**
```bash
docker compose up -d
# or using npm script
npm run docker:up
```

**Using Node.js:**
```bash
npm install
npm run build
npm start
```

### 4. Verify Installation

```bash
# Check server health
curl http://localhost:3000/health

# Expected response:
# {"status":"healthy","protocol":"MCP/2025-06-18","version":"1.0.0"}
```

## ๐Ÿ”— Connect to Claude

Add to your Claude Desktop configuration (`claude_desktop_config.json`):

```json
{
  "mcpServers": {
    "sonicwall": {
      "transport": "sse",
      "url": "http://localhost:3000/mcp/v1/sse"
    }
  }
}
```

**That's it!** Start using SonicWall analysis in Claude:

> *"Show me blocked connections from the last hour"*  
> *"Find critical security threats from today"*  
> *"Analyze VPN authentication failures"*

## ๐ŸŽฏ Latest Improvements

### โšก **Enhanced SonicOS Support** (v1.0.0)
- **Accurate API Endpoints**: Complete endpoint mapping for both SonicOS 7.x (`/api/sonicos`) and 8.x (`/api/sonicos/v8`)
- **Version-Aware Features**: Automatic detection and utilization of version-specific capabilities
- **Advanced Authentication**: Enhanced session management with proper token refresh and error handling
- **Cloud Integration**: Full support for SonicOS 8.x cloud management and NSM integration

### ๐Ÿ›ก๏ธ **Security & Compliance Enhancements**
- **MCP 2024-11-05 Compliance**: Full protocol implementation with JSON-RPC 2.0 support
- **Enhanced Error Handling**: SonicWall-specific error codes with intelligent retry logic
- **Advanced Validation**: Comprehensive JSON Schema validation using AJV
- **Security Hardening**: Improved authentication flow with comprehensive audit logging

### ๐Ÿš€ **Performance & Reliability**
- **Intelligent Caching**: Enhanced TTL management with automatic cleanup
- **Endpoint Optimization**: Version-specific timeout and rate limiting configurations
- **Connection Management**: Improved retry logic and failover handling
- **Comprehensive Logging**: Structured logging with performance metrics and debugging support

## ๐Ÿ› ๏ธ Available Tools

### `analyze_logs`
**Natural language log analysis with intelligent insights**

```typescript
// Example usage in Claude
"Show me suspicious network activity from external IPs in the last 2 hours"
"Find brute force attacks on SSH and RDP ports"
"Analyze malware detections and their source locations"
```

### `get_threats` 
**Real-time threat monitoring and analysis**

```typescript
// Get critical threats
{
  "severity": "critical",
  "limit": 20
}
```

### `search_connections`
**Advanced connection search and investigation**

```typescript
// Investigate specific IP
{
  "sourceIp": "192.168.1.100",
  "hoursBack": 24,
  "limit": 500
}
```

### `get_stats`
**Network statistics and security metrics**

```typescript
// Get top blocked IPs
{
  "metric": "top_blocked_ips",
  "limit": 10
}
```

### `export_logs`
**Export filtered logs for compliance and analysis**

```typescript
// Export security events as CSV
{
  "format": "csv",
  "filters": {
    "severity": ["critical", "high"],
    "startTime": "2024-01-01T00:00:00Z"
  }
}
```

## ๐Ÿ“– Documentation

- **[Complete Usage Guide](docs/USAGE.md)** - Detailed examples and use cases
- **[Configuration Reference](docs/CONFIGURATION.md)** - All settings explained
- **[API Documentation](docs/API.md)** - Complete tool specifications
- **[Troubleshooting Guide](docs/TROUBLESHOOTING.md)** - Common issues and solutions
- **[Security Guide](docs/SECURITY.md)** - Security best practices
- **[MCP Compliance](docs/MCP_COMPLIANCE.md)** - Protocol compliance details

## ๐Ÿ—๏ธ Architecture

```
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ Claude Code โ”‚โ—„โ”€โ”€โ–บโ”‚ MCP Server      โ”‚โ—„โ”€โ”€โ–บโ”‚ SonicWall   โ”‚
โ”‚             โ”‚SSE โ”‚ (Port 3000)     โ”‚API โ”‚ Device      โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                          โ”‚
                          โ–ผ
                   โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
                   โ”‚ Log Analysis    โ”‚
                   โ”‚ & Intelligence  โ”‚
                   โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
```

**Key Components:**
- **MCP Protocol Layer**: Full MCP 2024-11-05 compliance with SSE transport
- **Enhanced API Client**: Accurate SonicOS 7.x/8.x endpoints with session management
- **Intelligent Log Parser**: Multi-format parsing with version-specific optimizations
- **Analysis Engine**: AI-powered natural language processing and threat correlation
- **Performance Cache**: High-performance in-memory caching with TTL management
- **Security Framework**: Comprehensive authentication and input validation

## ๐Ÿ”ง Configuration

### Basic Configuration
```env
# SonicWall Connection
SONICWALL_HOST=your.firewall.ip
SONICWALL_USERNAME=admin
SONICWALL_PASSWORD=secure_password
SONICWALL_VERSION=7

# Server Settings  
PORT=3000
LOG_LEVEL=info
CACHE_TTL_SECONDS=300
```

### Advanced Configuration
```env
# Authentication (Optional)
MCP_BEARER_TOKEN=your_secret_token

# Performance Tuning
CACHE_MAX_SIZE=1000
API_TIMEOUT=30000
MAX_RETRIES=3

# Security
CORS_ORIGINS=https://claude.ai,https://localhost:3000
RATE_LIMIT_MAX=100
```

## ๐Ÿณ Docker Deployment

### Prerequisites
- Docker Engine 24.0+ (latest stable)
- Docker Compose V2 (integrated plugin, comes with Docker Desktop)
- **Note**: Legacy `docker-compose` command is deprecated, use `docker compose`

### Quick Start Commands
```bash
# Production deployment (detached mode)
docker compose up -d

# Development mode (with hot reload)
docker compose -f docker-compose.yml -f docker-compose.dev.yml up

# View logs
docker compose logs -f sonicwall-mcp

# Stop all services
docker compose down

# Rebuild and restart
docker compose up --build -d
```

### NPM Script Shortcuts
```bash
# Production deployment
npm run docker:up

# Development with hot reload
npm run docker:dev  

# View logs
npm run docker:logs

# Stop services
npm run docker:down

# Build image only
npm run docker:build
```

### Environment Configuration
```bash
# Use environment file
cp .env.example .env
# Edit .env with your SonicWall details
docker compose up -d

# Or pass environment variables directly
SONICWALL_HOST=192.168.1.1 \
SONICWALL_USERNAME=admin \
SONICWALL_PASSWORD=your_password \
docker compose up -d
```

### Docker Compose Files
- `docker-compose.yml` - Production configuration
- `docker-compose.dev.yml` - Development overrides
- `docker-compose.override.yml` - Local customizations (optional)

## ๐Ÿงช Testing & Validation

### Quick Health Check
```bash
# Server status
curl http://localhost:3000/health

# MCP endpoint test
curl -H "Accept: text/event-stream" http://localhost:3000/mcp/v1/sse
```

### SonicWall Connectivity Test
```bash
# Test authentication
curl -k https://YOUR_SONICWALL/api/sonicos/auth \
  -H "Content-Type: application/json" \
  -d '{"user":"admin","password":"your_password"}'
```

### Run Test Suite
```bash
# All tests
npm test

# MCP compliance tests
npm run test:mcp

# SonicWall integration tests  
npm run test:integration
```

## ๐Ÿ”’ Security

### Security Features
- โœ… **Transport Security** - HTTPS enforcement with comprehensive CORS validation
- โœ… **Authentication** - Bearer token support with intelligent rate limiting
- โœ… **Input Validation** - JSON Schema validation using AJV with comprehensive sanitization
- โœ… **Container Security** - Non-root user execution with read-only filesystem
- โœ… **Data Privacy** - Zero sensitive data logging with audit-compliant processing
- โœ… **MCP Compliance** - Full protocol security implementation
- โœ… **API Security** - SonicWall credential protection with secure session management

### Security Checklist
- [ ] Enable API access only from trusted networks
- [ ] Use strong passwords for SonicWall admin accounts  
- [ ] Configure MCP_BEARER_TOKEN for additional security
- [ ] Monitor logs for unusual activity
- [ ] Keep SonicWall firmware updated
- [ ] Review firewall rules regularly

## ๐Ÿšจ Common Issues

### โŒ "Authentication Failed"
**Problem**: Cannot connect to SonicWall API
```bash
# Check API is enabled
# SonicWall: MANAGE > System Setup > Appliance > SonicOS API โœ“

# Test connectivity
ping YOUR_SONICWALL_HOST
curl -k https://YOUR_SONICWALL_HOST/api/sonicos/auth
```

### โŒ "No logs returned"
**Problem**: Empty responses from log queries
```bash
# Check log levels in SonicWall
# Log > Settings > Categories > Enable required log types

# Verify time synchronization
date
```

### โŒ "CORS Error in Browser"
**Problem**: Browser blocks MCP requests
```env
# Add your domain to CORS_ORIGINS
CORS_ORIGINS=https://claude.ai,https://your-domain.com
```

## ๐Ÿ“Š Monitoring & Observability

### Health Monitoring
```bash
# Detailed health status
curl http://localhost:3000/health | jq

# Response includes:
# - Server uptime and status
# - SonicWall connectivity
# - Cache statistics  
# - Memory usage
```

### Performance Metrics
```bash
# View performance logs
docker compose logs sonicwall-mcp | grep "executed successfully"

# Example output:
# {"timestamp":"2024-01-01T12:00:00.000Z","level":"info","message":"Tool analyze_logs executed successfully","executionTime":245,"resultSize":15420}
```

### Log Analysis
```bash
# Error monitoring
docker compose logs sonicwall-mcp | grep ERROR

# Performance tracking
docker compose logs sonicwall-mcp | grep "execution time"
```

## ๐Ÿค Contributing

We welcome contributions! Please read our [Contributing Guidelines](CONTRIBUTING.md).

### Development Setup
```bash
# Fork and clone
git clone https://github.com/your-username/sonicwall-mcp-server.git
cd sonicwall-mcp-server

# Install dependencies  
npm install

# Start development server
npm run dev

# Run tests
npm test

# Submit PR
git checkout -b feature/amazing-feature
git commit -m "Add amazing feature"
git push origin feature/amazing-feature
```

## ๐Ÿ“„ License

MIT License - see [LICENSE](LICENSE) file for details.

## ๐Ÿ†˜ Support & Community

- ๐Ÿ› **Issues**: [GitHub Issues](https://github.com/your-org/sonicwall-mcp-server/issues)
- ๐Ÿ’ฌ **Discussions**: [GitHub Discussions](https://github.com/your-org/sonicwall-mcp-server/discussions)  
- ๐Ÿ“š **Documentation**: [Project Wiki](https://github.com/your-org/sonicwall-mcp-server/wiki)
- ๐Ÿ“ง **Security**: security@yourorganization.com

## ๐Ÿ™ Acknowledgments

- [Model Context Protocol](https://modelcontextprotocol.io/) for the excellent specification
- [SonicWall](https://www.sonicwall.com/) for comprehensive API documentation  
- [Claude Code](https://claude.ai/code) community for feedback and testing
- All contributors and users who make this project better

---

<div align="center">

**๐Ÿ”’ Built with security-first principles for enterprise cybersecurity teams**

[Get Started](docs/USAGE.md) โ€ข [API Docs](docs/API.md) โ€ข [Troubleshooting](docs/TROUBLESHOOTING.md)

</div>