Skip to main content
Glama

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": true
}
logging
{}
prompts
{
  "listChanged": true
}
resources
{
  "subscribe": false,
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
check_connectionA

Health check. Returns {ok, instance_id, pid, input_file, ...} for the resolved IDA instance.

list_databasesA

List all live IDA databases/instances ({instance_id, pid, headless, input_file}); pass one as instance_id on every tool call while several are live.

open_databaseA

Open a binary or .i64 database in a headless idalib worker (creates/analyzes the .i64). Call this first. Record the returned instance.instance_id — every subsequent tool call must carry it while multiple databases are open.

save_databaseB

Save the current (or specified) IDA database to disk (.i64).

close_databaseA

Release an IDA database worker: saved and shut down when the last user detaches; terminate=true forces shutdown. Use when its analysis is finished or no longer needed — the other instances are unaffected.

ida_python_referenceA

Search the official IDAPython API documentation (from the attached IDA runtime). Returns signatures + docstrings; pass 'modules' as query to list modules.

add_segmentC

Add a new memory segment to the IDB.

apply_patchC

Apply IDB byte patches to a copied input file and export it.

callgraphC

Build a call graph by walking call references from the root function(s).

convert_numberB

Convert number to hex/unsigned/signed representations.

create_functionC

Create a function at an address.

dbg_add_bpC

Add breakpoint(s) at address(es).

dbg_callstackB

Get current call stack (requires active debugger).

dbg_continueC

Continue execution.

dbg_delete_bpC

Delete breakpoint(s) at address(es).

dbg_enable_bpC

Enable or disable breakpoint(s).

dbg_exitC

Exit debugger.

dbg_list_bpsA

List all breakpoints (works without active debugger).

dbg_read_memC

Read memory from debugged process.

dbg_regsB

Get all debugger registers (requires active debugger).

dbg_run_toC

Run debugger to specific address.

dbg_startC

Start the debugger on the current input file. The local debugger is

dbg_statusB

Get debugger status: state, pid, threads, current instruction pointer.

dbg_step_intoC

Step into instruction.

dbg_step_overC

Step over instruction.

dbg_thread_regsA

Read registers of one or more debug threads (temporarily selects each thread, then restores).

dbg_write_memC

Write memory to debugged process.

declare_enumC

Declare or update an enum in the local type library.

declare_stackC

Create stack variable(s) at specified offset(s).

declare_structC

Declare or update a struct in the local type library.

declare_typedefC

Declare or update a typedef in the local type library.

decompileB

Decompile function(s) at given address(es). Requires Hex-Rays.

delete_functionC

Delete an existing function.

delete_segmentC

Delete a memory segment from the IDB.

delete_stackC

Delete stack variable(s) by name.

diff_before_afterB

Snapshot a function's decompilation, run a modification tool, return the unified diff.

disasmB

Disassemble function(s) into listing lines (hex addresses, no color tags).

find_bytesC

Search for byte pattern with wildcards (?? for any byte).

find_instructionsC

Find instructions by mnemonic and/or a regex over the instruction text.

find_regexB

Search symbol names (functions, globals, labels) with a regular expression.

find_xref_signaturesC

Find signatures for code locations that reference an address. For each

force_recompileA

Invalidate cached Hex-Rays decompilations so they are regenerated.

get_basic_blocksC

Get basic blocks with control flow information.

get_bytesC

Read raw bytes at address(es).

get_calleesC

Get callees grouped by target function and call sites.

get_callersC

Get callers grouped by calling function and call sites.

get_cursorC

Get current cursor position and context in IDA.

get_entry_pointsC

Get all program entry points.

get_function_signatureC

Get the best available function signature string.

get_metadataB

Get IDB metadata (input_file, arch, bits, endian, hash).

get_stringC

Read null-terminated string(s).

get_struct_infoB

Get detailed structure/union definition with fields.

infer_typesC

Guess the type at each address with IDA's type inference and apply it as a guessed type.

linear_disasmB

Linear disassemble from arbitrary address (not limited to functions).

list_exportsC

List exported functions/symbols.

list_functionsC

List functions with pagination and optional filtering.

list_globalsC

List global (non-function) symbols with pagination.

list_importsB

List imported functions with module names.

list_local_typesB

List all local types defined in the database.

list_segmentsC

List memory segments with permissions.

list_stringsC

List extracted strings with pagination.

list_structsB

List all structures/unions defined in the database.

make_codeC

Convert bytes at an address into code.

make_dataC

Create typed data items at an address.

make_signatureC

Create unique byte signatures for addresses. Generates the shortest

make_signature_for_functionC

Create unique byte signatures for function entry points. Resolves each

make_signature_for_rangeC

Create a byte signature for a specific address range (e.g. a selected

make_stringC

Create a string literal at an address.

patch_asmB

Assemble instruction text and patch it at address(es). Requires processor assembler support (e.g. x86).

patch_bytesC

Patch bytes at address(es). Each item: {address, bytes}.

py_evalC

Execute Python code in IDA context.

py_exec_fileC

Execute a Python script file in IDA context and capture output.

read_scalarC

Read scalar integer(s) with explicit width.

rename_functionC

Rename function. Accepts function name or address.

rename_global_variableD

Rename global variable.

rename_local_variableC

Rename local variable (Hex-Rays).

save_idbC

Save the current IDA database to disk.

search_textB

Search disassembly listing text (instructions, comments) across the database.

set_commentC

Set comments at address(es). Each item: {address, comment}.

set_function_prototypeC

Set function prototype (type signature).

set_global_variable_typeC

Set global variable type.

set_local_variable_typeB

Set local variable type (Hex-Rays).

set_op_typeB

Set the display type of an instruction operand (hex/dec/oct/bin/char/stkvar).

stack_frameC

Get stack frame variables for function(s).

survey_binaryC

High-level binary overview: metadata, entity counts, segments, entry points.

trace_data_flowC

Trace data references (reads/writes/offsets) to and from an address.

undefine_itemsD

Undefine items in a range.

wait_for_analysisA

Block until IDA auto-analysis (functions, xrefs, strings) completes.

xrefs_fromC

Get all cross-references from address(es).

xrefs_toB

Get all cross-references to address(es).

xrefs_to_fieldC

Search struct field references. Heuristic by default (name/offset text

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

C2.6/5.0

Scored across 91 tools

Disambiguation4/5

Most tools target clearly distinct IDA operations, especially with separate namespaces for database lifecycle, analysis, xrefs, types, patching, and debugging. However, save_database and save_idb are exact duplicates, dbg_regs/dbg_thread_regs overlap, and the signature-creation family plus apply_patch/patch_bytes require careful reading to choose correctly.

Naming Consistency3/5

All names are snake_case, which helps, but the naming style is mixed: many verb_noun names, many bare verbs like disasm/decompile, noun names like callgraph/stack_frame/survey_binary, a dbg_ prefix for debugger tools, and xrefs_to/xrefs_from directional names. The set is readable but does not follow one predictable pattern.

Tool Count1/5

With 91 tools, the surface is far beyond a reasonably scoped server and imposes high selection burden on an agent. Even though many tools are useful, the count is extreme for the apparent domain and includes duplicates and fine-grained variants that could be consolidated.

Completeness4/5

The surface is very comprehensive for IDA reverse engineering: database management, analysis, disassembly/decompilation, xrefs, functions, types, segments, strings, patching, signatures, debugging, and Python execution are all covered. Minor gaps exist around local-type deletion and richer per-function detail aggregation, but core workflows are well supported.

Maintenance

ActivityMaintained
ResponsivenessWithin a week