DumpAnalysisMCP
Enables AI agents to analyze Windows crash dumps by providing structured data on exceptions, threads, modules, and source context, with safe patch, build, and test execution.
README
DumpAnalysisMCP
DumpAnalysisMCP는 Windows 크래시 덤프(minidump/full dump)를 분석하는 MCP(Model Context Protocol) 서버입니다.
MCP 클라이언트가 stdio 기반으로 덤프 분석, 스레드 조회, 소스 문맥 조회, 안전한 패치/빌드/테스트를 호출할 수 있도록 설계되었습니다.
프로젝트 소개
- 목적: AI Agent가 Windows dump를 구조화된 데이터로 읽고 원인 분석 속도를 높이도록 지원
- 대상: user-mode C++/Unreal Engine 덤프 분석
- 핵심 강점:
- 예외/스택/모듈/심볼 품질 구조화
- 멀티스레드 분석(
threads,crashing_thread,faulting_thread_confidence) source_path_map기반 소스 경로 remap- 정책 기반 안전 실행(
apply_patch,build_project,run_tests)
주요 기능
- dump 세션 등록 및
dump_id발급 analyze_dump정규화 결과 제공- 스레드 목록/스레드별 스택 조회
- 예외/모듈/경고 리소스 조회
- 소스 문맥 조회 및 코드 참조 검색
- 확인 플래그 기반의 안전한 파일 변경/빌드/테스트 실행
요구 사항
- OS: Windows 10/11
- Python: 3.11 이상
- 디버거: WinDbg 또는 Debugging Tools for Windows (
cdb.exe) - 입력 경로:
dump_path: 존재하는 dump 파일(절대 경로)symbol_root: 존재하는 디렉터리(절대 경로)source_root: 존재하는 디렉터리(절대 경로)
project_type:native_cpp또는unreal_engine
환경 변수(선택):
| 변수명 | 기본값 | 설명 |
|---|---|---|
DUMP_MCP_CDB_PATH |
cdb.exe |
cdb.exe 경로. 환경 차이를 줄이려면 절대 경로 권장 |
DUMP_MCP_LOG_LEVEL |
WARNING |
로그 레벨 |
DUMP_MCP_ANALYZE_TIMEOUT_SECONDS |
180 |
dump 분석 타임아웃 |
DUMP_MCP_BUILD_TIMEOUT_SECONDS |
1200 |
빌드 타임아웃 |
DUMP_MCP_TEST_TIMEOUT_SECONDS |
1800 |
테스트 타임아웃 |
DUMP_MCP_MAX_OUTPUT_CHARS |
200000 |
stdout/stderr 최대 보존 길이 |
DUMP_MCP_BUILD_ALLOWLIST |
msbuild,dotnet,cmake,ninja,UnrealBuildTool,RunUAT |
빌드 허용 실행 파일 |
DUMP_MCP_TEST_ALLOWLIST |
ctest,dotnet,pytest,UnrealEditor-Cmd,RunUAT |
테스트 허용 실행 파일 |
설치
기본 설치:
python -m pip install -e .
개발 설치(테스트 포함):
python -m pip install -e .[dev]
빠른 시작
cdb.exe경로 설정(예시)
$env:DUMP_MCP_CDB_PATH="C:\Program Files\WindowsApps\Microsoft.WinDbg_1.2601.12001.0_x64__8wekyb3d8bbwe\amd64\cdb.exe"
$env:DUMP_MCP_LOG_LEVEL="INFO"
- MCP 클라이언트 설정(
.vscode/mcp.json등)
servers 형식:
{
"servers": {
"dump-analysis": {
"command": "python",
"args": ["-m", "windows_dump_analysis_mcp"],
"env": {
"DUMP_MCP_CDB_PATH": "<REPLACE_WITH_CDB_ABSOLUTE_PATH>",
"DUMP_MCP_LOG_LEVEL": "INFO"
}
}
}
}
mcpServers 형식:
{
"mcpServers": {
"dump-analysis": {
"command": "python",
"args": ["-m", "windows_dump_analysis_mcp"],
"env": {
"DUMP_MCP_CDB_PATH": "<REPLACE_WITH_CDB_ABSOLUTE_PATH>",
"DUMP_MCP_LOG_LEVEL": "INFO"
}
}
}
}
사용법
기본 분석 흐름:
register_dumpanalyze_dump- 필요 시
get_thread_list,get_thread_stack_trace,get_source_context
register_dump 예시 payload:
{
"dump_path": "C:\\path\\to\\sample.dmp",
"symbol_root": "C:\\path\\to\\symbols",
"source_root": "C:\\path\\to\\source",
"project_type": "native_cpp",
"binary_root": "C:\\path\\to\\bin",
"source_path_map": {
"c:\\original\\source\\root": "C:\\path\\to\\source"
}
}
Tool 레퍼런스
| Tool | 설명 | 주요 인자 |
|---|---|---|
register_dump |
분석 세션 등록 후 dump_id 반환 |
dump_path, symbol_root, source_root, project_type, binary_root?, dump_type_hint?, log_paths?, source_path_map? |
analyze_dump |
dump 분석 실행 및 정규화 결과 반환 | dump_id |
get_exception_info |
예외 요약 조회 | dump_id |
get_stack_trace |
선택 스레드 스택 조회(기본: crashing thread) | dump_id, max_frames?, thread_id? |
get_thread_list |
스레드 목록/충돌 메타데이터 조회 | dump_id |
get_thread_stack_trace |
특정 스레드 스택 조회 | dump_id, thread_id, max_frames? |
get_module_list |
모듈 목록/심볼 품질 조회 | dump_id |
get_source_context |
선택 프레임/스레드 소스 문맥 조회 | dump_id, frame_index?, context_before?, context_after?, thread_id? |
search_code_references |
코드 참조 검색 | query, dump_id?, source_root?, max_results?, ignore_case? |
apply_patch |
파일 변경 preview/apply | changes, dump_id?, source_root?, mode?, user_confirmed? |
build_project |
가드된 빌드 실행 | command, dump_id?, working_directory?, timeout_seconds?, user_confirmed=true |
run_tests |
가드된 테스트 실행 | command, dump_id?, working_directory?, timeout_seconds?, user_confirmed=true |
Resource 레퍼런스
project://symbols/statusproject://source/rootcrash://{dump_id}/summarycrash://{dump_id}/exceptioncrash://{dump_id}/stackcrash://{dump_id}/threadscrash://{dump_id}/modulescrash://{dump_id}/warningscrash://{dump_id}/source/main-frame
안전 정책
build_project,run_tests:user_confirmed=true필수apply_patch:- 기본은
preview mode=apply는user_confirmed=true필수
- 기본은
- 빌드/테스트 명령은 allowlist 실행 파일만 허용
- 쉘 체이닝(
&&,|,;) 차단
예제
examples/cpp-crash-sample-1examples/cpp-crash-sample-2examples/cpp-crash-sample-3
개발
테스트 실행:
python -m pytest -q
트러블슈팅
Configured cdb_path must be an absolute path:DUMP_MCP_CDB_PATH를 절대 경로로 설정하세요.
source_root does not exist또는 source mapping 오류:source_root절대 경로와source_path_map매핑을 확인하세요.
- 심볼 품질이 낮거나
WRONG_SYMBOLS경고가 보이는 경우:symbol_root에 올바른 PDB가 있는지 확인하세요.
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。