Skip to main content
Glama
31Benzi

IDA Pro MCP Server

by 31Benzi

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

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

Tools

Functions exposed to the LLM to take actions

NameDescription
decompile_functionA

Decompile a function using the Hex-Rays decompiler. Pass a function name or hex address (e.g. '0x401000' or 'main'). Returns C-like pseudocode.

disassemble_functionB

Get the assembly listing of a function. Pass a function name or hex address (e.g. '0x401000' or 'main').

disassemble_rangeA

Disassemble an arbitrary address range. Pass hex addresses (e.g. '0x401000', '0x401100').

get_bytesB

Read raw bytes from an address. Returns hex dump. Default reads 16 bytes.

list_functionsA

List all functions in the binary. Optionally pass a filter string to match function names (case-insensitive).

get_function_infoA

Get detailed information about a function. Pass a function name or hex address.

list_segmentsB

List all segments (sections) in the binary with their permissions and sizes.

get_xrefs_toA

Get all cross-references TO an address (who calls/references this location). Pass hex address or name.

get_xrefs_fromA

Get all cross-references FROM an address (what does this location call/reference). Pass hex address or name.

list_stringsA

List all defined strings in the binary. Optionally filter by substring (case-insensitive).

get_importsB

List all imported functions grouped by module.

get_exportsB

List all exported functions/symbols.

list_structsA

List all defined structures/unions in the IDA database with their members.

list_enumsB

List all defined enumerations in the IDA database.

rename_functionA

Rename a function. Pass the current name or hex address, and the new name.

rename_addressC

Rename any address (global variable, label, etc). Pass hex address and new name.

set_commentA

Set a comment at an address. Use is_repeatable=True for repeatable comments that propagate to xrefs.

set_function_typeA

Set a function's type/prototype. Pass function name or address, and C-style prototype (e.g. 'int __cdecl func(int a, char *b)').

set_typeA

Set the type at an address. Pass hex address and C-style type declaration.

create_structA

Create a new structure type. Pass a name and list of fields, each with 'name' and 'type' keys. Example fields: [{"name": "size", "type": "int"}, {"name": "data", "type": "char *"}]

search_textA

Search through disassembly text for a string. Matches against instruction mnemonics, operands, and comments.

search_bytesA

Search for a byte pattern in the binary. Pass hex bytes with optional spaces (e.g. '90 90 90' or 'CC CC' or '48 8B 05').

start_debuggerB

Start the debugger for the currently loaded binary. Optionally pass command-line arguments and binary path.

get_debugger_statusA

Check if the debugger is currently active and whether execution is suspended.

set_breakpointA

Set a breakpoint at an address. Pass hex address or function name.

delete_breakpointC

Delete a breakpoint at an address.

list_breakpointsC

List all currently set breakpoints with their status.

enable_breakpointC

Enable or disable a breakpoint without removing it.

step_intoA

Step into the next instruction (follows calls into functions).

step_overA

Step over the next instruction (executes calls without entering them).

continue_executionB

Continue process execution until the next breakpoint or event.

suspend_debuggerA

Suspend (pause) the running process.

exit_debuggerB

Terminate the debugged process and stop the debugger.

get_registersA

Read all CPU register values. Requires the debugger to be active and suspended.

read_debug_memoryA

Read memory from the debugged process. Requires active debugger. Returns hex dump.

get_stack_traceA

Get the current call stack trace. Requires active debugger.

patch_bytesB

Patch bytes at an address in the IDA database. Pass hex bytes with optional spaces (e.g. '90 90 90' for NOP sled, 'EB 05' for short jump).

execute_idapythonB

Execute arbitrary IDAPython code inside the IDA session. Set 'result' or 'output' variable in your script to return data. Example: 'import idc; result = idc.get_screen_ea()'

load_type_libraryC

Load a type information library (.til) file into the current database.

list_type_librariesB

List all loaded type information libraries (TILs) in the current database.

apply_callee_typeB

Apply a type signature to a call site (callee). Useful when the function pointer type is unknown at a call instruction.

get_function_callersA

Get all functions that call a given function. Higher-level than xrefs — groups by calling function and shows call sites.

get_function_calleesA

Get all functions called by a given function. Shows what a function depends on.

make_codeB

Convert bytes at an address into code (disassembled instruction). Optionally undefine 'size' bytes first.

make_dataB

Convert bytes at an address into data. Types: byte, word, dword, qword, float, double.

make_stringA

Define a C-style string at an address. Pass length=0 to auto-detect (null-terminated).

undefineC

Undefine (delete) items at an address, reverting them to raw bytes.

define_functionB

