IDAssistMCP
Servidor plugin MCP (Model Context Protocol) independente para IDA Pro 9.x que expõe as capacidades de análise do IDA para clientes LLM como o Claude Desktop.

Funcionalidades
- 41 ferramentas MCP cobrindo análise binária, descompilação, referências cruzadas, gerenciamento de símbolos, sistema de tipos, navegação, patch, exportação e muito mais
- 6 ferramentas consolidadas com parâmetros
action/format/direction para comentários, variáveis, tipos, xrefs, marcadores e código
- 8 recursos MCP para metadados binários navegáveis (triagem, funções, imports, exports, strings, informações, segmentos, seções)
- 7 prompts guiados para fluxos de trabalho comuns de engenharia reversa (análise de funções, identificação de vulnerabilidades, documentação, rastreamento de fluxo de dados, comparação de funções, recuperação de structs, análise de protocolos de rede)
- Transportes SSE e HTTP Streamable via servidor ASGI Hypercorn
- Modificações IDB thread-safe via wrapper
execute_on_main_thread()
- Cache de análise LRU para operações custosas como descompilação
- Gerenciador de tarefas assíncronas para operações de longa duração
- Configuração Pydantic com suporte a variáveis de ambiente (prefixo
IDASSISTMCP_)
Instalação
Pré-requisitos
- IDA Pro 9.x com Python 3.10+
- Descompilador Hex-Rays (opcional, para ferramentas de descompilação)
Opção 1: Gerenciador de Plugins do IDA (recomendado)
hcli plugin install idassistmcp
Isso instala automaticamente o plugin e suas dependências Python.
Opção 2: Instalação manual (a partir do tarball de release)
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 empacotado com o 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 IDA Pro.
Dica: Você também pode usar a variável de ambiente IDAUSR para especificar um diretório de plugins personalizado.
Uso
Iniciando o Servidor
- Abra um binário no IDA Pro
- Pressione Ctrl+Shift+M ou vá em Edit > Plugins > IDAssistMCP
- A URL do servidor MCP será exibida na janela de saída do IDA
- Pressione Ctrl+Shift+M novamente para parar o servidor
Configuração do Claude Desktop
Adicione ao seu claude_desktop_config.json do Claude Desktop:
{
"mcpServers": {
"idassistmcp": {
"url": "http://localhost:9080/mcp"
}
}
}
Variáveis de Ambiente
Configure via variáveis de ambiente com o prefixo IDASSISTMCP_:
Referência de Ferramentas
Gerenciamento de Binários (2)
| Ferramenta | Descrição |
|---|
list_binaries | Listar o binário atualmente carregado |
get_binary_info | Metadados detalhados do binário (arquitetura, hashes, segmentos) |
Análise de Código (4)
Referências Cruzadas (1 consolidada)
| Ferramenta | Ações | Descrição |
|---|
xrefs | direction: to/from/both, include_calls: bool | Xrefs e opcionalmente chamadores/chamados para um endereço |
Comentários (1 consolidada)
| Ferramenta | Ações | Descrição |
|---|
comments | action: get, set, list, remove | Gerenciar comentários (regulares, repetíveis, de função) |
Variáveis (1 consolidada)
| Ferramenta | Ações | Descrição |
|---|
variables | action: list, rename | Listar locais, ou renomear variáveis locais/globais com scope: auto, local, global |
Tipos (2 — 1 consolidada + 1 independente)
| 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 |
Descoberta de Funções (5)
Gerenciamento de Símbolos (2)
| Ferramenta | Descrição |
|---|
rename_symbol | Renomear qualquer símbolo (função ou dado) |
batch_rename | Renomear em lote múltiplos símbolos |
Análise de Dados (6)
Patch (3)
| Ferramenta | Descrição |
|---|
patch_bytes | Aplicar patch de 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 patcheado ou banco de dados IDA para disco |
Navegação (4)
Gerenciamento de Tarefas (4)
| Ferramenta | Descrição |
|---|
start_task | Iniciar tarefa assíncrona em segundo plano |
get_task_status | Verificar progresso da tarefa |
Estrutura do Projeto
IDAssistMCP/
├── idassistmcp_plugin.py # Ponto de entrada do plugin do IDA
├── requirements.txt
├── README.md
└── src/
└── idassist_mcp/
├── __init__.py
├── server.py # Servidor FastMCP + transporte
├── context.py # Contexto IDA de binário único
├── tools.py # 41 ferramentas MCP (API do IDA)
├── resources.py # 8 recursos MCP
├── prompts.py # 7 prompts de fluxo de trabalho guiado
├── config.py # Configurações Pydantic
├── cache.py # Cache de análise LRU
├── tasks.py # Gerenciador de tarefas assíncronas
├── logging.py # Wrapper de logging do IDA
├── utils.py # Utilitários específicos do IDA
└── ui/
└── tool_registry.py # Catálogo de ferramentas para interface
Licença
Consulte o arquivo LICENSE para obter detalhes.