
elliottophellia/ryuumonbuchi
Developer tools이 페이지는 AI로 자동 번역되었습니다. 기술적인 세부 사항은 원문을 확인하세요. 원문 보기
아마도 당신이 찾고있는 헤드리스 Ghidra MCP.
개요
Ryuumonbuchi는 Ghidra를 217-tool Model Context Protocol 서버로 전환합니다. LLM 에이전트는 유형 도구 통화를 통해 바이너리 및 드라이브 분석을 엽니 다 : 분해, 분해, 유형 재구성, 패치, 기호 및 메모리 편집 및 프로젝트 수출. GUI 자동화 없음, 손 쓰기 분석Headless 스크립트. 서버는 저수준 MCP SDK (mcp.server.lowlevel)에 하나의 권한 카탈로그로 생성된 레지스트리를 구축합니다. 카탈로그는 217 dotted 도구 이름을 선언합니다. 212 지도는 persistent PyGhidra 백엔드의 방법에 대해 하나-to-one. health.ping 및 mcp.response format은 서버-native, headless.run 및 headless.start는 네이티브 런처 경로 및 작업입니다. 배치는 일괄적인 파견자입니다. 수송 뒤에, 1개의 지속적인 노동자 아이는 전체적인 MCP 수명을 위한 살아있는 PyGhidra/JVM 회의를 붙듭니다. 반복 호출은 요청에 따라 JVM 시작을 지불 대신 따뜻한 백엔드를 재사용합니다. 1. 명세.
개요(AI 번역)
**Ghidra MCP가 당신을 찾고 있습니다. **
개요
Ryuumonbuchi는 Ghidra를 217-tool Model Context Protocol 서버로 전환합니다. LLM 에이전트는 유형 도구 통화를 통해 바이너리 및 드라이브 분석을 엽니 다 : 분해, 분해, 유형 재구성, 패치, 기호 및 메모리 편집 및 프로젝트 수출. GUI 자동화 없음, 손 쓰기 없음 analyzeHeadless 스크립트.
서버는 저수준 MCP SDK(mcp.server.lowlevel])에 하나의 권한 카탈로그로 생성된 레지스트리를 구축합니다. 카탈로그는 217 dotted 도구 이름 선언; 212 지도는 persistent PyGhidra 백엔드의 방법에. health.ping과 mcp.response_format은 서버-native, headless.run과 headless.start는 기본 실행 경로이며, operation.batch는 일괄적인 파견자입니다.
수송 뒤에, 1개의 지속적인 노동자 아이는 전체적인 MCP 수명을 위한 살아있는 PyGhidra/JVM 회의를 붙듭니다. 반복 호출은 요청에 따라 JVM 시작을 지불 대신 따뜻한 백엔드를 재사용합니다.
건축
3개의 파견 경로:
- 작업 도구 (212) : 카탈로그 스키마에 대한 유효성 검사, 프로토콜 v2 IPC에 대한 지속적 아동에게 보내, 라이브 프로그램 세션에 대해 실행.
- 명세.
이 페이지는 AI로 자동 번역되었습니다. 기술적인 세부 사항은 원문을 확인하세요.
README
원문 README의 일부입니다. 원문 보기.
Overview
Ryuumonbuchi turns Ghidra into a 217-tool Model Context Protocol server. An LLM agent opens a binary and drives analysis through typed tool calls: decompilation, disassembly, type reconstruction, patching, symbol and memory edits, and project export. No GUI automation, no hand-written analyzeHeadless scripts.
The server builds on the low-level MCP SDK (mcp.server.lowlevel) with a registry generated from one authoritative catalog. The catalog declares 217 dotted tool names; 212 map one-to-one onto methods of a persistent PyGhidra backend. health.ping and mcp.response_format are server-native, headless.run and headless.start are the native launcher paths, and operation.batch is the batching dispatcher.
Behind the transport, one persistent worker child holds a live PyGhidra/JVM session for the whole MCP lifespan. Repeated calls reuse the warmed backend instead of paying JVM startup per request.
Architecture
MCP client ── stdio or streamable HTTP ──► Ryuumonbuchi server
(low-level SDK, schema/policy dispatch)
│
│ protocol-v2, 8-byte length-prefixed socket IPC
▼
persistent worker child
(lazy PyGhidra/JVM, multiple program sessions)
│
┌──────────────────┴───────────────────┐
▼ ▼
backend (PyGhidra) headless.run ── analyzeHeadless
program sessions, (separate process group)
decompiler, analysis
Three dispatch paths:
- Worker tools (212): validated against the catalog schema, sent to the persistent child over protocol-v2 IPC, run against a live program session.
headless.run: spawnssupport/analyzeHeadlessdirectly with the caller’s argv in its own process group. No shell, no rewriting of arguments.
설치
uvx ryuumonbuchi --ghidra-install-dir /usr/share/ghidra설정
{
"mcpServers": {
"ryuumonbuchi": {
"type": "stdio",
"command": "uvx",
"args": [
"ryuumonbuchi",
"--ghidra-install-dir",
"/usr/share/ghidra"
],
"env": {
"RYUUMONBUCHI_MAX_CPU": "4",
"RYUUMONBUCHI_MAX_HEAP_MB": "2048"
}
}
}
}