Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/mrexodia/ida-pro-mcp/llms.txt

Use this file to discover all available pages before exploring further.

Modification tools let you annotate and restructure an open IDB without leaving your AI workflow. You can add or append comments in both the disassembly and decompiler views, batch-rename every kind of symbol in one call, patch individual instructions or raw byte sequences, and define or undefine functions and code items on demand.

set_comments

Set a comment at one or more addresses. Comments are written to the disassembly view and, when the Hex-Rays decompiler is available, to the pseudocode view as well.
items
CommentOp | CommentOp[]
required
A single comment operation or a list of them.
Returns CommentResult[]
When the address is the entry point of a function, set_comments writes a function-level comment (visible at the top of the decompiled output) rather than a line comment.
{
  "addr": "0x401000",
  "comment": "Entry point of the crackme — checks serial"
}

append_comments

Append text to an existing comment at one or more addresses. By default, duplicate lines are silently skipped.
items
CommentAppendOp | CommentAppendOp[]
required
A single append operation or a list of them.
Returns AppendCommentResult[]

rename

Batch-rename functions, global variables, local decompiler variables, and stack frame variables in a single call.
batch
RenameBatch
required
At least one of func, data, local, or stack must be present.
Returns RenameResult
Newly renamed functions are automatically placed in a /vibe/ folder in IDA’s function tree, making it easy to track AI-assisted annotations.
{
  "func": { "addr": "0x401000", "name": "validate_serial" }
}

patch_asm

Assemble and patch one or more instructions at a given address. Multiple instructions can be chained with semicolons.
items
AsmPatchOp | AsmPatchOp[]
required
A single patch operation or a list of them.
Returns PatchAsmResult[]
Patch a conditional jump to unconditional
{
  "addr": "0x401045",
  "asm": "jmp 0x401060"
}

patch

Write raw bytes to one or more addresses. Use this for patches that cannot be expressed as assembly, such as overwriting data or inserting NOPs by hand.
patches
MemoryPatch | MemoryPatch[]
required
A single patch or a list.
Returns PatchResult[]
patch writes directly to the IDB. The original bytes are not automatically saved. Use IDA’s Edit → Patch program → Restore original byte if you need to undo.
NOP two bytes at 0x401045
{
  "addr": "0x401045",
  "data": "9090"
}

define_func

Tell IDA to define a function starting at the given address. IDA infers the function bounds automatically unless you supply an explicit end address.
items
DefineOp | DefineOp[]
required
Returns DefineResult[]
Define function at a known address
{ "addr": "0x401200" }

define_code

Convert the byte(s) at the given address into a code instruction. Useful when IDA has left bytes unanalyzed or marked them as data.
items
DefineOp | DefineOp[]
required
Returns DefineResult[]

undefine

Revert one or more items back to raw, undefined bytes. Accepts an explicit end address or a byte count; defaults to a single byte.
items
UndefineOp | UndefineOp[]
required
Returns DefineResult[]
Undefine a 16-byte region
{
  "addr": "0x402000",
  "size": 16
}

Build docs developers (and LLMs) love