UNPKG

stellar-cyber-mcp-agents

Version:

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

152 lines 4.5 kB
import { BaseAgent } from '../core/base-agent.js'; import { AgentId, AgentMetadata, AgentRegistry, AgentCommunicationChannel, AgentLogger, AgentMetrics, AgentRequest, AgentContext, AgentHealth } from '../types/agent.js'; export interface CampaignDetectionRequest { caseId?: string; timeRange: { start: string; end: string; }; indicators?: { ips?: string[]; domains?: string[]; hashes?: string[]; emails?: string[]; }; options?: { minCaseThreshold?: number; confidenceThreshold?: number; includeHistorical?: boolean; correlationDepth?: 'shallow' | 'medium' | 'deep'; }; } export interface CampaignIndicator { type: 'ip' | 'domain' | 'hash' | 'email' | 'user_agent' | 'ttps' | 'infrastructure'; value: string; frequency: number; firstSeen: string; lastSeen: string; confidence: number; cases: string[]; tags: string[]; sources: string[]; } export interface CampaignTTP { id: string; name: string; description: string; mitre: { tactic: string; technique: string; subtechnique?: string; }; frequency: number; cases: string[]; confidence: number; evidence: string[]; } export interface CampaignCluster { id: string; name: string; description: string; confidence: number; cases: Array<{ caseId: string; similarity: number; sharedIndicators: number; timeline: string; }>; indicators: CampaignIndicator[]; ttps: CampaignTTP[]; timeline: Array<{ timestamp: string; event: string; caseId: string; details: string; }>; attribution?: { actor?: string; group?: string; confidence: number; evidence: string[]; }; infrastructure: { domains: Array<{ domain: string; role: string; firstSeen: string; }>; ips: Array<{ ip: string; role: string; firstSeen: string; }>; registrationPatterns: string[]; }; } export interface CampaignDetectionResult { analysisId: string; timestamp: string; summary: { totalCases: number; clustersFound: number; highConfidenceClusters: number; uniqueIndicators: number; timespan: string; status: 'COMPLETED' | 'FAILED' | 'PARTIAL'; }; clusters: CampaignCluster[]; globalIndicators: Array<{ indicator: CampaignIndicator; prevalence: number; riskScore: number; }>; recommendations: Array<{ id: string; priority: 'CRITICAL' | 'HIGH' | 'MEDIUM' | 'LOW'; category: string; description: string; rationale: string; actions: string[]; clusterId?: string; }>; metadata: { analysisTime: string; casesAnalyzed: number; correlationMethod: string; algorithmVersion: string; }; } export declare class CampaignDetectionAgent extends BaseAgent { protected readonly agentId: AgentId; private accessToken; private tokenExpiresAt; private readonly config; constructor(metadata: AgentMetadata, registry: AgentRegistry, channel: AgentCommunicationChannel, logger: AgentLogger, metrics: AgentMetrics, config: any); private performTokenRefresh; detectCampaigns(request: CampaignDetectionRequest): Promise<CampaignDetectionResult>; private gatherCasesForAnalysis; private extractIndicators; private mapObservableType; private calculateIndicatorConfidence; private performClustering; private calculateSimilarityMatrix; private calculateCaseSimilarity; private buildCluster; private enrichClustersWithTTPs; private extractTTPs; private identifyTechniques; private buildTimeline; private analyzeInfrastructure; private analyzeRegistrationPatterns; private analyzeGlobalIndicators; private calculateIndicatorRiskScore; private generateCampaignRecommendations; private calculateTimespan; protected onInitialize(): Promise<void>; protected onStart(): Promise<void>; protected onStop(): Promise<void>; protected onDestroy(): Promise<void>; protected onHealthCheck(): Promise<AgentHealth>; protected handleRequest(request: AgentRequest, context: AgentContext): Promise<any>; } //# sourceMappingURL=campaign-agent.d.ts.map