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
Metadata
Release files for ida-pro-mcp-xjoker 1.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| ida_pro_mcp_xjoker-1.2.0.tar.gz | 116.2 kB | Without provenance | Details for ida_pro_mcp_xjoker-1.2.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| ida_pro_mcp_xjoker-1.2.0-py3-none-any.whl | Python 3 | none | any | Details for ida_pro_mcp_xjoker-1.2.0-py3-none-any.whl |
Total release size: 249.4 kB
Release files / ida_pro_mcp_xjoker-1.2.0.tar.gz
| Download URL | ida_pro_mcp_xjoker-1.2.0.tar.gz |
|---|---|
| Size | 116.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c03eba8a0595746cfc0c1339a37ccd1211c04e555f6bba56177e49a2963e3f92
|
|
BLAKE2b-256 checksum How to use checksums |
0c1702d8d087e60d3a8492a2023f1a8a5f10900b87e2d506fa1d1ebc462cc0d0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is 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}
|
Release files / ida_pro_mcp_xjoker-1.2.0-py3-none-any.whl
| Download URL | ida_pro_mcp_xjoker-1.2.0-py3-none-any.whl |
|---|---|
| Size | 133.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6a0652519c90631dce435db5c8497d7104060731a5f231e9a45df47ffacb38d8
|
|
BLAKE2b-256 checksum How to use checksums |
1cbd2101d04302fb1b2e6ebfba5b9c0d98c41e26310afcb68bd80f68b164017f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is 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}
|
Security for ida-pro-mcp-xjoker 1.2.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.