Plugin de servidor MCP autônomo para IDA Pro.
[!IMPORTANT] Arquivamento planejado: O IDAssistMCP está planejado para arquivamento à medida que o IDA Pro introduz um servidor MCP nativo integrado. O suporte nativo elimina a necessidade de manter uma integração MCP separada e a mantém alinhada com o próprio IDA Pro. Use o servidor MCP nativo do IDA Pro assim que estiver disponível na sua versão instalada. Este repositório permanecerá disponível para referência.
Plugin de servidor MCP (Model Context Protocol) autônomo para IDA Pro 9.x que expõe as capacidades de análise do IDA a clientes LLM como o Claude Desktop.

action/format/direction para comentários, variáveis, tipos, xrefs, bookmarks e códigoexecute_on_main_thread()IDASSISTMCP_)hcli plugin install idassistmcp
Isso instala automaticamente o plugin e suas dependências Python.
Baixe o zip da versão mais recente em GitHub Releases e extraia-o no diretório de plugins do IDA:
Linux / macOS:
unzip IDAssistMCP-*.zip -d ~/.idapro/plugins/
Windows:
Extraia o zip em %APPDATA%\Hex-Rays\IDA Pro\plugins\.
Em seguida, instale as dependências usando o Python incluído no IDA (não o Python do sistema):
Linux / macOS:
<IDA_INSTALL_DIR>/python3/bin/pip3 install -r ~/.idapro/plugins/IDAssistMCP/requirements.txt
Windows:
"<IDA_INSTALL_DIR>\python3\python.exe" -m pip install -r "%APPDATA%\Hex-Rays\IDA Pro\plugins\IDAssistMCP\requirements.txt"
Substitua
<IDA_INSTALL_DIR>pelo caminho de instalação do seu IDA Pro.Dica: Você também pode usar a variável de ambiente
IDAUSRpara especificar um diretório de plugins personalizado.
Adicione ao seu claude_desktop_config.json do Claude Desktop:
{
"mcpServers": {
"idassistmcp": {
"url": "http://localhost:9080/mcp"
}
}
}
Configure via variáveis de ambiente com o prefixo IDASSISTMCP_:
| Variável | Padrão | Descrição |
|---|---|---|
IDASSISTMCP_SERVER__HOST | localhost | Endereço de bind do servidor |
IDASSISTMCP_SERVER__PORT | 9080 | Porta do servidor |
IDASSISTMCP_SERVER__TRANSPORT | streamablehttp | Tipo de transporte (sse ou streamablehttp) |
IDASSISTMCP_DEBUG | false | Ativar modo de depuração |
IDASSISTMCP_LOG_LEVEL | INFO | Nível de log |
| Ferramenta | Descrição |
|---|---|
list_binaries | Lista o binário atualmente carregado |
get_binary_info | Metadados detalhados do binário (arquitetura, hashes, segmentos) |
| Ferramenta | Descrição |
|---|---|
get_code | Obtém o código da função — format: 'decompile' (pseudo-C) ou 'disasm' (assembly) |
analyze_function | Análise abrangente: metadados, CFG, chamadores/chamados, descompilação |
get_basic_blocks | Blocos básicos do CFG com sucessores/predecessores |
get_function_stack_layout | Layout do frame de pilha (locais, argumentos, registradores salvos) |
| Ferramenta | Ações | Descrição |
|---|---|---|
xrefs | direction: to/from/both, include_calls: bool | Xrefs e chamadores/chamados opcionais para um endereço |
| Ferramenta | Ações | Descrição |
|---|---|---|
comments | action: get, set, list, remove | Gerenciar comentários (regular, repetível, função) |
| Ferramenta | Ações | Descrição |
|---|---|---|
variables | action: list, rename | Listar locais ou renomear variáveis locais/globais com scope: auto, local, global |
| Ferramenta | Ações / Descrição |
|---|---|
types | action: list, set, create_struct, create_enum — gerenciar tipos do IDB |
get_classes | Listar tipos struct/class da biblioteca de tipos |
| Ferramenta | Descrição |
|---|---|
get_functions | Todas as funções com filtragem e paginação |
search_functions_by_name | Buscar por padrão de nome e filtros de tamanho |
get_function_by_name | Busca por nome exato |
get_function_by_address | Busca por endereço |
get_function_statistics | Estatísticas agregadas (contagens, tamanhos, top-10) |
| Ferramenta | Descrição |
|---|---|
rename_symbol | Renomear qualquer símbolo (função ou dado) |
batch_rename | Renomear vários símbolos em lote |
| Ferramenta | Descrição |
|---|---|
get_imports | Tabela de imports agrupada por módulo |
get_exports | Tabela de exports |
get_strings | Tabela de strings com paginação |
get_segments | Segmentos de memória com permissões |
get_entry_points | Todos os pontos de entrada do binário |
| Ferramenta | Descrição |
|---|---|
read_memory | Ler bytes brutos em um endereço |
get_data_at | Obter dados tipados em um endereço |
search_bytes | Busca de padrão de bytes binários |
search_strings | Busca de strings com paginação |
create_data_var | Definir variável de dados em um endereço (byte/word/dword/qword/float/ascii/tipo C) |
get_data_vars | Listar variáveis de dados definidas (itens não-código) |
| Ferramenta | Descrição |
|---|---|
patch_bytes | Aplicar patch em bytes brutos no IDB |
assemble_code | Montar texto de instrução em um endereço e opcionalmente aplicar patch |
export_program | Exportar o binário com patch ou o banco de dados do IDA para o disco |
| Ferramenta | Descrição |
|---|---|
navigate_to | Mover o cursor do IDA para um endereço |
bookmarks | Gerenciamento consolidado de bookmarks - ações: list, set, remove |
get_current_address | Obter endereço e contexto na posição do cursor |
get_current_function | Obter informações da função na posição do cursor |