RR

ramuneida/ramune-ida

Developer tools

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

32 stars 3 forks 품질 68 트렌드 15

Headless IDA Pro MCP Server - 효율적인 자동화 분석을위한 AI 에이전트에 IDA Pro의 역설계 기능을 노출합니다.

개요

Headless IDA Pro MCP Server - 모델 Context Protocol을 통해 AI Agent에 IDA Pro의 역설계 기능을 노출합니다. Ramune-ida는 IDA Pro (idalib)를 헤드리스 모드에서 실행하고 MCP 서버로 포장합니다. Claude, Cursor, 또는 MCP 호환 클라이언트와 같은 AI 에이전트는 기능, 이름 기호, 설정 유형, 그리고 arbitrary IDAPython을 실행할 수 있습니다 — 모두 구조 도구 호출. - MCP 서버 및 IDA는 별도의 프로세스에서 실행됩니다. 서버는 순수 async 파이썬입니다. 각 IDA worker는 전용 fd-pair 파이프 (JSON 라인 프로토콜)를 통해 단일 스레드 하위 처리가 시작됩니다. plague IDA SDK 사용의 모든 스레드 안전 문제를 제거합니다. - 도구는 metadata (description, 매개변수, 태그) 및 핸들러 기능에 의해 정의됩니다. 서버는 시작에서 도구를 발견하고 역동적으로 MCP 도구 기능을 생성하고 작업자에게 전화를 파견합니다. 새 도구를 추가하면 메타데이터 파일과 핸들러가 필요합니다. - 보일러판 등록 코드가 없습니다.

개요(AI 번역)

[WIP] 이 프로젝트는 적극적인 개발 중입니다. API 및 기능은 공지 없이 변경될 수 있습니다. · 본점은 불안정한 업데이트를 포함합니다. 안정적인 버전의 경우 릴리스 태그로 표시된 커밋을 사용하십시오.

Headless IDA Pro MCP Server - 모델 Context Protocol을 통해 AI Agent에 IDA Pro의 역설계 기능을 노출합니다.

한국어


이것은 무엇입니까?

Ramune-ida는 IDA Pro (idalib)를 헤드리스 모드에서 실행하고 MCP 서버로 포장합니다. Claude, Cursor, 또는 MCP 호환 클라이언트와 같은 AI 에이전트는 기능, 이름 기호, 설정 유형, 그리고 arbitrary IDAPython을 실행할 수 있습니다 — 모두 구조 도구 호출.

키 디자인 결정

**Process 별거 ** - MCP 서버 및 IDA는 별도의 프로세스에서 실행합니다. 서버는 순수 async 파이썬입니다. 각 IDA worker는 전용 fd-pair 파이프 (JSON 라인 프로토콜)를 통해 단일 스레드 하위 처리가 시작됩니다. plague IDA SDK 사용의 모든 스레드 안전 문제를 제거합니다.

**Plugin 아키텍처 ** - 도구는 메타 데이터 (도메인, 매개 변수, 태그) 및 핸들러 기능에 의해 정의됩니다. 서버는 시작에서 도구를 발견하고 역동적으로 MCP 도구 기능을 생성하고 작업자에게 전화를 파견합니다.

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

README

원문 README의 일부입니다. 원문 보기.

Ramune-ida

[WIP] This project is under active development. APIs and features may change without notice.

The main branch contains unstable updates. For stable versions, please use commits marked with release tags.

Headless IDA Pro MCP Server — expose IDA Pro’s reverse engineering capabilities to AI agents via the Model Context Protocol.

中文版


What is this?

Ramune-ida runs IDA Pro (idalib) in headless mode and wraps it as an MCP server. AI agents like Claude, Cursor, or any MCP-compatible client can decompile functions, rename symbols, set types, and execute arbitrary IDAPython — all through structured tool calls.

Key Design Decisions

Process separation — The MCP server and IDA run in separate processes. The server is pure async Python; each IDA worker is a single-threaded subprocess communicating via dedicated fd-pair pipes (JSON line protocol). This eliminates all thread-safety issues that plague IDA SDK usage.

Plugin architecture — Tools are defined by metadata (description, parameters, tags) and handler functions. The server discovers tools at startup, dynamically generates MCP tool functions, and dispatches calls to the worker. Adding a new tool requires only a metadata file and a handler — no boilerplate registration code.

Worker is stateless — Workers are disposable command executors. All management state (task queues, crash recovery) lives in the Project layer. If a worker crashes, the project spawns a new one and reopens the IDB transparently.

Architecture

MCP Client (Claude / Cursor / ...)
    │  Streamable HTTP / SSE
    ▼
┌──────────────────────────────────┐
│  MCP Server (async Python)       │
│  FastMCP + Project management    │
│  Plugin discovery + registration │
└──────────────┬───────────────────┘
               │  fd-pair pipe (JSON lines)
         ┌─────┼─────┐
         ▼     ▼     ▼
      Worker Worker Worker
      idalib idalib idalib
      (plugin handlers)

Tools

Ramune-ida provides 28 tools (21 plugin tools + 7 session tools) covering the core reverse engineering workflow:

  • Session (7) — project lifecycle, database open/close, async task management
  • Analysis (4) — decompile, disassemble, cross-references, binary overview
  • Annotation (3) — rename symbols, read/write comments
  • Data (2) — auto-detect address type, read raw bytes
  • Listing (5) — enumerate functions, strings, imports, names, types (with filtering)
  • Search (2) — regex search across strings/names/disasm, byte pattern search
  • Types (3) — get/set types on functions/variables, declare C types (struct/enum/typedef)
  • Execution (1) — run arbitrary IDAPython with stdout/stderr capture
  • Undo (1) — IDA 9.0+ native undo

Low-frequency or exploratory operations are covered by execute_python, which provides full IDAPython access within the IDA environment.

Features

GitHub에서 전체 README 보기

설치

docker run -p 8000:8000 ramune-ida
MCP 초보자라면? mcpskill.org 가이드부터 시작하세요 →

설정

{ "mcpServers": { "ramune-ida": { "command": "uv", "args": ["run", "ramune-ida", "--local", "stdio://"], "cwd": "/path/to/your/reversing/workspace" } } }