Skip to main content

Vibe reversing with IDA Pro (enhanced fork)

Project description

IDA Pro MCP (Enhanced Fork)

中文文档 | English

PyPI Python

An enhanced fork of mrexodia/ida-pro-mcp - MCP Server for LLM-assisted reverse engineering in IDA Pro.

What's Different from Original

Feature Original This Fork
Multi-instance Support ❌ Port conflict crashes ✅ Auto port increment (13337→13346)
Web Configuration ❌ None ✅ Bilingual UI at /config.html
API Key Auth ❌ None ✅ Bearer token + env var support
Server Startup Manual hotkey ✅ Auto-start on IDA launch
Hotkey Conflicts Occupies Ctrl+Alt+M ✅ No hotkey, menu-only
Config Persistence None ✅ Saved per IDB database

Key Enhancements

  • Port Conflict Auto-Retry: Multiple IDA instances automatically use different ports
  • Web Config UI: http://localhost:13337/config.html with English/中文 interface
  • API Key Authentication: Secure remote access with Bearer token
  • Bug Fixes: Thread safety, regex handling, type parsing errors fixed

Installation

pip install ida-pro-mcp-xjoker
ida-pro-mcp --install

Restart IDA Pro completely after installation.

Quick Start

  1. Open a binary in IDA Pro
  2. MCP server starts automatically on http://127.0.0.1:13337
  3. Configure your MCP client:
# Claude Code
claude mcp add ida-pro-mcp http://127.0.0.1:13337/mcp

# With API Key authentication
claude mcp add --transport http ida-pro-mcp http://127.0.0.1:13337/mcp \
  --header "Authorization: Bearer your-api-key"
  1. Open web config at http://127.0.0.1:13337/config.html to customize settings

Requirements

API Overview

76 MCP Tools including:

Category Tools
Analysis decompile, disasm, xrefs_to, callees, basic_blocks, insn_query, xref_query, func_profile
Composite analyze_function, analyze_batch, analyze_component, survey_binary
Memory get_bytes, get_string, get_int, patch
Types declare_type, set_type, infer_types, enum_upsert, type_query, type_inspect
Modify set_comments, append_comments, rename, patch_asm, define_func, define_code, undefine
Search find_bytes, find_insns, find_regex
Debug dbg_* (20+ debugger tools, enable with ?ext=dbg)
Python py_eval, py_exec_file
Multi-Instance list_instances, select_instance

11 MCP Resources for read-only access:

  • ida://idb/metadata, ida://cursor, ida://structs, ida://xrefs/from/{addr}, etc.

Headless Mode

# SSE transport
ida-pro-mcp --transport http://127.0.0.1:8744/sse

# With idalib (no GUI)
idalib-mcp --host 127.0.0.1 --port 8745 /path/to/binary

Links

License

MIT - Same as original project

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ida_pro_mcp_xjoker-1.1.0.dev1.tar.gz (112.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ida_pro_mcp_xjoker-1.1.0.dev1-py3-none-any.whl (129.5 kB view details)

Uploaded Python 3

File details

Details for the file ida_pro_mcp_xjoker-1.1.0.dev1.tar.gz.

File metadata

  • Download URL: ida_pro_mcp_xjoker-1.1.0.dev1.tar.gz
  • Upload date:
  • Size: 112.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for ida_pro_mcp_xjoker-1.1.0.dev1.tar.gz
Algorithm Hash digest
SHA256 2ab3f9a7525151890913e4bdb2c7cd693cc79c9a2903f7fc49bfb4a650573579
MD5 134d0739ba9fdc0ed929ba6a01a3ad2f
BLAKE2b-256 0df6e17ab47f37e06ee6f9b2a07a68b80e308991585734c9d81a140aca30d73e

See more details on using hashes here.

File details

Details for the file ida_pro_mcp_xjoker-1.1.0.dev1-py3-none-any.whl.

File metadata

  • Download URL: ida_pro_mcp_xjoker-1.1.0.dev1-py3-none-any.whl
  • Upload date:
  • Size: 129.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for ida_pro_mcp_xjoker-1.1.0.dev1-py3-none-any.whl
Algorithm Hash digest
SHA256 e88897592bd3f37279bb8ba52dc26816c39f848bc8e3b7d5068ec931cea0e440
MD5 a948c3f29ee81880825716359a0dff03
BLAKE2b-256 8ed10d275e715ffb9667bd6304a6bd7b5d3712cb190d6472885a504d9cd43255

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page