The core tools cover everything you need to orient yourself in a database: health checks and warmup, listing and searching functions and globals, querying imports, number conversion, and saving the IDB. Most tools accept either a single item or a list, and paginated results useDocumentation 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.
next_offset to resume enumeration.
server_health
Returns a live snapshot of the MCP server and the currently open IDB. Call this first to confirm the server is reachable and to discover the database being analysed.
Parameters: none
Returns: ServerHealthResult
Always
"ok" when the server is running.Seconds elapsed since the server process started.
Absolute path to the open
.idb/.i64 file, or null if not available.Root filename of the analysed binary.
Full path to the original input file.
Image base address in hex (e.g.
"0x400000").Whether IDA’s auto-analysis queue is drained.
null if the API is unavailable.Whether the Hex-Rays decompiler is initialised.
Whether the strings cache has been built.
Number of strings currently in the cache.
server_warmup
Initialises IDA subsystems to eliminate first-call latency and transient failures. Run this once at the start of a session — especially before calling decompile or find_regex.
Wait for IDA’s auto-analysis queue to drain before returning.
Build the strings cache used by
find_regex.Initialise the Hex-Rays decompiler plugin.
ServerWarmupResult
true if all requested steps succeeded.List of step results, each with
step (name), ok (bool), ms (duration), and an optional error string.A
ServerHealthResult snapshot taken after warmup completes.lookup_funcs
Resolves one or more function queries to their Function records. Each query can be:
- A hex address like
"0x401000" - An auto-named symbol like
"sub_401000" - A named symbol like
"main"or"check_password" "*"or""to return up to 1 000 functions
Address(es) or name(s) to look up. Accepts a comma-separated string or a JSON array.
list[LookupFuncResult]
The original query string.
A
Function record with addr, name, and size fields, or null on failure.Error description when
fn is null, otherwise null.list_funcs
Lists all functions with optional name filtering and offset/count pagination. Each query in the batch is evaluated independently against the same function list.
One or more pagination queries. Each
ListQuery supports:list[Page[Function]] — each page has data (list of Function) and next_offset (integer | null).
func_query
Richer function filtering than list_funcs. Supports size bounds, type info requirements, regex on names, and explicit sort order.
One or more
FunctionQuery objects.list[FunctionQueryPage] — each page has data, next_offset, and an optional error.
list_globals
Lists named global variables (all IDA names that are not function starts) with optional filtering and pagination. Accepts the same ListQuery shape as list_funcs.
Pagination queries; the same
filter, offset, count fields as ListQuery.list[Page[Global]] — each Global has addr and name.
entity_query
A unified query interface for any entity kind in the database. Supports projection (select only certain fields), address bounds, segment filtering, and sorting.
One or more
EntityQuery objects.list[EntityQueryPage] — each page has kind, data, next_offset, total, and an optional error.
imports
Simple paginated listing of all imported symbols with their module names.
Starting pagination index. Use
0 for the first page.Maximum number of rows to return. Use
0 to return all imports.Page[Import] — each Import has addr, imported_name, and module.
imports_query
Richer import filtering with name and module glob patterns.
One or more
ImportQuery objects.list[ImportsQueryPage] — each page has data (list of Import) and next_offset.
int_convert
Converts numbers to multiple representations simultaneously. This is the recommended tool when an AI needs to convert between hex, decimal, binary, or ASCII — using it avoids hallucinated conversions.
Accepts any Python int() literal as input: "42", "0x2a", "0b101010", "0o52".
One or more conversion requests. Each
NumberConversion supports:list[IntConvertResult]
The original input string.
A
ConvertedNumber with fields decimal, hexadecimal, bytes (space-separated hex), ascii (printable ASCII or null), and binary.Error description when conversion fails, otherwise
null.idb_save
Saves the active IDB database to disk. By default saves to the current IDB path; pass a destination path to save elsewhere.
Destination file path. When empty or omitted, saves to the current IDB path.
IdbSaveResult
true if the save succeeded.The path the file was saved to.
Present only when
ok is false.