README.mdโข14 kB
# 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.
[](https://modelcontextprotocol.io/)
[](https://www.sonicwall.com/)
[](https://hub.docker.com/)
[](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>