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.

C
Emerging
74/100

ida_mcp

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

Code Verified⚡ Live Monitored: not connected

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

Is this your MCP?

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.

// key findings
No credential exfiltration, no sensitive file access, no obfuscation
Static analysis found nothing flowing your secrets to unexpected places.
// tools this server exposes244 tools

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_script

Execute arbitrary IDA Python code on the main thread.

get_functions

List functions whose name matches a glob pattern (fnmatch).

decompile_function

Decompile the function at the given address or name using Hex-Rays.

get_disassembly

Get disassembly starting at the given address or name.

server_health

Server and IDB health: uptime, paths, image base, analysis/hexrays status.

server_warmup

Warm up caches (analysis wait, hexrays init, counts) with per-step timing.

list_instances

List running IDA MCP instances found via filesystem discovery.

get_instance_info

Get discovery info for the instance on ``port`` (host/pid/binary/idb).

close_instance

Stop the MCP server of the local instance on ``port``.

get_xrefs_to

Get 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_query

Query 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_callees

Get 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_callers

Get 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_bytes

Read raw bytes at the given address and return as hex + ASCII dump. ``size`` defaults to 64 and is capped at 4096.

get_string

Read a null-terminated string at the given address. Returns a JSON object with ``addr`` and ``value`` (decoded UTF-8 string).

list_imports

List all imported symbols with their module names. Supports glob-based filtering (e.g. ``"*Create*"``) with fnmatch. Pagination via ``offset`` / ``count`` (max 5000).

list_exports

List all exported symbols with their addresses and ordinals. Supports glob filtering (e.g. ``"*Initialize*"``). Pagination via ``offset`` / ``count`` (max 5000).

set_comment

Set a comment at the given address in both disassembly and decompiler views. **Unsafe** — requires ``?unsafe=true``.

rename_function

Rename the function at the given address. **Unsafe** — requires ``?unsafe=true``.

lookup_funcs

Get 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_convert

Convert 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_bytes

Search 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_strings

List all strings in the binary with glob filtering and pagination. ``filter_pattern`` uses fnmatch (e.g. ``"*error*"``). Pagination via ``offset`` / ``count`` (max 5000).

disasm

Disassemble 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_blocks

Get 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_comment

Get the regular (non-repeatable) comment at the given address.

delete_comment

Delete 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_comment

Get the repeatable comment at the given address.

get_all_comments

Get all comments (regular and repeatable) in the binary. Returns up to 500 comment entries.

get_extra_comments

Get extra comments (anterior/before lines) at the given address.

set_repeatable_comment

Set the repeatable comment at the given address. **Unsafe** — requires ``?unsafe=true``.

set_extra_comment

Add 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_bookmarks

Get all bookmarks in the binary.

add_bookmark

Add a bookmark at the given address with an optional description. **Unsafe** — requires ``?unsafe=true``. Uses the first free slot (0-255).

delete_bookmark

Delete 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_function

Compact single-function analysis: pseudocode (capped), strings, constants, callers, callees, xrefs, blocks.

func_profile

Numeric profile of a function: sizes, counts, lists (no decompilation).

analyze_component

Analyze related functions as a group: per-function summaries, internal call graph, shared data.

diff_before_after

Apply a rename/type/comment and immediately see before/after decompilation.

trace_data_flow

Follow xrefs from/to an address across multiple hops (BFS).

callgraph

Build a bounded call graph from root functions.

survey_binary

Complete binary triage in one call — use as the FIRST tool when starting analysis.

dbg_start

Start the debugger session for the current target.

dbg_status

Return debugger lifecycle state and current IP if suspended.

dbg_exit

Terminate the active debugger session.

dbg_continue

Resume execution in the suspended debugger session.

dbg_run_to

Run the debuggee until the target address is reached (must be suspended).

dbg_step_into

Execute one instruction, stepping into calls (must be suspended).

dbg_step_over

Execute one instruction, stepping over calls (must be suspended).

dbg_bps

List breakpoints with address, enabled status, condition and language.

dbg_add_bp

Add soft breakpoints at comma-separated addresses/names.

dbg_delete_bp

Delete breakpoints at comma-separated addresses/names.

dbg_toggle_bp

Enable/disable breakpoints in batch.

dbg_set_bp_condition

Set/clear breakpoint conditions in batch (ported from ida-pro-mcp).

dbg_regs

Full register set for the current debugger thread (must be suspended).

dbg_gpregs

General-purpose registers for the current thread (must be suspended).

