Rust Minidump MCP
An MCP (Model Context Protocol) server that empowers AI agents and developers to understand application crashes. By bridging powerful Rust-based crash analysis tools with AI capabilities, this project transforms cryptic crash dumps into clear, actionable insights - helping you quickly identify root causes and fix critical issues.
๐ Features
Minidump Analysis: Analyze Windows crash dump files (
.dmp) to get detailed stack tracesSymbol Extraction: Extract Breakpad symbols from binaries (PDB, DWARF formats)
Multiple Transport Support: stdio (default), Streamable HTTP, and SSE transports
AI-Powered Analysis: Built-in prompts for AI-assisted crash debugging
Cross-Platform: Works on Windows, macOS, and Linux
Comprehensive Error Handling: Detailed error messages with actionable suggestions
๐ Prerequisites
Python 3.11 or higher
uv package manager (optional, for development)
๐ Quick Start
Method 1: Using uvx (Recommended)
Run directly without installation:
Method 2: Using pip
Install from PyPI:
Method 3: Using uv
Add to your project:
After installation, run:
๐ Usage
Running the Server
STDIO Transport (Default)
Streamable HTTP Transport
SSE Transport
Running the Client
The client is a simple testing tool for the MCP server - you typically won't need it unless you're developing or debugging the server.
๐ MCP Tools
stackwalk_minidump
Analyzes minidump crash files to produce human-readable stack traces.
Parameters:
minidump_path(str, required): Path to the minidump filesymbols_path(str, optional): Path to symbol files or directoriesoutput_format(str, optional): Output format - "json" or "text" (default: "json")
extract_symbols
Converts debug symbols from native formats (PDB, DWARF) to Breakpad format for use with stackwalk_minidump.
Parameters:
binary_path(str, required): Path to the binary file with debug infooutput_dir(str, optional): Directory to save converted symbols (default: ./symbols/)
๐ฏ MCP Prompts
The server provides three specialized prompts for comprehensive crash analysis:
analyze_crash_with_expertise
Expert-level crash analysis with role-based insights:
Detects programming language from modules/symbols
Provides concrete code improvement suggestions
Identifies crash patterns and prevention strategies
Offers tailored advice based on the technology stack
analyze_technical_details
Deep technical analysis of crash internals:
Register state interpretation
Stack frame pattern analysis
Memory corruption detection
Symbol-less frame estimation techniques
symbol_transformation_guide
Comprehensive guide for symbol preparation:
Explains Breakpad format requirements
Documents dump_syms tool usage
Shows expected directory structure
Common troubleshooting tips
๐ค AI Agent Integration
Claude Desktop
Add to your Claude Desktop configuration file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
Linux: ~/.config/Claude/claude_desktop_config.json
Claude Code
Claude Code automatically detects MCP servers. After installation:
Open Claude Code in your project directory
The rust-minidump-mcp server will be available for crash analysis tasks
VS Code with Continue.dev
Add to your Continue configuration (~/.continue/config.json):
๐ง Configuration
Environment Variables
Copy .env.example to .env and customize:
Configuration Priority
CLI arguments (highest priority)
Environment variables
.envfileDefault values (lowest priority)
๐ Understanding Crash Analysis
Minidump Files
Minidump files (.dmp) are compact crash reports generated when a Windows application crashes. They contain:
Thread information and stack traces
CPU register states
Loaded module list
Exception information
System information
Symbol Files
Symbol files map memory addresses to human-readable function names and source locations:
PDB files: Windows debug symbols
DWARF: Linux/macOS debug information
Breakpad format: Cross-platform symbol format (
.sym)
Symbol Directory Structure
Breakpad symbols follow a specific directory structure:
๐ ๏ธ Installation Details
Prerequisites
Install from Source
Clone the repository:
Install dependencies:
This will automatically create a virtual environment and install all dependencies.
Install Rust tools (Optional):
The project includes pre-compiled Rust binaries in minidumpmcp/tools/bin/. They are automatically used when running the tools.
If you need to update or reinstall them:
๐ Troubleshooting
Common Issues
Binary not found error
Solution: Run 'just install-tools' to install required binariesConnection refused error
Solution: Ensure the server is running on the correct port Check: rust-minidump-mcp server --transport streamable-http --port 8000Invalid minidump format
Solution: Ensure the file is a valid Windows minidump (.dmp) file
๐๏ธ Architecture
Project Structure
Transport Support
stdio: Standard input/output for CLI integration
streamable-http: Streamable HTTP transport for web services
sse: Server-Sent Events for real-time streaming
๐งช Development
Running Tests
Code Quality
Available Commands
See all available commands:
Common commands:
just install-tools: Install Rust binariesjust test: Run testsjust lint: Run lintersjust format: Format code
๐ค Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Fork the repository
Create your feature branch (
git checkout -b feature/AmazingFeature)Commit your changes (
git commit -m 'Add some AmazingFeature')Push to the branch (
git push origin feature/AmazingFeature)Open a Pull Request
๐ License
This project is licensed under the MIT License - see the LICENSE file for details.
๐ Related Projects
rust-minidump: The Rust library powering our analysis tools
FastMCP: The MCP framework used for server/client implementation
Breakpad: The crash reporting system that defines the symbol format