UNPKG

stellar-cyber-mcp-agents

Version:

Model Context Protocol (MCP) server for Stellar Cyber security operations with specialized multi-agent analysis capabilities

642 lines (504 loc) โ€ข 18 kB
# Stellar Cyber MCP Agents A sophisticated Model Context Protocol (MCP) multi-agent system for Stellar Cyber security operations, featuring specialized agents for investigation, correlation, network analysis, and workflow orchestration. ## โš ๏ธ Security Notice **IMPORTANT**: Before using this project, please read [docs/SECURITY.md](docs/SECURITY.md) for critical security setup instructions, especially regarding API token management. ## ๐Ÿ—๏ธ Architecture The system implements a Hub-and-Spoke architecture with the following components: ### Core Components - **Hub Agent**: Central orchestration and workflow management - **Investigation Agent**: Comprehensive case investigation and analysis - **Correlation Agent**: Cross-case correlation and campaign detection - **Network Analysis Agent**: Advanced network traffic analysis and threat detection - **Agent Registry**: Service discovery and health monitoring - **Communication Channel**: Inter-agent messaging with priority queues ### Features - โœ… **Distributed Agent Architecture**: Each agent runs independently with proper lifecycle management - โœ… **Intelligent Workflow Orchestration**: Hub agent coordinates complex multi-step workflows - โœ… **Advanced Case Correlation**: Find related cases using observables, temporal, and behavioral analysis - โœ… **Network Threat Detection**: Comprehensive network analysis including lateral movement, C2 detection, and data exfiltration - โœ… **Robust Communication**: Priority-based messaging with retry logic and timeout handling - โœ… **Health Monitoring**: Real-time agent health checks and performance metrics - โœ… **Event-Driven Architecture**: Asynchronous event processing and broadcasting ## ๐Ÿš€ Quick Start ### Prerequisites - Node.js >= 18.0.0 - Access to Stellar Cyber API - Claude Desktop (for MCP integration) or other MCP client ### Installation #### Option 1: NPX (Recommended - No Installation Required) ```bash # Use directly with npx - always gets latest version npx stellar-cyber-mcp-agents@latest stellar-cyber-mcp-server # Or specify a specific server variant npx stellar-cyber-mcp-agents@latest stellar-cyber-mcp-full npx stellar-cyber-mcp-agents@latest stellar-cyber-mcp-minimal npx stellar-cyber-mcp-agents@latest stellar-cyber-mcp-simple ``` #### Option 2: Global Installation (For frequent usage) ```bash # Install globally for MCP client integration npm install -g stellar-cyber-mcp-agents # Then use the commands directly stellar-cyber-mcp-server stellar-cyber-mcp-full stellar-cyber-mcp-minimal ``` #### Option 3: Development Installation ```bash # Clone the repository git clone https://github.com/tsanford01/stellar-cyber-mcp-agents.git cd stellar-cyber-mcp-agents # Install dependencies npm install # Build the project npm run build ``` ### Configuration 1. Copy the environment template: ```bash cp .env.example .env ``` 2. Edit `.env` with your Stellar Cyber credentials: ```env # Stellar Cyber API Configuration STELLAR_API_URL=https://your-instance.stellarcyber.cloud STELLAR_API_TOKEN=your_api_token_here # Optional: Test case ID for demo TEST_CASE_ID=your_test_case_id # Logging Configuration LOG_LEVEL=info ``` **โš ๏ธ Security Warning**: Never commit the `.env` file to version control. It contains sensitive API credentials. **๐Ÿ“ Implementation Status**: โœ… **Fully Functional** - All TypeScript compilation issues have been resolved! The project now includes a complete multi-agent architecture with multiple MCP server variants to suit different needs. ### Running the System #### MCP Server Usage (Recommended) ```bash # Start the full-featured MCP server stellar-cyber-mcp-server # Or start the minimal server (fewer tools, faster startup) stellar-cyber-mcp-minimal # Or start the simple server (basic functionality) stellar-cyber-mcp-simple ``` #### Development Mode ```bash # Development mode (with TypeScript compilation) npm run dev # Run specific MCP server variants npm run mcp:start # Full server npm run mcp:minimal # Minimal server npm run mcp:simple # Simple server # Demo mode with examples npm run demo ``` ## ๐Ÿ”Œ MCP Client Integration ### Claude Desktop Integration #### Option 1: NPX Configuration (Recommended) No installation required - uses the latest version directly from npm. **Configuration:** ```json { "mcpServers": { "stellar-cyber": { "command": "npx", "args": ["stellar-cyber-mcp-agents@latest", "stellar-cyber-mcp-server"], "env": { "STELLAR_API_URL": "https://your-instance.stellarcyber.cloud", "STELLAR_API_TOKEN": "your-api-token-here", "LOG_LEVEL": "info" } } } } ``` #### Option 2: Global Installation Configuration 1. Install the package globally: ```bash npm install -g stellar-cyber-mcp-agents ``` 2. Add to your Claude Desktop configuration file: ```json { "mcpServers": { "stellar-cyber": { "command": "stellar-cyber-mcp-server", "args": [], "env": { "STELLAR_API_URL": "https://your-instance.stellarcyber.cloud", "STELLAR_API_TOKEN": "your-api-token-here", "LOG_LEVEL": "info" } } } } ``` **Configuration File Locations:** - **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json` - **Windows**: `%APPDATA%\Claude\claude_desktop_config.json` **Restart Claude Desktop** after making configuration changes to load the MCP server. ### Server Variants Choose the right server variant for your needs: - **`stellar-cyber-mcp-server`** (Working): Core Stellar Cyber integration with essential tools (recommended for most users) - **`stellar-cyber-mcp-minimal`** (Minimal): Streamlined version with essential tools only, faster startup - **`stellar-cyber-mcp-simple`** (Simple): Basic case investigation features for lightweight usage - **Full Multi-Agent System**: Available in codebase with complete orchestration capabilities See [docs/claude_desktop_config_variants.json](docs/claude_desktop_config_variants.json) for complete configuration examples. ### Available MCP Tools #### Core Stellar Cyber Tools (Available in Working Server) - `get_case_details` - Retrieve detailed information about a specific case - `search_cases` - Search for cases using various criteria and filters - `get_system_status` - Check Stellar Cyber API connection and system health #### Advanced Multi-Agent Tools (Available in Full Architecture) The complete multi-agent system includes all the advanced capabilities: - **Investigation Agent**: Case investigation, timeline analysis, observable analysis - **Correlation Agent**: Case correlation, campaign detection, similarity analysis - **Network Analysis Agent**: Network activity analysis, threat detection, lateral movement detection - **Hub Agent**: Workflow orchestration, agent coordination, distributed request handling - **Malware Analysis Agent**: Malware behavior analysis, artifact examination - **Credential Analysis Agent**: Credential security analysis, breach detection - **Campaign Detection Agent**: Advanced threat campaign identification All agents are **fully functional** and compile successfully with complete TypeScript support. ## ๐Ÿ“Š System Components ### 1. Hub Agent (`src/agents/hub-agent.ts`) The central orchestration agent that coordinates workflows across multiple agents. **Capabilities:** - `orchestrate_workflow`: Execute complex multi-step workflows - `find_agents`: Discover agents by capability and criteria - `distribute_request`: Load-balance requests across agents - `get_system_status`: Retrieve system health and metrics **Features:** - Workflow definition and execution - Load balancing (round-robin, least-busy, random) - Agent discovery and selection - Retry logic with exponential backoff - Performance monitoring ### 2. Investigation Agent (`src/agents/investigation-agent.ts`) Comprehensive case investigation and analysis agent. **Capabilities:** - `investigate_case`: Perform full case investigation - `get_case_details`: Retrieve case information - `analyze_case_observables`: Analyze IOCs and observables - `get_case_timeline`: Build case timeline - `search_cases`: Search for cases by criteria **Features:** - Multi-source data aggregation - Threat intelligence integration - Workflow suggestions - Risk assessment - Artifact analysis ### 3. Correlation Agent (`src/agents/correlation-agent.ts`) Advanced case correlation and campaign detection agent. **Capabilities:** - `correlate_cases`: Find related cases using multiple methods - `find_related_cases`: Discover case relationships - `detect_campaigns`: Identify threat campaigns - `analyze_case_similarity`: Compare case similarities **Features:** - Observable-based correlation - Temporal proximity analysis - Behavioral pattern matching - Campaign detection algorithms - Configurable correlation rules ### 4. Network Analysis Agent (`src/agents/network-agent.ts`) Comprehensive network traffic analysis and threat detection agent. **Capabilities:** - `analyze_network_activity`: Full network activity analysis - `detect_lateral_movement`: Identify lateral movement patterns - `analyze_data_exfiltration`: Detect data exfiltration attempts - `detect_c2_communication`: Find C2 communication patterns - `get_network_topology`: Build network topology maps **Features:** - Traffic pattern analysis - Threat hunting capabilities - Protocol anomaly detection - Endpoint behavior analysis - Network visualization ## ๐Ÿ”ง API Usage ### Starting the System ```typescript import { MultiAgentOrchestrator, createDefaultConfig } from './orchestrator.js'; const config = createDefaultConfig(); const orchestrator = new MultiAgentOrchestrator(config); await orchestrator.start(); ``` ### Case Investigation ```typescript // Investigate a specific case const investigation = await orchestrator.investigateCase('case-123', { includeObservables: true, includeTimeline: true, generateRecommendations: true }); console.log('Investigation Results:', { caseId: investigation.caseId, findings: investigation.findings.length, recommendations: investigation.recommendations.length, riskScore: investigation.summary.riskScore }); ``` ### Case Correlation ```typescript // Find related cases const correlation = await orchestrator.correlateCase('case-123', 'observables'); console.log('Related Cases:', correlation.length); ``` ### Network Analysis ```typescript // Analyze network activity const networkAnalysis = await orchestrator.analyzeNetwork('case-123', { start: '2024-01-01T00:00:00Z', end: '2024-01-02T00:00:00Z' }); console.log('Network Analysis:', { totalConnections: networkAnalysis.summary.totalConnections, suspiciousConnections: networkAnalysis.summary.suspiciousConnections, riskLevel: networkAnalysis.summary.riskLevel }); ``` ### Workflow Execution ```typescript // Execute a predefined workflow const executionId = await orchestrator.executeWorkflow('case-investigation', { caseId: 'case-123', includeCorrelation: true, includeNetworkAnalysis: true }); console.log('Workflow started:', executionId); ``` ## ๐Ÿ“ˆ Monitoring and Metrics ### System Status ```typescript const status = await orchestrator.getStatus(); console.log('System Status:', { status: status.status, uptime: status.uptime, totalAgents: status.agents.total, healthyAgents: status.agents.healthy, totalRequests: status.performance.totalRequests }); ``` ### Agent Metrics ```typescript const metrics = await orchestrator.getAgentMetrics(); console.log('Agent Metrics:', { registryStats: metrics.registry, channelStats: metrics.channel, systemMetrics: metrics.system }); ``` ### Event Monitoring ```typescript // Monitor agent events orchestrator.on('agent_event', (event) => { console.log('Agent Event:', event.type, 'from', event.sourceAgentId.type); }); // Monitor critical agent states orchestrator.on('agent_critical', (status) => { console.error('Agent Critical:', status.id.type); }); // Monitor metrics collection orchestrator.on('metrics_collected', (metrics) => { console.log('Metrics Update:', metrics.registry.totalRequests); }); ``` ## ๐Ÿงช Testing ### Unit Tests ```bash # Run all tests npm test # Run tests in watch mode npm run test:watch # Run tests with coverage npm run test:coverage ``` ### Integration Testing ```bash # Test with actual Stellar Cyber API export STELLAR_API_URL=https://poc.stellarcyber.cloud export STELLAR_API_TOKEN=your_token export TEST_CASE_ID=actual_case_id npm run demo ``` ## ๐Ÿ”’ Security ### Authentication The system uses JWT-based authentication with automatic token refresh: ```typescript // Token refresh is handled automatically const response = await agent.makeRequest('GET', '/api/v1/cases'); ``` ### Error Handling Comprehensive error handling with retry logic: ```typescript try { const result = await agent.executeWithRetry(request, { maxRetries: 3, backoffMultiplier: 2, initialDelay: 1000 }); } catch (error) { logger.error('Request failed after retries', { error }); } ``` ## ๐Ÿ“ Configuration ### Environment Variables ```env # Required STELLAR_API_URL=https://poc.stellarcyber.cloud STELLAR_API_TOKEN=your_api_token # Optional LOG_LEVEL=info TEST_CASE_ID=test_case_id ``` ### Agent Configuration ```typescript const config = { stellar: { apiUrl: 'https://poc.stellarcyber.cloud', apiToken: 'your_token' }, agents: { hub: { enabled: true, config: { maxConcurrentRequests: 100, loadBalancing: 'least-busy' } }, investigation: { enabled: true, config: { requestTimeout: 60000, maxRetries: 3 } }, correlation: { enabled: true, config: { correlationThreshold: 0.7, enableCampaignDetection: true } }, network: { enabled: true, config: { analysisTimeout: 300000, enableDeepPacketAnalysis: true } } } }; ``` ## ๐Ÿ› ๏ธ Development ### Project Structure ``` src/ โ”œโ”€โ”€ agents/ # Agent implementations โ”‚ โ”œโ”€โ”€ hub-agent.ts โ”‚ โ”œโ”€โ”€ investigation-agent.ts โ”‚ โ”œโ”€โ”€ correlation-agent.ts โ”‚ โ””โ”€โ”€ network-agent.ts โ”œโ”€โ”€ core/ # Core framework โ”‚ โ”œโ”€โ”€ base-agent.ts โ”‚ โ”œโ”€โ”€ agent-registry.ts โ”‚ โ””โ”€โ”€ communication-channel.ts โ”œโ”€โ”€ types/ # Type definitions โ”‚ โ””โ”€โ”€ agent.ts โ”œโ”€โ”€ utils/ # Utilities โ”‚ โ””โ”€โ”€ logger.ts โ”œโ”€โ”€ orchestrator.ts # Main orchestrator โ””โ”€โ”€ index.ts # Entry point scripts/ # Demo and test scripts docs/ # Documentation โ”œโ”€โ”€ SECURITY.md # Security guidelines โ”œโ”€โ”€ SYSTEM_OVERVIEW.md โ””โ”€โ”€ APT-Killchain-5WH-Analysis-Report.md ``` ### Adding New Agents 1. Create agent class extending `BaseAgent` 2. Implement required abstract methods 3. Define agent capabilities and metadata 4. Register in orchestrator 5. Add to configuration ### Extending Capabilities ```typescript // Add new capability to existing agent const newCapability: AgentCapability = { name: 'new_capability', description: 'Description of new capability', inputSchema: { /* schema */ }, outputSchema: { /* schema */ } }; // Handle in agent's handleRequest method protected async handleRequest(request: AgentRequest): Promise<any> { switch (request.capability) { case 'new_capability': return await this.handleNewCapability(request.payload); // ... other cases } } ``` ## ๐Ÿ“– Documentation ### Agent Lifecycle 1. **Initialize**: Set up agent resources and connections 2. **Start**: Begin accepting requests and start monitoring 3. **Running**: Process requests and maintain health 4. **Stop**: Gracefully shut down and clean up resources 5. **Destroy**: Final cleanup and resource deallocation ### Workflow Definition ```typescript const workflow: WorkflowDefinition = { id: 'custom-workflow', name: 'Custom Analysis Workflow', steps: [ { id: 'step1', agentType: 'investigation', capability: 'investigate_case', input: { caseId: '${input.caseId}' } }, { id: 'step2', agentType: 'correlation', capability: 'find_related_cases', input: { caseId: '${input.caseId}' }, condition: '${step1.findings.length} > 0' } ] }; ``` ## ๐Ÿค Contributing 1. Fork the repository 2. Create a feature branch 3. Make your changes 4. Add tests for new functionality 5. Run the test suite 6. Submit a pull request ## ๐Ÿ“„ License This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details. ## ๐Ÿ†˜ Support For questions, issues, or contributions: 1. Check the [Issues](../../issues) page 2. Create a new issue with detailed description 3. Include relevant logs and configuration 4. Provide steps to reproduce any problems ## ๐Ÿš€ Current Capabilities & Future Enhancements ### โœ… Implemented Features - [x] **Malware Analysis Agent** - Fully implemented with behavior analysis - [x] **Credential Analysis Agent** - Complete with breach detection and password analysis - [x] **Campaign Detection Agent** - Advanced threat campaign identification - [x] **Multi-Agent Architecture** - Hub-and-spoke orchestration system - [x] **Workflow Orchestration** - Complex multi-step automated workflows - [x] **Network Analysis** - Comprehensive network threat detection - [x] **Case Correlation** - Advanced case relationship detection - [x] **MCP Integration** - Multiple server variants for different use cases - [x] **TypeScript Support** - Complete type safety and compilation ### ๐Ÿ”ฎ Future Enhancements - [ ] Machine Learning Integration - [ ] Distributed Deployment Support - [ ] REST API Interface - [ ] Web UI Dashboard - [ ] Advanced Visualization - [ ] Enhanced Threat Intelligence Integration - [ ] Custom Rule Engine - [ ] Real-time Event Streaming - [ ] Advanced Reporting and Analytics