IDA Pro MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
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
Server capabilities have not been inspected yet.
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| check_connectionB | Check if the IDA plugin is running |
| get_metadataB | Get metadata about the current IDB |
| get_function_by_nameC | Get a function by its name |
| get_function_by_addressC | Get a function by its address |
| get_current_addressB | Get the address currently selected by the user |
| get_current_functionB | Get the function currently selected by the user |
| convert_numberC | Convert a number (decimal, hexadecimal) to different representations |
| list_functionsB | List all functions in the database (paginated) |
| list_globals_filterB | List matching globals in the database (paginated, filtered) |
| list_globalsB | List all globals in the database (paginated) |
| list_importsB | List all imported symbols with their name and module (paginated) |
| list_strings_filterB | List matching strings in the database (paginated, filtered) |
| list_stringsC | List all strings in the database (paginated) |
| list_local_typesB | List all Local types in the database |
| decompile_functionC | Decompile a function at the given address |
| disassemble_functionC | Get assembly code for a function |
| get_xrefs_toC | Get all cross references to the given address |
| get_xrefs_to_fieldC | Get all cross references to a named struct field (member) |
| get_calleesB | Get all the functions called (callees) by the function at function_address |
| get_callersC | Get all callers of the given address |
| get_entry_pointsB | Get all entry points in the database |
| set_commentB | Set a comment for a given address in the function disassembly and pseudocode |
| rename_local_variableC | Rename a local variable in a function |
| rename_global_variableC | Rename a global variable |
| set_global_variable_typeC | Set a global variable's type |
| get_global_variable_value_by_nameA | |
| get_global_variable_value_at_addressB | |
| rename_functionC | Rename a function |
| set_function_prototypeC | Set a function's prototype |
| declare_c_typeC | Create or update a local type from a C declaration |
| set_local_variable_typeC | Set a local variable's type |
| get_stack_frame_variablesC | Retrieve the stack frame variables for a given function |
| get_defined_structuresC | Returns a list of all defined structures |
| rename_stack_frame_variableB | Change the name of a stack variable for an IDA function |
| create_stack_frame_variableC | For a given function, create a stack variable at an offset and with a specific type |
| set_stack_frame_variable_typeC | For a given disassembled function, set the type of a stack variable |
| delete_stack_frame_variableC | Delete the named stack variable for a given function |
| read_memory_bytesA | |
| data_read_byteA | |
| data_read_wordA | |
| data_read_dwordA | |
| data_read_qwordA | |
| data_read_stringA | |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 43 tools
The tool set has clear functional groupings, but there is significant overlap between data reading tools (data_read_byte, data_read_word, etc.) and memory/global variable tools, with explicit guidance to prefer certain tools over others indicating ambiguity. Tools like list_functions and get_function_by_address serve distinct but related purposes that could cause confusion in selection.
Most tools follow a consistent verb_noun or verb_noun_preposition pattern (e.g., get_function_by_address, set_global_variable_type), with clear action-object naming. Minor deviations exist, such as convert_number (verb_noun) vs. declare_c_type (verb_noun), but overall the naming is predictable and readable across the set.
With 43 tools, the count is excessive for typical MCP server purposes, leading to potential cognitive overload and reduced usability. While IDA Pro is a complex domain, the tool surface could be consolidated (e.g., merging data_read_* variants) to improve coherence without losing functionality.
The tool set comprehensively covers IDA Pro's core functionalities, including disassembly, decompilation, data reading, variable and type management, cross-referencing, and metadata retrieval. It supports full CRUD/lifecycle operations for functions, variables, and types, with no obvious gaps for agent-driven analysis workflows.