A Model Context Protocol (MCP) server that provides comprehensive Windows system diagnostic capabilities to AI agents. This server allows agents to access Windows event logs, crash information, system uptime, stability analysis, and Windows registry diagnostics.
- System Diagnostics: Comprehensive analysis of Windows events, crashes, and system health
- BSOD Detection: Identifies Blue Screen of Death events and critical system errors
- Shutdown Analysis: Tracks expected and unexpected system shutdowns
- Application Crash Monitoring: Monitors application crashes and failures
- System Stability Scoring: Provides stability analysis with actionable recommendations
- Uptime Tracking: Reports system uptime and boot information
- Registry Search: Search the Windows registry by keyword
- Startup Program Analysis: Analyze startup programs for suspicious entries
- System Component Scanning: Scan services, drivers, and uninstall entries for issues
- Orphaned Entry Detection: Find orphaned registry entries pointing to non-existent files
- Registry Health Assessment: Overall registry health evaluation
- Security Risk Scanning: Scan for potential security risks in the registry
- Windows 10/11 or Windows Server
- Node.js 18+
- PowerShell 5.1+ (built into Windows)
- Administrator privileges (recommended for full functionality)
- PowerShell execution policy configured to allow script execution
-
Clone or download the files:
mkdir windows-diagnostics-mcp cd windows-diagnostics-mcp -
Save the TypeScript server code as
src/index.ts -
Create package.json with the provided configuration
-
Create tsconfig.json with the provided TypeScript configuration
-
Install dependencies:
npm install
-
Configure PowerShell execution policy (if not already set):
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
Or for system-wide access (requires Administrator):
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine
-
Build the server:
npm run build
Add this to your Claude Desktop configuration file (%APPDATA%\Claude\claude_desktop_config.json):
{
"mcpServers": {
"windows-diagnostics": {
"command": "node",
"args": ["C:\\path\\to\\your\\windows-diagnostics-mcp\\build\\index.js"],
"env": {
"NODE_ENV": "production"
}
}
}
}Important: For full functionality, run Claude Desktop as Administrator to ensure proper access to event logs and registry.
The server can be started with:
node build/index.jsThe MCP server provides the following tools that agents can use:
Comprehensive system diagnostic report including all event types.
Parameters:
daysBack(number, default: 7): Days to look back for eventsdetailed(boolean, default: false): Include detailed event information
Get shutdown and reboot events only.
Parameters:
daysBack(number, default: 7): Days to look back for events
Get Blue Screen of Death (BSOD) events.
Parameters:
daysBack(number, default: 7): Days to look back for events
Get current system uptime and boot information.
Parameters: None
Analyze system stability and provide recommendations.
Parameters:
daysBack(number, default: 30): Days to analyze for stability assessment
Search the Windows registry by keyword.
Parameters:
searchTerm(string, required): Keyword to search for in the registrymaxResults(number, default: 50): Maximum number of results to return
Analyze startup programs for suspicious entries.
Parameters: None
Scan system components like services, drivers, and uninstall entries for issues.
Parameters: None
Find orphaned registry entries pointing to non-existent files.
Parameters: None
Get an overall registry health assessment.
Parameters: None
Scan the registry for potential security risks.
Parameters: None
Once configured with an MCP-compatible client, agents can use commands like:
- "Check my system for any crashes in the last week"
- "Analyze my Windows system stability"
- "Show me recent BSOD events"
- "What's my current system uptime?"
- "Give me a comprehensive diagnostic report"
- "Search the registry for entries related to 'Adobe'"
- "Analyze my startup programs for suspicious entries"
- "Check for orphaned registry entries"
- "Scan my registry for security risks"
- "Give me an overall registry health assessment"
- "Scan system components for issues"
- Administrator Rights: Run with administrator privileges for complete event log and registry access
- PowerShell Execution: The server executes PowerShell scripts to gather system information
- Registry Access: Registry operations require appropriate permissions and can potentially impact system stability
- Local Only: This server only accesses local system information, no network requests
- Event Log Access: Requires appropriate permissions to read Windows Event Logs
- Execution Policy: PowerShell execution policy must allow script execution
-
PowerShell Execution Policy Error:
cannot be loaded because running scripts is disabled on this systemSolution: Configure PowerShell execution policy:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
-
Access Denied Errors:
- Run the MCP client (e.g., Claude Desktop) as Administrator
- Some event logs and registry keys require elevated privileges
- Check user account permissions
-
Registry Access Errors:
- Ensure proper permissions for registry access
- Some registry keys require SYSTEM-level access
- Run as Administrator for full registry access
-
JSON Parse Errors:
- Check that PowerShell is outputting valid JSON
- Verify no additional output is being written to stdout
- Check for PowerShell version compatibility
-
No Events Found:
- Normal if system has been stable
- Try increasing the
daysBackparameter - Check if Event Log service is running
-
Script Execution Blocked:
- Verify PowerShell execution policy settings
- Check for antivirus software blocking script execution
- Ensure PowerShell modules are not corrupted
Enable debug logging by setting environment variable:
set DEBUG=mcp:*
node build/index.jsThe server requires PowerShell scripts to execute. Common execution policies:
- Restricted: No scripts allowed (default on some systems)
- RemoteSigned: Local scripts allowed, downloaded scripts must be signed
- Unrestricted: All scripts allowed (not recommended)
Check current policy:
Get-ExecutionPolicyRecommended setting for this server:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUserThe server monitors these Windows Event Log entries:
- 1074: System shutdown initiated by user/application
- 1076: System shutdown reason recorded
- 6005: Event Log service started (boot)
- 6006: Event Log service stopped (shutdown)
- 6008: Unexpected shutdown detected
- 6009: System started
- 6013: System uptime reported
- 41: Kernel-Power critical error (unexpected shutdown)
- 1001: Windows Error Reporting BSOD
- 1003: System crash dump created
- 1000: Application error/crash
- 1001: Application hang
- 1002: Application recovery
- 219: Driver loading issues
- 7026: Service start failures
- 7000: Service start failures
- 7009: Service timeouts
- 7031: Service crashes
The registry diagnostic tools examine:
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunHKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\RunHKLM\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Run- Startup folder entries
- Installed services
- Device drivers
- Uninstall entries
- System file associations
- Security policies
- User account settings
- Network configurations
- Browser settings
The server provides structured information including:
- Event timestamps in ISO format
- Event descriptions in plain English
- Stability scoring (0-100 scale)
- Actionable recommendations
- System uptime statistics
- Memory dump information
- Hardware error summaries
- Registry key paths and values
- Security risk assessments
- File existence validation
To modify or extend the server:
- Edit source: Modify
src/index.ts - Rebuild: Run
npm run build - Test: Use MCP inspector or compatible client
- Add tools: Follow the MCP SDK patterns for new diagnostic functions
To add new diagnostic capabilities:
- Extend the PowerShell script with additional event log queries or registry operations
- Add new tool definitions in the
ListToolsRequestSchemahandler - Implement corresponding handler methods
- Update the documentation
- Test with appropriate permissions
When adding new PowerShell functionality:
- Use
ConvertTo-Jsonfor structured output - Handle errors gracefully with try-catch blocks
- Test with different execution policies
- Validate registry key existence before access
- Use appropriate PowerShell cmdlets for registry operations
MIT License - see LICENSE file for details.
Contributions welcome! Please:
- Follow TypeScript best practices
- Test with Windows 10/11
- Document new features
- Ensure PowerShell compatibility
- Test registry operations carefully
- Include proper error handling
- Added comprehensive registry diagnostic tools
- Registry search functionality
- Startup program analysis
- System component scanning
- Orphaned entry detection
- Registry health assessment
- Security risk scanning
- Enhanced PowerShell execution policy documentation
- Initial release
- Basic diagnostic capabilities
- MCP integration
- Stability analysis
- PowerShell backend
