
Servidor MCP para Ghidra

ghidraMCP é um servidor Model Context Protocol que permite que LLMs façam engenharia reversa de aplicações de forma autônoma. Ele expõe diversas ferramentas da funcionalidade central do Ghidra para clientes MCP.
https://github.com/user-attachments/assets/36080514-f227-44bd-af84-78e29ee1d7f9
Servidor MCP + Plugin Ghidra
pip install git+https://github.com/LaurieWired/GhidraMCP, depois use ghidra-mcp como o comando abaixo)Primeiro, baixe a release mais recente deste repositório. Ela contém o plugin do Ghidra e o cliente MCP em Python. Depois, você pode importar o plugin diretamente no Ghidra.
File -> Install Extensions+ghidra_12.1.4_PUBLIC_<date>_GhidraMCP.zip da release baixadaFile -> Configure -> DeveloperEdit -> Tool Options -> GhidraMCP HTTP ServerGuia de instalação em vídeo:
https://github.com/user-attachments/assets/75f0c176-6da1-48dc-ad96-c182eb4648c3
Teoricamente, qualquer cliente MCP deve funcionar com o ghidraMCP. A maioria dos clientes aceita um config JSON como o seguinte:
{
"mcpServers": {
"ghidra": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/LaurieWired/GhidraMCP",
"ghidra-mcp",
"--ghidra-server",
"http://127.0.0.1:8080/"
]
}
}
}
O IP e a porta do servidor são configuráveis e devem ser definidos para apontar para a instância do Ghidra de destino. Se não forem definidos, ambos terão como padrão localhost:8080.
Para clientes que se conectam a uma URL em vez de iniciar um comando, primeiro execute o servidor MCP você mesmo:
uvx --from git+https://github.com/LaurieWired/GhidraMCP ghidra-mcp --transport streamable-http --mcp-host 127.0.0.1 --mcp-port 8081 --ghidra-server http://127.0.0.1:8080/
Depois adicione http://127.0.0.1:8081/mcp como um servidor remoto no seu cliente.
Execute MCP: Add Server na Command Palette, ou adicione o seguinte ao .vscode/mcp.json no seu workspace:
{
"servers": {
"ghidra": {
"type": "stdio",
"command": "uvx",
"args": [
"--from",
"git+https://github.com/LaurieWired/GhidraMCP",
"ghidra-mcp",
"--ghidra-server",
"http://127.0.0.1:8080/"
]
}
}
}
Execute o seguinte comando:
claude mcp add ghidra -- uvx --from git+https://github.com/LaurieWired/GhidraMCP ghidra-mcp --ghidra-server http://127.0.0.1:8080/
O ghidra-mcp também pode importar e analisar um binário por conta própria usando o PyGhidra, sem nenhuma interface gráfica do Ghidra em execução. Isso requer Python 3.10–3.13, a extensão GhidraMCP instalada no Ghidra (ou --extension-jar /path/to/GhidraMCP.jar), e GHIDRA_INSTALL_DIR definido para o seu diretório do Ghidra 12.1.4:
uvx --python 3.13 --from "ghidra-mcp[headless] @ git+https://github.com/LaurieWired/GhidraMCP" ghidra-mcp --headless --binary /path/to/target
Use o mesmo comando e argumentos em qualquer uma das configurações de cliente acima. Adicione --project DIR para manter o projeto do Ghidra (e salvar alterações) entre execuções. No macOS, compile o descompilador do Ghidra uma vez com support/gradle/gradlew buildNatives a partir do diretório do Ghidra.
GHIDRA_INSTALL_DIR para o seu diretório do Ghidra 12.1.4cd extension && $GHIDRA_INSTALL_DIR/support/gradle/gradlew buildExtension
O arquivo zip gerado em extension/dist/ inclui o plugin do Ghidra compilado e seus recursos. Esses arquivos são necessários para que o Ghidra reconheça a nova extensão.
O servidor MCP em Python pode ser executado a partir de um checkout com uv run ghidra-mcp, e testado com uv run pytest.