RR

ramuneida/ramune-ida

Developer tools

このページは AI により自動翻訳されています。技術的な詳細は原文をご確認ください。 原文を見る

32 stars 3 forks 品質 68 トレンド 15

Headless IDA Pro MCP Server — IDA Proのリバースエンジニアリング機能をAIエージェントに公開し、より効率的な自動解析を実現します.

概要

ヘッドレス IDA Pro MCP Server — IDA Pro のリバースエンジニアリング機能をモデルコンテキストプロトコルを介して AI エージェントに公開します。 Ramune-ida はヘッドレスモードで IDA Pro (idalib) を実行し、MCP サーバーとしてラップします。 Claude、Cursor、またはMCP互換クライアントのようなAIエージェントは、機能の解読、シンボルの名前変更、タイプ設定、および任意のIDAPythonを実行できます。構造化されたツールコールにより、すべてを実行できます。 — MCP サーバーと IDA が別のプロセスで実行されます。 サーバは純粋な非同期のPythonです。各IDAワーカーは、専用のfdペアパイプ(JSONラインプロトコル)を介して通信する単一スレッドのサブプロセスです。 IDA SDK の使用に関わる全てのスレッドセーフティーの問題を排除します。 — ツールはメタデータ(説明、パラメーター、タグ)、ハンドラ関数によって定義されます。 起動時にツールを発見し、MCP ツール機能を動的に生成し、ワーカーに呼び出しをディスパッチします。 新しいツールを追加するには、メタデータファイルとハンドラのみが必要です。ボイラープレートの登録コードはありません.

概要(AI 翻訳)

[WIP] このプロジェクトは、アクティブな開発下にあります。 APIや機能は予告なく変更する場合があります。 ツイート メインブランチには不安定なアップデートが含まれています。 安定したバージョンでは、リリースタグでマークされているコミットを使用してください。

ヘッドレス IDA Pro MCP Server — IDA Pro のリバースエンジニアリング機能をモデルコンテキストプロトコルを介して AI エージェントに公開します。

サイトマップ

お問い合わせ

これは何ですか?

Ramune-ida はヘッドレスモードで IDA Pro (idalib) を実行し、MCP サーバーとしてラップします。 Claude、Cursor、またはMCP互換クライアントのようなAIエージェントは、機能の解読、シンボルの名前変更、タイプ設定、および任意のIDAPythonを実行できます。構造化されたツールコールにより、すべてを実行できます。

キーデザイン決定

プロセス分離 — MCP サーバーと IDA は別のプロセスで実行します。 サーバは純粋な非同期のPythonです。各IDAワーカーは、専用のfdペアパイプ(JSONラインプロトコル)を介して通信する単一スレッドのサブプロセスです。 IDA SDK の使用に関わる全てのスレッドセーフティーの問題を排除します。

プラグインアーキテクチャ — ツールは、メタデータ(説明、パラメーター、タグ)とハンドラー関数によって定義されます。 起動時にツールを発見し、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" } } }