AlienSec MCP Server
AlienSec MCP Server
Produktionsreifer AlienVault-OTX-Endpunkt-Sicherheits-Scanning-MCP-Server mit VirusTotal-Integration
// für die Sicherheits-Community erstellt — Finanzierung hält es am Laufen
Überblick
Der AlienSec MCP Server ist ein produktionsreifer Model-Context-Protocol-Server (MCP), der umfassende Endpunkt-Sicherheits-Scanning-Funktionen unter Verwendung von AlienVault OTX mit optionaler VirusTotal-Integration bereitstellt.
Dieser Server ermöglicht es KI-Agenten und Anwendungen, Sicherheitsscans für verschiedene Endpunkttypen (macOS PKG, Windows PowerShell, Debian APT, Redhat RPM) durchzuführen und Bedrohungsinformationen von den AlienVault-OTX- und VirusTotal-APIs abzurufen.
Related MCP server: Velociraptor MCP Server
Funktionen
Kernfunktionen
Multi-Plattform-Endpunkt-Scanning
Scan von macOS-Systemen mit PKG-Installer-Flavor
Scan von Windows-Endpunkten über PowerShell
Scan von Debian/Ubuntu-Systemen mit APT
Scan von Redhat/CentOS-Systemen mit RPM
VirusTotal-Integration
Scan von Dateien und URLs über die VirusTotal-API
Abrufen vorhandener Analyseergebnisse
Automatisches Rate-Limiting und Circuit-Breaker-Schutz
Unterstützung mehrerer API-Schlüssel (respektiert die VirusTotal-AGB)
Bedrohungsinformationen
Suche in AlienVault-OTX-Pulsen
Abrufen von Pulsdetails und Ereignissen
Zugriff auf Indikatoren für Kompromittierung (IoCs)
Datenpersistenz
SQLite-Datenbank mit optionaler Verschlüsselung
Speicherung von Scan-Ergebnissen mit Zeitstempeln
Protokollierung von API-Anfragen
Verfolgung von Circuit-Breaker-Ereignissen
Produktionsreife Funktionen
Umfassende Fehlerbehandlung
Strukturierte Protokollierung mit Pino
Validierung von Umgebungsvariablen mit Zod
Typsichere API-Schemas
Sauberes Herunterfahren (Graceful Shutdown)
Voraussetzungen
Systemanforderungen
Node.js: >= 22.0.0
npm: >= 8.0.0
Betriebssystem: macOS, Linux oder Windows
Speicherplatz: Mindestens 100 MB für Abhängigkeiten
Erforderliche API-Schlüssel
AlienVault-OTX-API-Schlüssel (erforderlich)
Registrieren unter https://otx.alienvault.com
Navigieren Sie zu Einstellungen > API-Schlüssel
Generieren Sie einen neuen API-Schlüssel
VirusTotal-API-Schlüssel (optional, für erweiterte Funktionen)
Registrieren unter https://www.virustotal.com
Navigieren Sie zur API-Konsole
Generieren Sie API-Schlüssel
Hinweis: Der kostenlose Tarif erlaubt 500 Anfragen/Tag, 4 Anfragen/Minute
Installation
1. Repository klonen
git clone https://github.com/VRIL-LABS/aliensec-mcp-server.git
cd aliensec-mcp-server2. Abhängigkeiten installieren
npm installDadurch werden alle Produktions- und Entwicklungsabhängigkeiten installiert.
3. Umgebungsvariablen konfigurieren
Kopieren Sie die Beispiel-Umgebungsdatei und aktualisieren Sie sie mit Ihren API-Schlüsseln:
cp .env.example .envBearbeiten Sie .env mit Ihren API-Schlüsseln:
# Server Configuration
NAME=aliensec-mcp-server
VERSION=1.0.0
DEBUG=false
LOG_LEVEL=info
# AlienVault OTX Configuration (Required)
ALIENVAULT_API_KEY=your_alienvault_api_key_here
ALIENVAULT_BASE_URL=https://api.agent.otxb.io
ALIENVAULT_DEFAULT_REGION=us-east-1
# VirusTotal Configuration (Optional)
VIRUSTOTAL_API_KEYS=key1,key2,key3
VIRUSTOTAL_BASE_URL=https://www.virustotal.com/api/v3
VIRUSTOTAL_RATE_LIMIT_PER_MINUTE=4
VIRUSTOTAL_DAILY_LIMIT=500
VIRUSTOTAL_CIRCUIT_BREAKER_TIMEOUT=300
# Database Configuration
DATABASE_PATH=./data/aliensec.db
DATABASE_ENCRYPTION_KEY=your_encryption_key_here
DATABASE_TIMEOUT=5000Hinweis: Die VirusTotal-AGB verbieten die Verwendung mehrerer API-Schlüssel zur Umgehung von Ratenbegrenzungen. Diese Implementierung respektiert diese Grenzen und verwendet mehrere Schlüssel nur für Redundanz.
4. (Optional) SQLite-Verschlüsselungsabhängigkeiten installieren
Für verschlüsselte Datenbankunterstützung unter Linux/macOS:
# Ubuntu/Debian
sudo apt-get install build-essential
# macOS
xcode-select --installVerwendung
Entwicklungsmodus
Server im Entwicklungsmodus mit automatischem Neuladen ausführen:
npm run devProduktionsmodus
Server bauen und ausführen:
npm run build
npm startVerwendung mit MCP-Clients
Der Server kommuniziert über stdio (Standard-Eingabe/Ausgabe). Zur Verwendung mit einem MCP-Client:
# Direct execution
node dist/index.js
# Or using the npm script
npm startBeispiel für MCP-Client-Integration
import { Client } from '@modelcontextprotocol/client';
import { StdioClientTransport } from '@modelcontextprotocol/client/stdio';
const client = new Client({ name: 'my-client', version: '1.0.0' });
const transport = new StdioClientTransport({
command: 'node',
args: ['dist/index.js'],
});
await client.connect(transport);
// Call a scan tool
const result = await client.callTool({
name: 'scan_macos_pkg',
arguments: {
target: '192.168.1.100',
useVirusTotal: true,
},
});
console.log(result.content);Verfügbare Tools
Scan-Tools (5)
Tool | Beschreibung | Parameter |
| Generischer Endpunkt-Scanner |
|
| macOS-PKG-Installer scannen |
|
| Windows-Endpunkt scannen |
|
| Debian/APT-Endpunkt scannen |
|
| Redhat/RPM-Endpunkt scannen |
|
VirusTotal-Tools (2)
Tool | Beschreibung | Parameter |
| Ressource mit VirusTotal scannen |
|
| Vorhandene VirusTotal-Analyse abrufen |
|
AlienVault-OTX-Tools (3)
Tool | Beschreibung | Parameter |
| Bootstrap-Befehl für Flavor abrufen |
|
| Alle Bootstrap-URLs abrufen | - |
| AlienVault-OTX-Pulse durchsuchen |
|
Datenbank-Tools (4)
Tool | Beschreibung | Parameter |
| Scan-Statistiken abrufen | - |
| Aktuelle Scans abrufen |
|
| Circuit-Breaker-Statistiken abrufen | - |
| API-Statistiken abrufen | - |
System-Tools (1)
Tool | Beschreibung | Parameter |
| Server-Health-Status abrufen | - |
Bootstrap-Befehle
Der Server stellt vorkonfigurierte Bootstrap-Befehle für jeden Endpunkt-Flavor bereit. <api-key> unten ist Ihr aufgelöster ALIENVAULT_API_KEY-Wert, und TARGET=<target> wird nur eingefügt, wenn ein target angegeben ist.
macOS-PKG-Installer
API_KEY=<api-key> [TARGET=<target>] bash -c "$(curl -s https://api.agent.otxb.io/osquery-api-otx/bootstrap?flavor=pkg)"Windows PowerShell
[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]::Tls12; API_KEY=<api-key> (new-object Net.WebClient).DownloadString("https://api.agent.otxb.io/osquery-api-otx/bootstrap?flavor=powershell") | iex; install_agent -apikey <api-key> [-target <target>]Debian APT
API_KEY=<api-key> [TARGET=<target>] bash -c "$(curl -s https://api.agent.otxb.io/osquery-api-otx/bootstrap?flavor=apt)"Redhat RPM
API_KEY=<api-key> [TARGET=<target>] bash -c "$(curl -s https://api.agent.otxb.io/osquery-api-otx/bootstrap?flavor=rpm)"Projektstruktur
aliensec-mcp-server/
├── src/
│ ├── config/
│ │ └── index.ts # Environment configuration & validation
│ ├── core/
│ │ ├── alienVault.ts # AlienVault OTX API client
│ │ └── virusTotal.ts # VirusTotal API client
│ ├── database/
│ │ └── index.ts # SQLite database with repositories
│ ├── types/
│ │ └── index.ts # TypeScript type definitions
│ └── index.ts # Main MCP server entry point
├── package.json
├── tsconfig.json
├── .env.example
├── .gitignore
├── eslint.config.js
├── .prettierrc
└── README.mdArchitektur
Schichtenarchitektur
┌─────────────────────────────────────┐
│ MCP Server Layer │ ← src/index.ts
├─────────────────────────────────────┤
│ Core Service Layer │ ← src/core/
├─────────────────────────────────────┤
│ Data Access Layer │ ← src/database/
├─────────────────────────────────────┤
│ Configuration Layer │ ← src/config/
├─────────────────────────────────────┤
│ Type Definitions │ ← src/types/
└─────────────────────────────────────┘Wichtige Entwurfsmuster
Singleton-Muster: Datenbank, AlienVault-Client, VirusTotal-Client
Repository-Muster: ScanRepository, CircuitBreakerRepository, APILogRepository
Circuit-Breaker-Muster: Automatische API-Schlüssel-Rotation bei Fehlern
Token-Bucket-Rate-Limiter: Ratenbegrenzung für die VirusTotal-API
Factory-Muster: MCP-Server-Erstellung mit Dependency Injection
Strategie-Muster: Verschiedene Scan-Flavors mit gemeinsamer Schnittstelle
Datenbankschema
Der Server verwendet SQLite mit den folgenden Tabellen:
scan_records
Speichert alle Scan-Ergebnisse mit Befunden, VirusTotal-Daten und Zeitstempeln.
circuit_breaker_events
Verfolgt Circuit-Breaker-Zustandsänderungen für API-Schlüssel.
api_logs
Protokolliert alle API-Anfragen mit Antwortzeiten, Statuscodes und Fehlern.
schema_version
Verfolgt die Datenbankschema-Version für Migrationen.
Fehlerbehandlung
Benutzerdefinierte Fehlerklassen
AlienSecError: Basis-Fehlerklasse mit Code und statusCode
AlienVaultAPIError: AlienVault-spezifische Fehler
VirusTotalAPIError: VirusTotal-spezifische Fehler mit Ratenbegrenzungs-Erkennung
DatabaseError: Datenbankbezogene Fehler
ConfigurationError: Konfigurationsvalidierungsfehler
Fehlerantwortformat
Tool-Fehler geben die Standard-MCP-Ergebnisform mit isError: true zurück. Die menschenlesbare Nachricht ist der erste Inhaltsblock; error enthält die JSON-stringifizierten Kontextdaten (Scan-ID, Flavor, Ziel usw.), die den Fehler ausgelöst haben:
{
"content": [
{ "type": "text", "text": "Scan failed: <error message>" }
],
"isError": true,
"error": "{\n \"scanId\": \"...\",\n \"flavor\": \"pkg\",\n \"target\": \"...\",\n \"error\": \"<error message>\"\n}"
}Protokollierung
Der Server verwendet Pino für strukturierte Protokollierung mit den folgenden Ebenen:
error: Kritische Fehler
warn: Warnungen und potenzielle Probleme
info: Normale Vorgänge und Statusaktualisierungen
debug: Detaillierte Debug-Informationen
trace: Sehr ausführliche Protokollierung für die Entwicklung
Protokolle werden automatisch geschwärzt, um zu verhindern, dass sensible Daten (API-Schlüssel) protokolliert werden.
Ratenbegrenzung & Circuit Breaker
VirusTotal-Ratenbegrenzung
Token-Bucket-Algorithmus: Gleichmäßige Ratenbegrenzung
Konfigurierbare Grenzen: Über Umgebungsvariablen festlegbar
Automatisches Warten: Option zum Warten bei Ratenbegrenzung
Circuit Breaker: Blockiert automatisch API-Schlüssel, die wiederholt fehlschlagen
Circuit-Breaker-Konfiguration
Fehlerschwelle: 5 aufeinanderfolgende Fehler
Reset-Timeout: 300 Sekunden (5 Minuten)
Halb-offener Zustand: Test mit 1 Anfrage vor vollständigem Wiederöffnen
AGB-Konformität
Die Implementierung respektiert die Nutzungsbedingungen von VirusTotal:
Mehrere API-Schlüssel dienen der Redundanz, nicht der Umgehung von Grenzen
Jeder API-Schlüssel respektiert individuelle Ratenbegrenzungen
Der Circuit Breaker verhindert schnelle Wiederholungsversuche bei Fehlern
Die tägliche Anfragezählung verhindert die Erschöpfung des Kontingents
Entwicklung
Tests ausführen
# Run all tests
npm test
# Run tests in watch mode
npm run test:watch
# Run with coverage
npx vitest run --coverageLinting & Formatierung
# Run linting
npm run lint
# Auto-fix linting issues
npm run lint:fix
# Format code
npm run formatTypprüfung
npm run typecheckBuild-Überprüfung
# Clean build
npm run clean
npm run build
# Check build output
ls -la dist/Umgebungsvariablen
Variable | Erforderlich | Standard | Beschreibung |
| Ja | - | AlienVault-OTX-API-Schlüssel |
| Nein |
| Basis-URL der AlienVault-API |
| Nein |
| Standardregion für Agents |
| Nein | `` | Durch Kommas getrennte VirusTotal-API-Schlüssel |
| Nein |
| Basis-URL der VirusTotal-API |
| Nein |
| Ratenlimit pro Minute |
| Nein |
| Tägliches Anforderungslimit |
| Nein |
| Timeout des Circuit Breakers (Sekunden) |
| Nein |
| Pfad zur SQLite-Datenbank |
| Nein | - | Datenbank-Verschlüsselungsschlüssel |
| Nein |
| Timeout für Datenbankverbindung |
| Nein |
| Servername |
| Nein |
| Serverversion |
| Nein |
| Debug-Modus aktivieren |
| Nein |
| Protokollstufe (error, warn, info, debug, trace) |
Sicherheitsüberlegungen
Datenschutz
Datenbankverschlüsselung: Verwenden Sie
DATABASE_ENCRYPTION_KEYzum Verschlüsseln sensibler Daten im RuhezustandAPI-Schlüsselsicherheit: API-Schlüssel werden niemals protokolliert; verwenden Sie Umgebungsvariablen oder sichere Tresore
Speichersicherheit: Sensible Zeichenfolgen werden vor der Speicherung in Circuit-Breaker- und API-Protokolltabellen mit PBKDF2 (120.000 Iterationen) gehasht
Netzwerksicherheit
Nur HTTPS: Die gesamte API-Kommunikation verwendet HTTPS
Zertifikatsvalidierung: Die TLS-Zertifikatsvalidierung ist standardmäßig aktiviert
User-Agent: Ein benutzerdefinierter User-Agent identifiziert die Serverversion
Ratenbegrenzung
Clientseitige Ratenbegrenzung: Verhindert die Überlastung externer APIs
Circuit Breaker: Verhindert kaskadierende Fehler
Gegendruck: Automatisches Warten bei Ratenbegrenzung
Leistung
Optimierungen
Verbindungspooling: Datenbankverbindungen werden wiederverwendet
Lazy Loading: Repositories werden bei Bedarf erstellt
Indizierte Abfragen: Datenbanktabellen verfügen über geeignete Indizes
Caching: API-Schlüssel-Hashes werden für Circuit-Breaker-Prüfungen zwischengespeichert
Async/Await: Nicht blockierende E/A-Operationen
Benchmarks
Scan-Anfrage: ~100-500ms (simuliert)
VirusTotal-Anfrage: ~200-1000ms (netzwerkabhängig)
Datenbankoperationen: <10ms (lokales SQLite)
Fehlerbehebung
Häufige Probleme
Datenbankverbindung fehlgeschlagen
Error: Failed to connect to databaseLösung: Stellen Sie sicher, dass das Datenverzeichnis existiert und Schreibrechte besitzt:
mkdir -p data
chmod 755 dataFehlender ALIENVAULT_API_KEY
Missing required environment variables:
- ALIENVAULT_API_KEYLösung: Setzen Sie die Umgebungsvariable:
export ALIENVAULT_API_KEY=your_api_key_here
# or add to .env fileVirusTotal-Ratenlimit überschritten
Error: Rate limit exceeded for API key 0Lösung:
Warten Sie, bis sich das Ratenlimit zurückgesetzt hat (Standard: 4 Anfragen/Minute)
Fügen Sie weitere API-Schlüssel hinzu (durch Kommas getrennt in VIRUSTOTAL_API_KEYS)
Verwenden Sie den Parameter
wait: true, um automatisch zu warten
Circuit Breaker offen
Error: API key 0 is blocked by circuit breakerLösung: Warten Sie, bis das Timeout des Circuit Breakers abläuft (Standard: 5 Minuten). Der Circuit Breaker wird nach dem Timeout automatisch wieder geöffnet.
Debug-Modus
Aktivieren Sie die Debug-Protokollierung für eine detaillierte Fehlerbehebung:
DEBUG=true LOG_LEVEL=debug npm run devMitwirken
Pull Requests
Forken Sie das Repository
Erstellen Sie einen Feature-Branch (
git checkout -b feature/amazing-feature)Committen Sie Ihre Änderungen (
git commit -m 'Add amazing feature')Pushen Sie den Branch (
git push origin feature/amazing-feature)Öffnen Sie einen Pull Request
Richtlinien für Commit-Nachrichten
Verwenden Sie das Conventional Commits-Format
Präfix mit Typ:
feat:,fix:,docs:,style:,refactor:,test:,chore:Halten Sie die Betreffzeile unter 72 Zeichen
Fügen Sie bei Bedarf eine detaillierte Beschreibung im Textkörper hinzu
Code-Review
Alle PRs erfordern die Genehmigung von mindestens einem Maintainer
Die CI/CD-Pipeline muss erfolgreich sein (Lint, Typprüfung, Tests)
Der Code muss den vorhandenen Mustern und Stilen folgen
Lizenz
Dieses Projekt ist unter der MIT-Lizenz lizenziert – siehe die Datei LICENSE für Details.
Danksagungen
Model Context Protocol: https://modelcontextprotocol.io
AlienVault OTX: https://otx.alienvault.com
VirusTotal: https://www.virustotal.com
TypeScript: https://www.typescriptlang.org
better-sqlite3-multiple-ciphers: https://github.com/m4heshd/better-sqlite3-multiple-ciphers
Referenzen
Mit ❤️ für die Sicherheits-Community erstellt
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityCmaintenanceProvides AI agents with 37 OSINT tools and 12 data sources to perform unified reconnaissance, domain analysis, and attack surface mapping. It enables agents to query, correlate, and reason across platforms like Shodan, VirusTotal, and Censys in parallel.3768144MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to interface with Velociraptor for digital forensics and incident response tasks, including file/memory scans, remediation actions, and artifact collection across multiple operating systems.1MIT
- AlicenseAqualityAmaintenanceEnables AI agents to scan code for security vulnerabilities using multiple static analysis tools, with support for filtering, deduplication, and CI/CD integration.272MIT
- AlicenseAqualityBmaintenanceEnables assistants to analyze files and URLs for malware by integrating with security services like VirusTotal and ANY.RUN, returning threat reports.20MIT
Related MCP Connectors
Real-time threat intel for AI agents: 890K+ IOCs incl. prompt-injection & AI-skill threats
CVE lookups (NVD) and dependency-manifest audits (OSV) for AI agents. No API keys.
CVE lookups (NVD) and dependency-manifest audits (OSV) for AI agents. No API keys.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/VRIL-LABS/aliensec-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server