
Ghidra용 MCP 서버

ghidraMCP는 LLM이 애플리케이션을 자율적으로 리버스 엔지니어링할 수 있도록 해주는 Model Context Protocol 서버입니다. 핵심 Ghidra 기능의 다양한 도구를 MCP 클라이언트에 노출합니다.
https://github.com/user-attachments/assets/36080514-f227-44bd-af84-78e29ee1d7f9
MCP 서버 + Ghidra 플러그인
pip install git+https://github.com/LaurieWired/GhidraMCP 실행 후 아래 명령에서 ghidra-mcp 사용)먼저 이 저장소에서 최신 릴리스를 다운로드하세요. 여기에는 Ghidra 플러그인과 Python MCP 클라이언트가 포함되어 있습니다. 그런 다음 플러그인을 Ghidra에 직접 임포트할 수 있습니다.
File -> Install Extensions 선택+ 버튼 클릭ghidra_12.1.4_PUBLIC_<date>_GhidraMCP.zip 선택File -> Configure -> Developer에서 GhidraMCPPlugin이 활성화되어 있는지 확인Edit -> Tool Options -> GhidraMCP HTTP Server로 포트 구성동영상 설치 가이드:
https://github.com/user-attachments/assets/75f0c176-6da1-48dc-ad96-c182eb4648c3
이론적으로 모든 MCP 클라이언트가 ghidraMCP와 함께 작동해야 합니다. 대부분의 클라이언트는 다음과 같은 JSON 설정을 허용합니다:
{
"mcpServers": {
"ghidra": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/LaurieWired/GhidraMCP",
"ghidra-mcp",
"--ghidra-server",
"http://127.0.0.1:8080/"
]
}
}
}
서버 IP와 포트는 구성 가능하며 대상 Ghidra 인스턴스를 가리키도록 설정해야 합니다. 설정하지 않으면 둘 다 기본값으로 localhost:8080이 사용됩니다.
명령을 실행하는 대신 URL에 연결하는 클라이언트의 경우, 먼저 MCP 서버를 직접 실행하세요:
uvx --from git+https://github.com/LaurieWired/GhidraMCP ghidra-mcp --transport streamable-http --mcp-host 127.0.0.1 --mcp-port 8081 --ghidra-server http://127.0.0.1:8080/
그런 다음 클라이언트에서 http://127.0.0.1:8081/mcp를 원격 서버로 추가하세요.
명령 팔레트에서 MCP: Add Server를 실행하거나, 워크스페이스의 .vscode/mcp.json에 다음을 추가하세요:
{
"servers": {
"ghidra": {
"type": "stdio",
"command": "uvx",
"args": [
"--from",
"git+https://github.com/LaurieWired/GhidraMCP",
"ghidra-mcp",
"--ghidra-server",
"http://127.0.0.1:8080/"
]
}
}
}
다음 명령을 실행하세요:
claude mcp add ghidra -- uvx --from git+https://github.com/LaurieWired/GhidraMCP ghidra-mcp --ghidra-server http://127.0.0.1:8080/
ghidra-mcp는 PyGhidra를 사용하여 Ghidra GUI를 실행하지 않고 바이너리를 직접 임포트하고 분석할 수도 있습니다. 이를 위해서는 Python 3.10–3.13, Ghidra에 설치된 GhidraMCP 확장(또는 --extension-jar /path/to/GhidraMCP.jar), 그리고 GHIDRA_INSTALL_DIR이 Ghidra 12.1.4 디렉터리로 설정되어 있어야 합니다:
uvx --python 3.13 --from "ghidra-mcp[headless] @ git+https://github.com/LaurieWired/GhidraMCP" ghidra-mcp --headless --binary /path/to/target
위의 클라이언트 설정 중 어느 것이든 동일한 명령과 인수를 사용하세요. 실행 간에 Ghidra 프로젝트를 유지(및 변경 사항 저장)하려면 --project DIR을 추가하세요. macOS에서는 Ghidra 디렉터리에서 support/gradle/gradlew buildNatives로 Ghidra의 디컴파일러를 한 번 빌드하세요.
GHIDRA_INSTALL_DIR을 Ghidra 12.1.4 디렉터리로 설정cd extension && $GHIDRA_INSTALL_DIR/support/gradle/gradlew buildExtension
extension/dist/에 생성된 zip 파일에는 빌드된 Ghidra 플러그인과 해당 리소스가 포함되어 있습니다. 이 파일들은 Ghidra가 새 확장을 인식하는 데 필요합니다.
Python MCP 서버는 체크아웃에서 uv run ghidra-mcp로 실행할 수 있으며, uv run pytest로 테스트할 수 있습니다.