ER

elliottophellia/ryuumonbuchi

Developer tools

이 페이지는 AI로 자동 번역되었습니다. 기술적인 세부 사항은 원문을 확인하세요. 원문 보기

79 stars 4 forks 품질 78 트렌드 22GPL-2.0

아마도 당신이 찾고있는 헤드리스 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개의 파견 경로:

  1. 작업 도구 (212) : 카탈로그 스키마에 대한 유효성 검사, 프로토콜 v2 IPC에 대한 지속적 아동에게 보내, 라이브 프로그램 세션에 대해 실행.
  2. 명세.

이 페이지는 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:

  1. Worker tools (212): validated against the catalog schema, sent to the persistent child over protocol-v2 IPC, run against a live program session.
  2. headless.run: spawns support/analyzeHeadless directly with the caller’s argv in its own process group. No shell, no rewriting of arguments.
GitHub에서 전체 README 보기

설치

uvx ryuumonbuchi --ghidra-install-dir /usr/share/ghidra
MCP 초보자라면? mcpskill.org 가이드부터 시작하세요 →

설정

{ "mcpServers": { "ryuumonbuchi": { "type": "stdio", "command": "uvx", "args": [ "ryuumonbuchi", "--ghidra-install-dir", "/usr/share/ghidra" ], "env": { "RYUUMONBUCHI_MAX_CPU": "4", "RYUUMONBUCHI_MAX_HEAP_MB": "2048" } } } }