dbg_regs_named

Selected registers of the current thread (comma-separated names).

dbg_get_threads

List debugger thread IDs and the current thread (must be suspended).

dbg_stacktrace

Current call stack with module and symbol context (must be suspended).

dbg_read

Read debuggee memory. ``regions``: JSON array of ``{\"addr\", \"size\"}``.

dbg_write

Write debuggee memory. ``regions``: JSON array of ``{\"addr\", \"data\"}`` (hex).

get_entry_points

List 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_count

Get the number of entry points.

get_entry_point_by_ordinal

Get an entry point by its ordinal.

get_entry_point_by_name

Get an entry point by its name.

get_entry_point_at

Get the entry point at the given address.

get_entry_forwarders

Get all entry points that have forwarders.

add_entry_point

Add a new entry point at the given address. ``ordinal``: set to 0 for auto-assignment. **Unsafe** — requires ``?unsafe=true``.

rename_entry_point

Rename an entry point by its ordinal. **Unsafe** — requires ``?unsafe=true``.

list_funcs

List 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_count

Get the total number of functions in the binary.

get_function_bounds

Get function start/end addresses and size. Returns JSON with ``start_ea``, ``end_ea``, and ``size``.

get_function_signature

Get 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_flags

Get function flags (thunk, library, noreturn, far, static, etc.).

get_function_comment

Get the comment on a function.

get_function_type

Get the function type/prototype (alias for get_function_signature).

get_function_size

Get the size of a function in bytes.

get_function_start

Get the start address of the function containing the given address.

get_function_end

Get the end address of the function containing the given address.

is_function_thunk

Check if a function is a thunk function.

is_function_library

Check if a function is a library function.

is_function_noreturn

Check if a function does not return.

get_function_frame_size

Get the stack frame size of a function.

get_function_args_size

Get the arguments size of a function's stack frame.

get_local_variables

Get local variables (stack and register) for a function. Returns names, types, offsets, and sizes.

get_register_variables

Get register variables (regvars) for a function.

get_function_edges

Get basic block count, edge count, and cyclomatic complexity for a function.

get_function_instructions_count

Get the number of instructions in a function.

get_functions_in_range

Get all functions in an address range. ``start`` and ``end`` can be hex addresses or symbol names.

get_next_function

Get the next function after the given address.

create_function

Create/define a function at the given address. IDA infers bounds. **Unsafe** — requires ``?unsafe=true``.

delete_function

Delete/undefine a function at the given address. **Unsafe** — requires ``?unsafe=true``.

set_function_name

Rename a function. **Unsafe** — requires ``?unsafe=true``.

set_function_comment

Set a comment on a function. **Unsafe** — requires ``?unsafe=true``.

get_microcode

Get a Hex-Rays microcode summary for the function at an address.

get_flowchart

Get the full control-flow graph (bounds + successors/predecessors + sizes).

get_basic_blocks

Get basic blocks with their disassembled instructions.

force_recompile

Force Hex-Rays to discard cached pseudocode and recompile a function.

install_hook

Install a built-in passive tracer hook (``idb``/``hexrays``/``debugger``).

install_hexrays_hook

Install the built-in Hex-Rays maturity tracer (logs decompilations).

144 further tools are not listed here. The complete surface is in the source.

// quality suggestions

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.

// full audit trail
The findings above are the summary. The full trail, every check we ran, each deduction, the network hosts observed and the dependency advisories, goes to verified publishers, along with an alert whenever a new one lands. Verified publishers can also review each finding and dispute it in one click. Publisher corrections have sharpened several of our checks this month, because the maintainer knows the codebase better than any scanner.
// improvement guidance — verified publishers only
We have 4 concrete improvements we can share with the publisher of this MCP. Each comes with specific guidance to raise the trust score.
// embed badge in your README
[![M8ven Score](https://m8ven.ai/badge/mcp/eitapreulajhol/ida_mcp)](https://m8ven.ai/mcp/eitapreulajhol/ida_mcp)
Shows your grade and updates automatically. Prefer no grade? Append ?variant=verified to the badge URL.
commit: fdb5f9a1108759f82694f7eb3283e2f1f1899b95
code hash: 727b5e848638672695cdf3a240c0b2e255cf3cdc9506a4b3b8070d106b15c58d
view raw JSON →
Check MCPs from inside your assistant
Tool Check · MCP

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
check_toolsearch_toolscompare_toolsrecommend_alternativescheck_publisherreport_concern
How to add it →Free · no account needed · works in any MCP client