IDA Pro용 독립형 MCP 서버 플러그인.
[!IMPORTANT] 아카이브 예정: IDA Pro가 번들 네이티브 MCP 서버를 도입함에 따라 IDAssistMCP는 아카이브될 예정입니다. 네이티브 지원은 별도의 MCP 통합을 유지할 필요를 없애고 IDA Pro 자체와 일관성을 유지합니다. 설치된 버전에서 사용 가능해지면 IDA Pro의 네이티브 MCP 서버를 사용하십시오. 이 저장소는 참조용으로 계속 제공됩니다.
IDA Pro 9.x용 독립 실행형 MCP (Model Context Protocol) 서버 플러그인으로, Claude Desktop과 같은 LLM 클라이언트에 IDA의 분석 기능을 노출합니다.

action/format/direction 매개변수를 갖춘 6개의 통합 도구execute_on_main_thread() 래퍼를 통한 스레드 안전한 IDB 수정IDASSISTMCP_ 접두사)을 갖춘 Pydantic 구성hcli plugin install idassistmcp
이 명령은 플러그인과 해당 Python 종속성을 자동으로 설치합니다.
GitHub Releases에서 최신 릴리스 zip을 다운로드하여 IDA 플러그인 디렉터리에 압축을 풉니다:
Linux / macOS:
unzip IDAssistMCP-*.zip -d ~/.idapro/plugins/
Windows:
zip을 %APPDATA%\Hex-Rays\IDA Pro\plugins\에 압축 해제합니다.
그런 다음 IDA에 번들된 Python(시스템 Python이 아님)을 사용하여 종속성을 설치합니다:
Linux / macOS:
<IDA_INSTALL_DIR>/python3/bin/pip3 install -r ~/.idapro/plugins/IDAssistMCP/requirements.txt
Windows:
"<IDA_INSTALL_DIR>\python3\python.exe" -m pip install -r "%APPDATA%\Hex-Rays\IDA Pro\plugins\IDAssistMCP\requirements.txt"
<IDA_INSTALL_DIR>를 IDA Pro 설치 경로로 바꾸십시오.팁:
IDAUSR환경 변수를 사용하여 사용자 지정 플러그인 디렉터리를 지정할 수도 있습니다.
Claude Desktop의 claude_desktop_config.json에 추가합니다:
{
"mcpServers": {
"idassistmcp": {
"url": "http://localhost:9080/mcp"
}
}
}
IDASSISTMCP_ 접두사를 사용하여 환경 변수로 구성합니다:
| Variable | Default | Description |
|---|---|---|
IDASSISTMCP_SERVER__HOST | localhost | 서버 바인드 주소 |
IDASSISTMCP_SERVER__PORT | 9080 | 서버 포트 |
IDASSISTMCP_SERVER__TRANSPORT | streamablehttp | 전송 유형 (sse 또는 streamablehttp) |
IDASSISTMCP_DEBUG | false | 디버그 모드 활성화 |
IDASSISTMCP_LOG_LEVEL | INFO | 로그 레벨 |
| Tool | Description |
|---|---|
list_binaries | 현재 로드된 바이너리 나열 |
get_binary_info | 상세 바이너리 메타데이터 (아키텍처, 해시, 세그먼트) |
| Tool | Description |
|---|---|
get_code | 함수 코드 가져오기 — format: 'decompile' (의사 C) 또는 'disasm' (어셈블리) |
analyze_function | 종합 분석: 메타데이터, CFG, 호출자/피호출자, 디컴파일 |
get_basic_blocks | 후속/선행 블록이 있는 CFG 기본 블록 |
get_function_stack_layout | 스택 프레임 레이아웃 (로컬, 인수, 저장된 레지스터) |
| Tool | Actions | Description |
|---|---|---|
xrefs | direction: to/from/both, include_calls: bool | 주소에 대한 Xref 및 선택적 호출자/피호출자 |
| Tool | Actions | Description |
|---|---|---|
comments | action: get, set, list, remove | 주석 관리 (일반, 반복 가능, 함수) |
| Tool | Actions | Description |
|---|---|---|
variables | action: list, rename | 로컬 나열 또는 scope: auto, local, global로 로컬/전역 변수 이름 변경 |
| Tool | Actions / Description |
|---|---|
types | action: list, set, create_struct, create_enum — IDB 타입 관리 |
get_classes | 타입 라이브러리에서 구조체/클래스 타입 나열 |
| Tool | Description |
|---|---|
get_functions | 필터링 및 페이지네이션이 있는 모든 함수 |
search_functions_by_name | 이름 패턴 및 크기 필터로 검색 |
get_function_by_name | 정확한 이름 조회 |
get_function_by_address | 주소 조회 |
get_function_statistics | 집계 통계 (개수, 크기, 상위 10개) |
| Tool | Description |
|---|---|
rename_symbol | 모든 심볼 (함수 또는 데이터) 이름 변경 |
batch_rename | 여러 심볼 일괄 이름 변경 |
| Tool | Description |
|---|---|
get_imports | 모듈별로 그룹화된 가져오기 테이블 |
get_exports | 내보내기 테이블 |
get_strings | 페이지네이션이 있는 문자열 테이블 |
get_segments | 권한이 있는 메모리 세그먼트 |
get_entry_points | 모든 바이너리 진입점 |
| Tool | Description |
|---|---|
read_memory | 주소에서 원시 바이트 읽기 |
get_data_at | 주소에서 타입이 지정된 데이터 가져오기 |
search_bytes | 바이너리 바이트 패턴 검색 |
search_strings | 페이지네이션이 있는 문자열 검색 |
create_data_var | 주소에 데이터 변수 정의 (byte/word/dword/qword/float/ascii/C 타입) |
get_data_vars | 정의된 데이터 변수 (비코드 항목) 나열 |
| Tool | Description |
|---|---|
patch_bytes | IDB의 원시 바이트 패치 |
assemble_code | 주소에서 명령어 텍스트를 어셈블하고 선택적으로 패치 |
export_program | 패치된 바이너리 또는 IDA 데이터베이스를 디스크로 내보내기 |
| Tool | Description |
|---|---|
navigate_to | IDA 커서를 주소로 이동 |
bookmarks | 통합 북마크 관리 - actions: list, set, remove |
get_current_address | 커서 위치의 주소 및 컨텍스트 가져오기 |
get_current_function | 커서 위치의 함수 정보 가져오기 |
| Tool | Description |
|---|---|
start_task | 비동기 백그라운드 작업 시작 |
get_task_status | 작업 진행 상황 확인 |
cancel_task | 실행 중인 작업 취소 |
list_tasks | 모든 비동기 작업 나열 |
IDAssistMCP/
├── idassistmcp_plugin.py # IDA plugin_t entry point
├── requirements.txt
├── README.md
└── src/
└── idassist_mcp/
├── __init__.py
├── server.py # FastMCP server + transport
├── context.py # Single-binary IDA context
├── tools.py # 41 MCP tools (IDA API)
├── resources.py # 8 MCP resources
├── prompts.py # 7 guided workflow prompts
├── config.py # Pydantic settings
├── cache.py # LRU analysis cache
├── tasks.py # Async task manager
├── logging.py # IDA logging wrapper
├── utils.py # IDA-specific utilities
└── ui/
└── tool_registry.py # Tool catalog for UI
자세한 내용은 LICENSE 파일을 참조하십시오.