@@ -10,29 +10,32 @@ MCP Nexus is built with a modular architecture designed for Windows crash dump a
1010
1111### Core Architecture
1212
13- ```
14- ┌─────────────────────────────────────────────────────────────┐
15- │ AI Integration Layer │
16- ├─────────────────────────────────────────────────────────────┤
17- │ MCP Protocol Handler │ Real-time Notifications │ AI │
18- │ │ │ Client│
19- └─────────────────────────────────────────────────────────────┘
20- │
21- ┌─────────────────────────────────────────────────────────────┐
22- │ Analysis Engine Core │
23- ├─────────────────────────────────────────────────────────────┤
24- │ Crash Analysis │ Memory Analysis │ Thread Analysis │
25- │ Performance │ Pattern │ Workflow │
26- │ Analysis │ Recognition │ Engine │
27- └─────────────────────────────────────────────────────────────┘
28- │
29- ┌─────────────────────────────────────────────────────────────┐
30- │ Microsoft Debugging Tools Integration │
31- ├─────────────────────────────────────────────────────────────┤
32- │ WinDBG/CDB Wrapper │ Symbol Resolution │ Command Queue │
33- │ Process Management │ Error Handling │ Result Cache │
34- └─────────────────────────────────────────────────────────────┘
35- ```
13+ #### AI Integration Layer
14+ | Component | Description |
15+ | -----------| -------------|
16+ | ** MCP Protocol Handler** | Handles Model Context Protocol communication |
17+ | ** Real-time Notifications** | Live progress updates during analysis |
18+ | ** AI Client** | Interface for AI-powered analysis requests |
19+
20+ #### Analysis Engine Core
21+ | Component | Description |
22+ | -----------| -------------|
23+ | ** Crash Analysis** | Core crash dump processing and analysis |
24+ | ** Memory Analysis** | Memory corruption and leak detection |
25+ | ** Thread Analysis** | Thread state and deadlock analysis |
26+ | ** Performance Analysis** | Performance bottleneck identification |
27+ | ** Pattern Recognition** | Common crash pattern detection |
28+ | ** Workflow Engine** | Orchestrates analysis workflows |
29+
30+ #### Microsoft Debugging Tools Integration
31+ | Component | Description |
32+ | -----------| -------------|
33+ | ** WinDBG/CDB Wrapper** | Interface to Microsoft debugging tools |
34+ | ** Symbol Resolution** | Symbol loading and resolution |
35+ | ** Command Queue** | Asynchronous command execution |
36+ | ** Process Management** | Process attachment and control |
37+ | ** Error Handling** | Robust error recovery and logging |
38+ | ** Result Cache** | Cached analysis results for performance |
3639
3740### Component Details
3841
@@ -46,7 +49,7 @@ MCP Nexus is built with a modular architecture designed for Windows crash dump a
4649- ** Memory Analysis** : Heap corruption, memory leaks, and allocation analysis
4750- ** Thread Analysis** : Deadlock detection and synchronization issue analysis
4851- ** Performance Analysis** : CPU usage, resource exhaustion, and bottleneck identification
49- - ** Pattern Recognition** : AI-powered identification of common crash patterns
52+ - ** Pattern Recognition** : Identification of common crash patterns
5053- ** Workflow Engine** : Orchestrates complex analysis workflows
5154
5255#### Microsoft Debugging Tools Integration
@@ -97,7 +100,7 @@ MCP Nexus is built with a modular architecture designed for Windows crash dump a
97100
98101** Key Features** :
99102- Multi-step analysis workflows
100- - AI-powered pattern recognition
103+ - Pattern recognition
101104- Structured result generation
102105- Comprehensive reporting
103106
@@ -125,7 +128,7 @@ Add tool definition to `McpToolDefinitionService`:
125128new McpToolSchema
126129{
127130 Name = " nexus_analyze_memory_corruption" ,
128- Description = " 🔍 MEMORY ANALYSIS: Analyzes heap corruption and memory leaks with AI-powered pattern recognition" ,
131+ Description = " 🔍 MEMORY ANALYSIS: Analyzes heap corruption and memory leaks with pattern recognition" ,
129132 InputSchema = new
130133 {
131134 type = " object" ,
@@ -201,9 +204,6 @@ await _notificationService.NotifyCommandStatusAsync(
201204Update dependency injection in ` Program.cs ` :
202205
203206``` csharp
204- // Register new analysis service
205- builder .Services .AddScoped <IMemoryAnalysisService , MemoryAnalysisService >();
206-
207207// Register tool execution
208208builder .Services .AddScoped <IMcpToolExecutionService , McpToolExecutionService >();
209209```
@@ -276,10 +276,10 @@ dotnet test --filter "Notification" --logger "console;verbosity=minimal" --nolog
276276### Test Performance
277277
278278The test suite is optimized for speed:
279- - ** All tests** : ~ 4-5 seconds
280- - ** 527 tests** : All using proper mocking for fast execution
279+ - ** All tests** : ~ 56 seconds
280+ - ** 1,189 tests** : All using proper mocking for fast execution
281281- ** Coverage** : 46%+ line coverage with comprehensive analysis testing
282- - ** Analysis Tests** : 7 dedicated test classes for analysis functionality
282+ - ** Analysis Tests** : 15 test categories covering all major functionality
283283
284284### Analysis Testing
285285
@@ -290,175 +290,6 @@ Comprehensive test coverage includes:
290290- ** Bridge Tests** : Stdio notification bridge functionality
291291- ** Mock Tests** : Proper mocking for fast test execution
292292
293- ## 🔄 Adding New Analysis Workflows
294-
295- ### 1. Define Workflow Schema
296-
297- Add workflow definition to ` McpWorkflowService ` :
298-
299- ``` csharp
300- new AnalysisWorkflow
301- {
302- Id = " driver-crash-analysis" ,
303- Name = " Driver Crash Analysis" ,
304- Description = " Comprehensive analysis workflow for kernel driver crashes" ,
305- Complexity = " Advanced" ,
306- EstimatedTime = " 30-60 minutes" ,
307- Steps = new []
308- {
309- new WorkflowStep
310- {
311- Step = 1 ,
312- Command = " !analyze -v" ,
313- Description = " Run comprehensive crash analysis" ,
314- ExpectedOutcome = " Identify crash type and driver involved"
315- },
316- new WorkflowStep
317- {
318- Step = 2 ,
319- Command = " !irql" ,
320- Description = " Check IRQL level and context" ,
321- ExpectedOutcome = " Understand system state at crash"
322- },
323- new WorkflowStep
324- {
325- Step = 3 ,
326- Command = " lm" ,
327- Description = " List loaded modules and drivers" ,
328- ExpectedOutcome = " Identify problematic driver"
329- }
330- },
331- CommonIssues = new []
332- {
333- " Driver memory corruption" ,
334- " IRQL not less than or equal" ,
335- " Driver timeout" ,
336- " System instability"
337- }
338- }
339- ```
340-
341- ### 2. Implement Workflow Logic
342-
343- Add workflow execution to ` AnalysisWorkflowService ` :
344-
345- ``` csharp
346- public async Task < AnalysisResult > ExecuteDriverCrashAnalysisAsync (
347- string sessionId , string workflowId , CancellationToken cancellationToken )
348- {
349- var workflow = GetWorkflow (workflowId );
350- var results = new List <CommandResult >();
351-
352- foreach (var step in workflow .Steps )
353- {
354- await _notificationService .NotifyWorkflowProgressAsync (
355- sessionId , workflowId , step .Step , workflow .Steps .Length ,
356- $" Executing step {step .Step }: {step .Description }" );
357-
358- var result = await ExecuteWorkflowStep (sessionId , step , cancellationToken );
359- results .Add (result );
360-
361- if (! result .Success )
362- {
363- break ; // Stop on first failure
364- }
365- }
366-
367- return new AnalysisResult
368- {
369- WorkflowId = workflowId ,
370- SessionId = sessionId ,
371- Steps = results ,
372- Success = results .All (r => r .Success ),
373- CompletedAt = DateTime .UtcNow
374- };
375- }
376- ```
377-
378- ### 3. Add Workflow Notifications
379-
380- ``` csharp
381- // Workflow start
382- await _notificationService .NotifyWorkflowStartedAsync (
383- sessionId , workflowId , " Driver Crash Analysis" );
384-
385- // Step progress
386- await _notificationService .NotifyWorkflowProgressAsync (
387- sessionId , workflowId , currentStep , totalSteps ,
388- $" Executing step {currentStep }: {stepDescription }" );
389-
390- // Workflow completion
391- await _notificationService .NotifyWorkflowCompletedAsync (
392- sessionId , workflowId , success , results );
393- ```
394-
395- ## 🔧 Adding New Analysis Patterns
396-
397- ### 1. Define Pattern Schema
398-
399- Add pattern definition to ` AnalysisPatternService ` :
400-
401- ``` csharp
402- new AnalysisPattern
403- {
404- Id = " buffer-overflow" ,
405- Name = " Buffer Overflow" ,
406- ExceptionCode = " 0xC0000005" ,
407- Description = " Buffer overflow causing access violation" ,
408- CommonCauses = new []
409- {
410- " Insufficient bounds checking" ,
411- " Unsafe string operations" ,
412- " Array index out of bounds" ,
413- " Stack overflow"
414- },
415- AnalysisCommands = new []
416- {
417- " !analyze -v" ,
418- " kb" ,
419- " !address" ,
420- " !heap -p -a"
421- },
422- Severity = " High" ,
423- Frequency = " Very Common" ,
424- PreventionStrategies = new []
425- {
426- " Use bounds checking" ,
427- " Implement stack canaries" ,
428- " Use safe string functions" ,
429- " Enable compiler security features"
430- }
431- }
432- ```
433-
434- ### 2. Implement Pattern Recognition
435-
436- Add pattern recognition logic to ` PatternRecognitionService ` :
437-
438- ``` csharp
439- public async Task < PatternMatch > RecognizePatternAsync (
440- string sessionId , string analysisResult )
441- {
442- var patterns = await GetAnalysisPatternsAsync ();
443- var matches = new List <PatternMatch >();
444-
445- foreach (var pattern in patterns )
446- {
447- var confidence = CalculatePatternConfidence (analysisResult , pattern );
448- if (confidence > 0 . 7 ) // 70% confidence threshold
449- {
450- matches .Add (new PatternMatch
451- {
452- Pattern = pattern ,
453- Confidence = confidence ,
454- MatchedFeatures = ExtractMatchedFeatures (analysisResult , pattern )
455- });
456- }
457- }
458-
459- return matches .OrderByDescending (m => m .Confidence ).FirstOrDefault ();
460- }
461- ```
462293
463294## 📊 Performance Optimization
464295
@@ -579,41 +410,6 @@ COPY --from=publish /app/publish .
579410ENTRYPOINT ["dotnet" , "mcp_nexus.dll" ]
580411```
581412
582- ## 🔮 Future Enhancements
583-
584- ### Planned Features
585-
586- ** AI Integration** :
587- - Machine learning for pattern recognition
588- - Automated analysis suggestions
589- - Intelligent workflow selection
590- - Natural language analysis queries
591-
592- ** Analysis Capabilities** :
593- - Advanced memory analysis
594- - Performance profiling
595- - Security vulnerability detection
596- - Automated report generation
597-
598- ** Platform Improvements** :
599- - Cloud-based analysis
600- - Team collaboration features
601- - Advanced visualization
602- - Integration with CI/CD pipelines
603-
604- ### Contributing
605-
606- 1 . Fork the repository
607- 2 . Create a feature branch
608- 3 . Add your analysis tool implementation
609- 4 . Write comprehensive tests
610- 5 . Update documentation
611- 6 . Ensure all quality gates pass:
612- - ✅ Build with zero warnings
613- - ✅ All tests passing (527 tests)
614- - ✅ No excluded/disabled tests
615- 7 . Submit a pull request
616-
617413---
618414
619415## Next Steps
0 commit comments