ida_mcp (EitaPreulaJhol/ida_mcp) is an MCP server listed on the M8ven Trust Index. It scores 74 out of 100, grade C. It declares 244 tools. No publisher has claimed this listing.
A simple IDA Pro MCP Server for your reverse engineering needs!
Emerging. No concerning findings. Grades remain capped until the project builds reputation through adoption. Grades reflect the full trust pyramid: code, verification depth, and reputation. New projects cap at C until adoption is earned.
How we verified
Verified is a snapshot. Live keeps it current, and builds your track record.
⚡ Connect GitHub → continuous verification on every pushwhy connect →Who stands behind it
EitaPreulaJhol
Source: github_repo_search
Claim it to get a verified publisher badge, a free copy of our full audit findings, and direct contact for any high-priority issues we find. Or connect your repo for our deepest verification, Live Monitored: read-only, revoke anytime. What we access →
Install from
The grade above is for the source repository. Registries can serve a different version, so we mark the ones we were not able to read.
These names and descriptions are the publisher's own, read from the source code. We print them as written. Our assessment is the findings above, not this list.
execute_scriptExecute arbitrary IDA Python code on the main thread.
get_functionsList functions whose name matches a glob pattern (fnmatch).
decompile_functionDecompile the function at the given address or name using Hex-Rays.
get_disassemblyGet disassembly starting at the given address or name.
server_healthServer and IDB health: uptime, paths, image base, analysis/hexrays status.
server_warmupWarm up caches (analysis wait, hexrays init, counts) with per-step timing.
list_instancesList running IDA MCP instances found via filesystem discovery.
get_instance_infoGet discovery info for the instance on ``port`` (host/pid/binary/idb).
close_instanceStop the MCP server of the local instance on ``port``.
get_xrefs_toGet all cross-references TO the given address or symbol name. Returns a JSON array of ``{addr, type, function}`` objects. ``type`` is ``"code"`` or ``"data"``.
xref_queryQuery cross-references with direction and type filters. ``direction``: ``"to"`` (references TO address), ``"from"`` (references FROM address), or ``"both"``. ``xref_type``: ``"code"``, ``"data"``, or ``"any"``.
get_calleesGet all functions called BY the function at the given address or name. Returns a JSON array of ``{addr, name, type}`` where ``type`` is ``"internal"`` or ``"external"``.
get_callersGet all functions that CALL the function at the given address or name. Uses ``CodeRefsTo`` filtered to call instructions only. Returns a JSON array of ``{addr, name}`` objects.
get_bytesRead raw bytes at the given address and return as hex + ASCII dump. ``size`` defaults to 64 and is capped at 4096.
get_stringRead a null-terminated string at the given address. Returns a JSON object with ``addr`` and ``value`` (decoded UTF-8 string).
list_importsList all imported symbols with their module names. Supports glob-based filtering (e.g. ``"*Create*"``) with fnmatch. Pagination via ``offset`` / ``count`` (max 5000).
list_exportsList all exported symbols with their addresses and ordinals. Supports glob filtering (e.g. ``"*Initialize*"``). Pagination via ``offset`` / ``count`` (max 5000).
set_commentSet a comment at the given address in both disassembly and decompiler views. **Unsafe** — requires ``?unsafe=true``.
rename_functionRename the function at the given address. **Unsafe** — requires ``?unsafe=true``.
lookup_funcsGet detailed information about a function by address or name. Returns JSON with name, address, size, segment, callers/callee counts, prototype type info, and stack frame variables.
int_convertConvert a number to multiple formats (decimal, hex, bytes, binary, ASCII). ``text`` is parsed with auto-detected base (0x=hex, 0b=binary, else decimal). ``size`` is the byte width (auto-determined if 0).
find_bytesSearch for byte patterns with ``??`` wildcards (e.g. ``"48 8B ?? ??"``). Uses ``ida_bytes.find_bytes`` (the canonical IDA 9.x API) which accepts the hex string directly, supports ``??`` wildcards natively, and uses ``range_start`` / ``range_end`` semantics. Pagination via ``offset`` / ``limit`` (max…
list_stringsList all strings in the binary with glob filtering and pagination. ``filter_pattern`` uses fnmatch (e.g. ``"*error*"``). Pagination via ``offset`` / ``count`` (max 5000).
disasmDisassemble instructions starting at the given address or name. Returns a JSON array of ``{addr, instruction, label?}`` objects. Use ``count`` to limit the number of instructions (max 500).
basic_blocksGet basic blocks for a function with pagination. Returns a JSON array of ``{start, end, size, type, successors, predecessors}`` for each basic block in the function's control-flow graph.
get_commentGet the regular (non-repeatable) comment at the given address.
delete_commentDelete the regular comment at the given address. Note: this is a write operation but does not require unsafe mode since it only affects annotations.
get_repeatable_commentGet the repeatable comment at the given address.
get_all_commentsGet all comments (regular and repeatable) in the binary. Returns up to 500 comment entries.
get_extra_commentsGet extra comments (anterior/before lines) at the given address.
set_repeatable_commentSet the repeatable comment at the given address. **Unsafe** — requires ``?unsafe=true``.
set_extra_commentAdd an extra (multi-line anterior/posterior) comment line at an address. **Unsafe** — requires ``?unsafe=true``. ``position`` is ``"before"`` (anterior lines, shown above the item) or ``"after"`` (posterior lines). Appends a line; repeat calls to stack multiple lines.
get_bookmarksGet all bookmarks in the binary.
add_bookmarkAdd a bookmark at the given address with an optional description. **Unsafe** — requires ``?unsafe=true``. Uses the first free slot (0-255).
delete_bookmarkDelete a bookmark by slot index or by address. **Unsafe** — requires ``?unsafe=true``. ``target`` accepts a slot number (``"3"``) or an address/symbol (the bookmark at that address is removed).
analyze_functionCompact single-function analysis: pseudocode (capped), strings, constants, callers, callees, xrefs, blocks.
func_profileNumeric profile of a function: sizes, counts, lists (no decompilation).
analyze_componentAnalyze related functions as a group: per-function summaries, internal call graph, shared data.
diff_before_afterApply a rename/type/comment and immediately see before/after decompilation.
trace_data_flowFollow xrefs from/to an address across multiple hops (BFS).
callgraphBuild a bounded call graph from root functions.
survey_binaryComplete binary triage in one call — use as the FIRST tool when starting analysis.
dbg_startStart the debugger session for the current target.
dbg_statusReturn debugger lifecycle state and current IP if suspended.
dbg_exitTerminate the active debugger session.
dbg_continueResume execution in the suspended debugger session.
dbg_run_toRun the debuggee until the target address is reached (must be suspended).
dbg_step_intoExecute one instruction, stepping into calls (must be suspended).
dbg_step_overExecute one instruction, stepping over calls (must be suspended).
dbg_bpsList breakpoints with address, enabled status, condition and language.
dbg_add_bpAdd soft breakpoints at comma-separated addresses/names.
dbg_delete_bpDelete breakpoints at comma-separated addresses/names.
dbg_toggle_bpEnable/disable breakpoints in batch.
dbg_set_bp_conditionSet/clear breakpoint conditions in batch (ported from ida-pro-mcp).
dbg_regsFull register set for the current debugger thread (must be suspended).
dbg_gpregsGeneral-purpose registers for the current thread (must be suspended).
dbg_regs_namedSelected registers of the current thread (comma-separated names).
dbg_get_threadsList debugger thread IDs and the current thread (must be suspended).
dbg_stacktraceCurrent call stack with module and symbol context (must be suspended).
dbg_readRead debuggee memory. ``regions``: JSON array of ``{\"addr\", \"size\"}``.
dbg_writeWrite debuggee memory. ``regions``: JSON array of ``{\"addr\", \"data\"}`` (hex).
get_entry_pointsList all entry points (main, DllMain, TLS callbacks, exports, etc.) with ordinals and addresses. Returns a JSON array of ``{ordinal, addr, name}`` objects.
get_entry_point_countGet the number of entry points.
get_entry_point_by_ordinalGet an entry point by its ordinal.
get_entry_point_by_nameGet an entry point by its name.
get_entry_point_atGet the entry point at the given address.
get_entry_forwardersGet all entry points that have forwarders.
add_entry_pointAdd a new entry point at the given address. ``ordinal``: set to 0 for auto-assignment. **Unsafe** — requires ``?unsafe=true``.
rename_entry_pointRename an entry point by its ordinal. **Unsafe** — requires ``?unsafe=true``.
list_funcsList functions with pagination support. ``offset``: starting position (0-based). ``count``: number of functions to return (max 1000). Returns JSON array of ``{addr, name, size}`` objects.
func_countGet the total number of functions in the binary.
get_function_boundsGet function start/end addresses and size. Returns JSON with ``start_ea``, ``end_ea``, and ``size``.
get_function_signatureGet the C function signature/prototype (e.g., 'int __cdecl main(int argc, char **argv)'). Returns the signature string if type info is available.
get_function_flagsGet function flags (thunk, library, noreturn, far, static, etc.).
get_function_commentGet the comment on a function.
get_function_typeGet the function type/prototype (alias for get_function_signature).
get_function_sizeGet the size of a function in bytes.
get_function_startGet the start address of the function containing the given address.
get_function_endGet the end address of the function containing the given address.
is_function_thunkCheck if a function is a thunk function.
is_function_libraryCheck if a function is a library function.
is_function_noreturnCheck if a function does not return.
get_function_frame_sizeGet the stack frame size of a function.
get_function_args_sizeGet the arguments size of a function's stack frame.
get_local_variablesGet local variables (stack and register) for a function. Returns names, types, offsets, and sizes.
get_register_variablesGet register variables (regvars) for a function.
get_function_edgesGet basic block count, edge count, and cyclomatic complexity for a function.
get_function_instructions_countGet the number of instructions in a function.
get_functions_in_rangeGet all functions in an address range. ``start`` and ``end`` can be hex addresses or symbol names.
get_next_functionGet the next function after the given address.
create_functionCreate/define a function at the given address. IDA infers bounds. **Unsafe** — requires ``?unsafe=true``.
delete_functionDelete/undefine a function at the given address. **Unsafe** — requires ``?unsafe=true``.
set_function_nameRename a function. **Unsafe** — requires ``?unsafe=true``.
set_function_commentSet a comment on a function. **Unsafe** — requires ``?unsafe=true``.
get_microcodeGet a Hex-Rays microcode summary for the function at an address.
get_flowchartGet the full control-flow graph (bounds + successors/predecessors + sizes).
get_basic_blocksGet basic blocks with their disassembled instructions.
force_recompileForce Hex-Rays to discard cached pseudocode and recompile a function.
install_hookInstall a built-in passive tracer hook (``idb``/``hexrays``/``debugger``).
install_hexrays_hookInstall the built-in Hex-Rays maturity tracer (logs decompilations).
144 further tools are not listed here. The complete surface is in the source.
Tool annotations
No tools have read-only/destructive annotations
Add readOnlyHint or destructiveHint annotations to every tool so hosts can warn users before invoking.
All four hints declared on every tool
244/244 tools missing one or more hints — execute_script (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); get_functions (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); decompile_function (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint), +241 more. OpenAI's directory rejects tools where any of the four hints are missing or non-boolean.
For every tool, set all four hints (readOnlyHint, destructiveHint, idempotentHint, openWorldHint) to explicit true/false values that match the handler’s actual behaviour.
Tool handlers catch errors
159/243 tool handlers wrap calls in try/catch (65%)
Wrap each tool handler body in try/catch and return a structured error response.
License file
No license file
Add a LICENSE file (MIT, Apache-2.0, etc.).
Claim the listing to review these findings one by one and send us a correction where you disagree, straight to the team. Claiming also means we tell you when the grade moves, and reach you first if we find anything urgent.
[](https://m8ven.ai/mcp/eitapreulajhol/ida_mcp)?variant=verified to the badge URL.Vetting this one by hand? Tool Check is an MCP that scores other MCPs. Add it once and ask Claude, ChatGPT, or any MCP client to grade a server, surface CVEs, check the publisher, and suggest safer alternatives — before you install.
https://m8ven.ai/api/mcp/tool-check