bahamoth/rust-minidump-mcp
If you are the rightful owner of rust-minidump-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
Rust Minidump MCP is a Model Context Protocol server designed to help AI agents and developers analyze and understand application crashes by leveraging Rust-based tools and AI capabilities.
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 traces - Symbol 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:
# Run the server (default: stdio transport)
uvx rust-minidump-mcp server
# Run with HTTP transport for web access
uvx rust-minidump-mcp server --transport streamable-http
# Run the client
uvx rust-minidump-mcp client
Method 2: Using pip
Install from PyPI:
pip install rust-minidump-mcp
Method 3: Using uv
Add to your project:
uv add rust-minidump-mcp
After installation, run:
# Server (default: stdio transport for AI agent integration)
rust-minidump-mcp server
# Or use HTTP transport for web access
rust-minidump-mcp server --transport streamable-http --port 8000
# Client
rust-minidump-mcp client
๐ Usage
Running the Server
STDIO Transport (Default)
# Default configuration - for AI agent integration (Claude Desktop, VS Code, etc.)
rust-minidump-mcp server
# Explicit specification
rust-minidump-mcp server --transport stdio
Streamable HTTP Transport
# For web access and debugging
rust-minidump-mcp server --transport streamable-http
# With custom port
rust-minidump-mcp server --transport streamable-http --port 8080
SSE Transport
# For real-time streaming
rust-minidump-mcp server --transport sse --port 9000
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.
# Test the server connection
rust-minidump-mcp client
# See all available commands
rust-minidump-mcp client --help
๐ 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
{
"mcpServers": {
"rust-minidump-mcp": {
"command": "uvx",
"args": ["rust-minidump-mcp", "server"]
}
}
}
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
):
{
"models": [...],
"mcpServers": {
"rust-minidump-mcp": {
"command": "uvx",
"args": ["rust-minidump-mcp", "server"]
}
}
}
๐ง Configuration
Environment Variables
Copy .env.example
to .env
and customize:
# Server configuration
MINIDUMP_MCP_NAME=my-minidump-server
MINIDUMP_MCP_LOG_LEVEL=INFO
MINIDUMP_MCP_TRANSPORT=streamable-http
MINIDUMP_MCP_STREAMABLE_HTTP__HOST=127.0.0.1
MINIDUMP_MCP_STREAMABLE_HTTP__PORT=8000
# Client configuration
MINIDUMP_MCP_CLIENT_URL=http://localhost:8000/mcp
MINIDUMP_MCP_CLIENT_TRANSPORT=streamable-http
MINIDUMP_MCP_CLIENT_TIMEOUT=30.0
Configuration Priority
- CLI arguments (highest priority)
- Environment variables
.env
file- Default 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:
symbols/
โโโ app.exe/
โโโ 1234ABCD5678EF90/ # Module ID
โโโ app.exe.sym # Symbol file
๐ ๏ธ Installation Details
Prerequisites
Install from Source
- Clone the repository:
git clone https://github.com/bahamoth/rust-minidump-mcp.git
cd rust-minidump-mcp
- Install dependencies:
uv sync
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:
just install-tools
๐ Troubleshooting
Common Issues
-
Binary not found error
Solution: Run 'just install-tools' to install required binaries
-
Connection refused error
Solution: Ensure the server is running on the correct port Check: rust-minidump-mcp server --transport streamable-http --port 8000
-
Invalid minidump format
Solution: Ensure the file is a valid Windows minidump (.dmp) file
๐๏ธ Architecture
Project Structure
rust-minidump-mcp/
โโโ minidumpmcp/
โ โโโ __init__.py
โ โโโ server.py # FastMCP server entry point
โ โโโ cli.py # Typer-based CLI
โ โโโ exceptions.py # Custom error handling
โ โโโ config/
โ โ โโโ settings.py # Server configuration
โ โ โโโ client_settings.py # Client configuration
โ โโโ tools/
โ โ โโโ stackwalk.py # Minidump analysis tool
โ โ โโโ dump_syms.py # Symbol extraction tool
โ โ โโโ bin/ # Platform-specific binaries
โ โโโ prompts/ # AI-assisted debugging prompts
โโโ tests/ # Test suite
โโโ justfile # Task automation
โโโ pyproject.toml # Project configuration
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
# Run all tests
pytest
# Run specific test file
pytest tests/test_stackwalk.py
# Run with coverage
pytest --cov=minidumpmcp
Code Quality
# Lint code
ruff check
# Format code
ruff format
# Type checking
mypy .
Available Commands
See all available commands:
just --list
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 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