Skip to main content
Glama
andsopwn

ida-fusion-mcp

by andsopwn

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{}
resources
{
  "subscribe": false,
  "listChanged": false
}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_instancesA

List all registered IDA Pro instances with their metadata.

refresh_toolsC

Re-discover tools from IDA Pro instances.

compare_binariesA

Compare two IDA instances by diffing their binary metadata, entrypoints, and segments. Takes two instance_id values and returns what is common vs unique to each.

list_cached_outputsA

List all cached truncated outputs with cache_id, age, size, and tool name. Use this to find cache IDs for get_cached_output.

get_cached_outputA

Retrieve cached output from a previous tool call that was truncated. Use this to get additional chunks of large responses.

decompile_to_fileA

Decompile functions and save results directly to files on disk. IMPORTANT: Each function requires a separate IDA decompile call. For large binaries, check function count with list_funcs first before using 'all'. Hundreds of functions can take minutes; thousands can take much longer.

lookup_funcsB

Get functions by address or name (auto-detects)

int_convertC

Convert numbers to different formats

list_funcsA

List functions WARNING: IDA executes on a single main thread. Long-running operations will block ALL subsequent requests and make IDA unresponsive. For large binaries (100K+ functions), use count/offset pagination. Avoid count=0 (all) with glob filters on large binaries.

list_globalsD

List globals

refresh_cachesA

Force-refresh all caches (strings, functions, globals). Call this after bulk modifications to ensure list_funcs/list_globals return fresh data.

importsC

List imports

find_regexB

Search strings with case-insensitive regex patterns

decompileB

Decompile function to pseudocode

disasmA

Disassemble function to assembly instructions

xrefs_toC

Get cross-references to specified addresses

xrefs_to_fieldC

Get cross-references to structure fields

calleesC

Get functions called by the specified functions

find_bytesB

Search for byte patterns in the binary (supports wildcards with ??)

basic_blocksB

Get control flow graph basic blocks for functions

findB

Search for patterns in the binary (strings, immediate values, or references)

export_funcsC

Export function data in various formats

callgraphB

Build call graph starting from root functions

get_bytesB

Read bytes from memory addresses

get_intB

Read integer values from memory addresses

get_stringB

Read strings from memory addresses

get_global_valueA

Read global variable values by address or name (auto-detects hex addresses vs names)

patchB

Patch bytes at memory addresses with hex data

put_intB

Write integer values to memory addresses

declare_typeD

Declare types

read_structA

Reads struct type definition and parses actual memory values at the given address as instances of that struct type.

If struct name is not provided, attempts to auto-detect from address. Auto-detection only works if IDA already has type information applied at that address

Returns struct layout with actual memory values for each field.

search_structsD

Search structs

set_typeB

Apply types (function/global/local/stack)

infer_typesC

Infer types

set_commentsC

Set comments at addresses (both disassembly and decompiler views)

patch_asmC

Patch assembly instructions at addresses

renameC

Unified rename operation for functions, globals, locals, and stack variables

append_commentsA

Append comments at addresses, deduping exact text by default. Unlike set_comments (which overwrites), this preserves existing annotations — use it for incremental commentary. scope='auto' (default) writes a function comment when addr is a function start, otherwise a line comment; force with scope='func' or 'line'. dedupe=True skips writes when the exact stripped text already appears on its own line.

define_funcA

Define a function at each given address. IDA infers bounds unless an explicit end address is provided. Returns {addr, start, end} on success or {addr, start, error} if the function already exists or add_func fails. Use this when IDA auto-analysis missed a function entry point.

define_codeA

Convert raw bytes to a code instruction at each given address. Returns {addr, ea, length} on success (length is the instruction byte length) or {addr, ea, error} if create_insn failed. Use this when IDA classified an instruction as data or failed to decode.

undefineA

Undefine item(s) at each address, converting them back to raw bytes. Size is determined from end (exclusive) or size; defaults to 1 byte. Uses ida_bytes.DELIT_EXPAND so adjacent items spanning into the range are fully removed. Returns {addr, start, size} on success.

stack_frameC

Get stack vars

declare_stackC

Create stack vars

delete_stackC

Delete stack vars

py_evalA

Execute Python code in IDA context. Returns dict with result/stdout/stderr. Has access to all IDA API modules. Supports Jupyter-style evaluation. WARNING: IDA executes on a single main thread. Long-running operations will block ALL subsequent requests and make IDA unresponsive. Do NOT iterate all functions, bulk decompile, or run heavy loops. Use decompile_to_file for batch decompilation instead.

survey_binaryA

Get a compact overview of the binary in one call. Returns file metadata, segment layout, entry points, statistics, top 15 strings and functions ranked by xref count (functions include classification: thunk/wrapper/leaf/dispatcher/ complex), imports by category, and call graph summary. Use this as your FIRST tool call when starting analysis. Do not call list_funcs, imports, or find_regex separately for triage — this returns all of that. Use detail_level='minimal' for binaries with >10k functions.

analyze_functionA

Compact single-function analysis: pseudocode (capped at 100 lines), top strings, top non-trivial constants, callers, callees, xrefs, comments, and basic block summary. Use this for "tell me everything about function X" in one call instead of chaining decompile + callees + xrefs_to separately.

analyze_componentA

Analyze related functions as a group: per-function compact summaries, internal call graph (edges only between supplied functions), shared globals, interface vs internal classification, and strings used by multiple members.

diff_before_afterA

Apply a rename/type/comment action and return the before/after decompilation side by side. Actions: 'rename_func' ({name}), 'set_type' ({type}), 'set_comment' ({comment}). Useful to verify a rename or type change actually improved readability. Returns {before, after, action_applied, changes_detected}.

trace_data_flowA

Follow cross-references from or to an address, automatically traversing multiple hops. 'forward' follows xrefs-from, 'backward' follows xrefs-to. Returns nodes (with function name, instruction, code/data classification) and edges. Do not use for call graph traversal — use callgraph for that.

make_signatureB

Create unique byte signatures for addresses.

make_signature_for_functionB

Create unique byte signatures for function entry points.

make_signature_for_rangeA

Create a byte signature for an explicit address range.

find_xref_signaturesB

Find signatures for code locations that reference an address.

type_queryC

Query local types with structured filters and pagination.

type_inspectC

Inspect named types with size, declaration, and optional member layout.

type_apply_batchC

Apply multiple type edits and return aggregate status.

entity_queryB

Query IDB entities with filtering, projection, and pagination.

search_textC

Search rendered listing text using IDA native text search.

py_exec_fileC

Execute a Python script file in IDA context.

dbg_statusB

Return debugger lifecycle state and current IP if suspended.

dbg_set_bp_conditionB

Set or clear breakpoint conditions in batch.

dbg_gpregsB

Get general-purpose registers for the current thread.

dbg_gpregs_remoteB

Get general-purpose registers for specified thread IDs.

dbg_regs_namedB

Get selected registers for the current thread.

dbg_regs_named_remoteB

Get selected registers for a specific thread ID.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/andsopwn/ida-fusion-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server