Skip to main content

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

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)

Source distribution for ida-pro-mcp-xjoker 1.2.0
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)

Table of built distributions (wheels) for ida-pro-mcp-xjoker 1.2.0
File Interpreter ABI Platform Actions
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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page