Professional SonicWall log analysis and threat detection via Model Context Protocol
β οΈ 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.
- π 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
- 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+
git clone https://github.com/gensecaihq/sonicwall-mcp-server.git
cd sonicwall-mcp-server
# Copy example configuration
cp .env.example .env
# Edit with your SonicWall details
nano .env
Required configuration:
SONICWALL_HOST=192.168.1.1
SONICWALL_USERNAME=admin
SONICWALL_PASSWORD=your_password
SONICWALL_VERSION=7 # or 8 for SonicOS 8.x
Using Docker (Recommended):
docker compose up -d
# or using npm script
npm run docker:up
Using Node.js:
npm install
npm run build
npm start
# Check server health
curl http://localhost:3000/health
# Expected response:
# {"status":"healthy","protocol":"MCP/2025-06-18","version":"1.0.0"}
Add to your Claude Desktop configuration (claude_desktop_config.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"
- 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
- 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
- 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
Natural language log analysis with intelligent insights
// 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"
Real-time threat monitoring and analysis
// Get critical threats
{
"severity": "critical",
"limit": 20
}
Advanced connection search and investigation
// Investigate specific IP
{
"sourceIp": "192.168.1.100",
"hoursBack": 24,
"limit": 500
}
Network statistics and security metrics
// Get top blocked IPs
{
"metric": "top_blocked_ips",
"limit": 10
}
Export filtered logs for compliance and analysis
// Export security events as CSV
{
"format": "csv",
"filters": {
"severity": ["critical", "high"],
"startTime": "2024-01-01T00:00:00Z"
}
}
- Complete Usage Guide - Detailed examples and use cases
- Configuration Reference - All settings explained
- API Documentation - Complete tool specifications
- Troubleshooting Guide - Common issues and solutions
- Security Guide - Security best practices
- MCP Compliance - Protocol compliance details
βββββββββββββββ βββββββββββββββββββ βββββββββββββββ
β 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
# 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
# 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 Engine 24.0+ (latest stable)
- Docker Compose V2 (integrated plugin, comes with Docker Desktop)
- Note: Legacy
docker-compose
command is deprecated, usedocker compose
# 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
# 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
# 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.yml
- Production configurationdocker-compose.dev.yml
- Development overridesdocker-compose.override.yml
- Local customizations (optional)
# Server status
curl http://localhost:3000/health
# MCP endpoint test
curl -H "Accept: text/event-stream" http://localhost:3000/mcp/v1/sse
# Test authentication
curl -k https://YOUR_SONICWALL/api/sonicos/auth \
-H "Content-Type: application/json" \
-d '{"user":"admin","password":"your_password"}'
# All tests
npm test
# MCP compliance tests
npm run test:mcp
# SonicWall integration tests
npm run test:integration
- β 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
- 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
Problem: Cannot connect to SonicWall API
# 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
Problem: Empty responses from log queries
# Check log levels in SonicWall
# Log > Settings > Categories > Enable required log types
# Verify time synchronization
date
Problem: Browser blocks MCP requests
# Add your domain to CORS_ORIGINS
CORS_ORIGINS=https://claude.ai,https://your-domain.com
# Detailed health status
curl http://localhost:3000/health | jq
# Response includes:
# - Server uptime and status
# - SonicWall connectivity
# - Cache statistics
# - Memory usage
# 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}
# Error monitoring
docker compose logs sonicwall-mcp | grep ERROR
# Performance tracking
docker compose logs sonicwall-mcp | grep "execution time"
We welcome contributions! Please read our Contributing Guidelines.
# 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
MIT License - see LICENSE file for details.
- π Issues: GitHub Issues
- π¬ Discussions: GitHub Discussions
- π Documentation: Project Wiki
- π§ Security: [email protected]
- Model Context Protocol for the excellent specification
- SonicWall for comprehensive API documentation
- Claude Code community for feedback and testing
- All contributors and users who make this project better
π Built with security-first principles for enterprise cybersecurity teams
Get Started β’ API Docs β’ Troubleshooting