IDA Pro MCP (Enhanced Fork)
中文文档 | English
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.htmlwith 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
- Open a binary in IDA Pro
- MCP server starts automatically on
http://127.0.0.1:13337 - 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"
- Open web config at
http://127.0.0.1:13337/config.htmlto customize settings
Requirements
- Python 3.11+
- IDA Pro 8.3+ (9.0 recommended), IDA Free not supported
- Any MCP-compatible client
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
- Original Project by mrexodia
- Changelog
- Issues
License
MIT - Same as original project
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.2.0.tar.gz
(116.2 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ida_pro_mcp_xjoker-1.2.0.tar.gz.
File metadata
- Download URL: ida_pro_mcp_xjoker-1.2.0.tar.gz
- Upload date:
- Size: 116.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c03eba8a0595746cfc0c1339a37ccd1211c04e555f6bba56177e49a2963e3f92
|
|
| MD5 |
af3afa542c174c8f8dd2740317763ba6
|
|
| BLAKE2b-256 |
0c1702d8d087e60d3a8492a2023f1a8a5f10900b87e2d506fa1d1ebc462cc0d0
|
File details
Details for the file ida_pro_mcp_xjoker-1.2.0-py3-none-any.whl.
File metadata
- Download URL: ida_pro_mcp_xjoker-1.2.0-py3-none-any.whl
- Upload date:
- Size: 133.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6a0652519c90631dce435db5c8497d7104060731a5f231e9a45df47ffacb38d8
|
|
| MD5 |
4648a5bc96f3ceef458e2cae4d36d23a
|
|
| BLAKE2b-256 |
1cbd2101d04302fb1b2e6ebfba5b9c0d98c41e26310afcb68bd80f68b164017f
|