Create a new function at a given address range. If end_address is empty, IDA will auto-detect the function boundary.

undefine_functionC

Delete/undefine a function at an address. The code remains but is no longer treated as a function.

add_bookmarkA

Add a bookmark at an address with optional description. Bookmarks persist in the IDA database.

list_bookmarksA

List all bookmarks in the IDA database.

delete_bookmarkA

Delete a bookmark by slot number (get slot numbers from list_bookmarks).

get_local_variablesA

Get all local variables and arguments of a decompiled function. Requires Hex-Rays. Pass function name or address.

rename_local_variableC

Rename a local variable or argument in a decompiled function. Requires Hex-Rays.

get_global_variablesA

List named global data variables in the binary. Optionally filter by substring.

get_flowchartB

Get the control flow graph (basic blocks and edges) of a function. Shows predecessors and successors for each block. Essential for understanding branch logic.

get_commentB

Read the comment at an address. Set is_repeatable=True for repeatable comments.

get_all_commentsA

Get all comments within a function (both regular and repeatable). Pass function name or address.

get_function_commentB

Read the function-level comment (appears above/below the function header in disassembly).

set_function_commentB

Set a function-level comment. These appear above (anterior) or below (posterior) the function header.

get_stack_frameA

Get the complete stack frame layout of a function — all stack variables, their offsets, sizes, and the overall frame geometry.

set_operand_typeA

Change how an operand is displayed. operand_num: 0 for first, 1 for second. display_type: hex, decimal, octal, binary, char, default.

set_local_variable_typeC

Change the type of a local variable in a decompiled function. Requires Hex-Rays. Pass C-style type (e.g. 'SOCKET', 'struct sockaddr_in *').

get_colorB

Get the color of an instruction, function, or segment. Returns hex RGB value.

set_colorA

Set the color of an instruction, function, or segment. Color is RGB as integer (e.g. 0xFF0000 for red, 0x00FF00 for green). item_type: instruction, function, segment.

get_function_hashA

Calculate a hash of a function's raw bytes. Useful for identifying identical/similar functions across binaries. Algorithms: md5, sha1, sha256.

get_exception_infoA

Check if a function contains exception handling (try/catch/throw). Returns the decompiled code if exception handling is found.

get_microcodeB

Get the Hex-Rays intermediate representation (microcode) for a function. Maturity levels: generated, preoptimized, locopt, calls, glbopt1, glbopt2, glbopt3, lvars.

save_databaseB

Save the IDA database. Pass a path to save to a specific location, or leave empty to save in-place.

apply_flirt_signatureB

Apply a FLIRT signature file (.sig) to identify library functions in stripped binaries. Pass the signature name (e.g. 'vc64rtf' for MSVC runtime).

list_flirt_signaturesA

List all FLIRT signatures currently applied to the database.

create_segmentB

Create a new memory segment. permissions: bitmask (4=read, 2=write, 1=execute, 7=rwx). seg_class: CODE, DATA, BSS, STACK, etc.

delete_segmentB

Delete the segment containing the given address. The data is kept but the segment definition is removed.

set_segment_permissionsB

Change the read/write/execute permissions of the segment containing the given address.

create_arrayA

Create an array at an address. element_type: byte, word, dword, qword. count: number of elements.

navigate_toB

Jump IDA's cursor to an address. This moves the user's view in the IDA GUI to the specified location.

produce_asmC

Produce a clean assembly listing for a function, suitable for copy-paste or file export.

produce_cB

Produce clean C pseudocode for a function, suitable for copy-paste or file export. Requires Hex-Rays.

run_idc_scriptC

Execute IDC script code (IDA's native scripting language). Returns the evaluation result.

run_ida_actionA

Trigger a registered IDA UI action by name (e.g. 'ToggleBnds', 'MakeCode'). Use list_ida_actions to see available actions.

list_ida_actionsA

List all registered IDA UI actions that can be triggered with run_ida_action.

list_debugger_threadsA

List all threads in the debugged process. Requires active debugger.

switch_threadA

Switch the debugger's active thread. Pass the thread ID from list_debugger_threads.

add_watchpointC

Set a hardware watchpoint (data breakpoint). Triggers when memory at address is accessed. watch_type: write, read, execute.

get_binary_infoA

Get metadata about the currently loaded binary (filename, architecture, bitness, entry point).

get_analysis_statusA

Check if IDA's auto-analysis has completed. Some tools may return incomplete results if analysis is still running.

pingA

Check connectivity to IDA Pro. Returns 'Connected' if the IDA plugin is running and reachable.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription
binary_info_resourceCurrent binary metadata from IDA Pro.

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/31Benzi/IDA-PRO-MCP'

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