MCP ExplorerExplorer

IDA MCP Server

444 MIT
FreeCommunity
Dev Tools
#IDA#reverse engineering#MCP#Model Context Protocol#automation#LLM#IDA Pro
A Model Context Protocol server for IDA interaction and automation. This server provides tools to read IDA database via Large Language Models.

Overview

What is IDA MCP Server

The IDA MCP Server is a Model Context Protocol server designed for interacting with and automating tasks within IDA. It provides tools that leverage Large Language Models to read and interpret IDA database content. Currently in early development, its capabilities are expected to evolve as improvements are made.

Use cases

The IDA MCP Server can be utilized for various tasks including automated analysis of binaries, enhanced querying of IDA databases, and integration with AI-driven tools for advanced code understanding. Developers and reverse engineers can benefit from its functionality to streamline their analysis workflows.

How to use

To use the IDA MCP Server, you can either run it using ‘uv’ without installation or install it via pip. For the pip method, after installation, run the script with ‘python -m mcp_server_ida’. Ensure to set up configurations in ‘claude_desktop_config.json’ depending on your installation method to connect with Claude Desktop.

Key features

Key features of the IDA MCP Server include the ability to read and interpret IDA databases using Language Models, early-stage support for plugin integration, a configuration system for easy setup with tools such as Claude Desktop, and debugging capabilities through the MCP inspector.

Where to use

The IDA MCP Server is intended for use in environments where IDA Pro is utilized, specifically for binary analysis and reverse engineering tasks. It can be incorporated into analysis pipelines where automated querying and enhanced understanding of binaries are required.

Content

IDA MCP Server

[!NOTE]
The idalib mode is under development, and it will not require installing the IDA plugin or running IDA (idalib is available from IDA Pro 9.0+).

Overview

A Model Context Protocol server for IDA interaction and automation. This server provides tools to read IDA database via Large Language Models.

Please note that mcp-server-ida is currently in early development. The functionality and available tools are subject to change and expansion as we continue to develop and improve the server.

Installation

Using uv (recommended)

When using uv no specific installation is needed. We will
use uvx to directly run mcp-server-ida.

Using PIP

Alternatively you can install mcp-server-ida via pip:

pip install mcp-server-ida

After installation, you can run it as a script using:

python -m mcp_server_ida

IDA-Side

Copy repository/plugin/ida_mcp_server_plugin.py and repository/plugin/ida_mcp_server_plugin directory into IDAs plugin directory

Windows: %APPDATA%\Hex-Rays\IDA Pro\plugins

Linux/macOS: $HOME/.idapro/plugins eg: ~/.idapro/plugins

igors-tip-of-the-week-103-sharing-plugins-between-ida-installs

Configuration

Usage with Claude Desktop

Add this to your claude_desktop_config.json:

Using uvx
Using pip installation

Debugging

You can use the MCP inspector to debug the server. For uvx installations:

npx @modelcontextprotocol/inspector uvx mcp-server-ida

Or if you’ve installed the package in a specific directory or are developing on it:

cd path/to/mcp-server-ida/src
npx @modelcontextprotocol/inspector uv run mcp-server-ida

Running tail -n 20 -f ~/Library/Logs/Claude/mcp*.log will show the logs from the server and may
help you debug any issues.

Development

If you are doing local development, there are two ways to test your changes:

  1. Run the MCP inspector to test your changes. See Debugging for run instructions.

  2. Test using the Claude desktop app. Add the following to your claude_desktop_config.json:

UVX

Alternatives

ida-pro-mcp

ida-mcp-server-plugin

mcp-server-idapro

pcm

Screenshots

Screenshot 1
Screenshot 2
Screenshot 3

Tools

ida_get_function_assembly_by_name
Get assembly code for a function by name
ida_get_function_assembly_by_address
Get assembly code for a function by address
ida_get_function_decompiled_by_name
Get decompiled pseudocode for a function by name
ida_get_function_decompiled_by_address
Get decompiled pseudocode for a function by address
ida_get_global_variable_by_name
Get information about a global variable by name
ida_get_global_variable_by_address
Get information about a global variable by address
ida_get_current_function_assembly
Get assembly code for the function at the current cursor position
ida_get_current_function_decompiled
Get decompiled pseudocode for the function at the current cursor position
ida_rename_local_variable
Rename a local variable within a function in the IDA database
ida_rename_global_variable
Rename a global variable in the IDA database
ida_rename_function
Rename a function in the IDA database
ida_rename_multi_local_variables
Rename multiple local variables within a function at once in the IDA database
ida_rename_multi_global_variables
Rename multiple global variables at once in the IDA database
ida_rename_multi_functions
Rename multiple functions at once in the IDA database
ida_add_assembly_comment
Add a comment at a specific address in the assembly view of the IDA database
ida_add_function_comment
Add a comment to a function in the IDA database
ida_add_pseudocode_comment
Add a comment to a specific address in the function's decompiled pseudocode
ida_execute_script
Execute a Python script in IDA Pro and return its output. The script runs in IDA's context with access to all IDA API modules.
ida_execute_script_from_file
Execute a Python script from a file path in IDA Pro and return its output. The file should be accessible from IDA's process.

Comments