GhidraMCP

GhidraMCP

MCP server integrating Ghidra reverse engineering tool with LLMs, enabling automated binary analysis, decompilation, and symbol management via MCP.

Category
Visit Server

README

GhidraMCP for Ghidra 12.0.1

Ghidra Version JDK Version License

An updated fork of LaurieWired's GhidraMCP with full support for Ghidra 12.0.1 and JDK 21.

What's Changed from Original

Feature Original This Fork
Ghidra Version 11.3.2 12.0.1
JDK Version 5 (deprecated) 21
Maven Compiler Default 3.11.0 with release 21
JUnit 3.8.1 5.10.0

Fixes for Known Issues

This fork addresses the following issues from the original repository:

  • ✅ Issue #99: "Source option 5 is no longer supported" - Fixed with JDK 21 configuration
  • ✅ Issue #96: Extension installation errors - Rebuilt for Ghidra 12
  • ✅ Issue #54: Installation issues - Updated JAR dependencies

Features

  • MCP Server - Exposes Ghidra functionality via Model Context Protocol
  • LLM Integration - Connect Claude, GPT, or other LLMs to Ghidra
  • Decompilation - Automated binary analysis and decompilation
  • Symbol Management - Rename methods, variables, and data
  • Analysis Tools - List methods, classes, imports, exports

Quick Start

Prerequisites

Installation

  1. Download the latest release: GhidraMCP-2.0-ghidra12.zip

  2. Install in Ghidra:

    File → Install Extensions → + → Select GhidraMCP-2.0-ghidra12.zip
    
  3. Restart Ghidra

  4. Enable the Plugin:

    File → Configure → Developer → Enable GhidraMCPPlugin
    
  5. Install Python Dependencies:

    pip install mcp modelcontextprotocol
    

Configure Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "ghidra": {
      "command": "python",
      "args": [
        "/path/to/bridge_mcp_ghidra.py",
        "--ghidra-server",
        "http://127.0.0.1:8080/"
      ]
    }
  }
}

Configure Cline (VS Code)

  1. Start the MCP server:

    python bridge_mcp_ghidra.py --transport sse --mcp-host 127.0.0.1 --mcp-port 8081
    
  2. In Cline, add Remote Server:

    • Name: GhidraMCP
    • URL: http://127.0.0.1:8081/sse

Building from Source

# Clone the repository
git clone https://github.com/YOUR_USERNAME/GhidraMCP-12.git
cd GhidraMCP-12

# Copy JARs from your Ghidra 12 installation
cp /Applications/Ghidra/Ghidra/Framework/Generic/lib/Generic.jar lib/
cp /Applications/Ghidra/Ghidra/Framework/SoftwareModeling/lib/SoftwareModeling.jar lib/
cp /Applications/Ghidra/Ghidra/Framework/Project/lib/Project.jar lib/
cp /Applications/Ghidra/Ghidra/Framework/Docking/lib/Docking.jar lib/
cp /Applications/Ghidra/Ghidra/Features/Decompiler/lib/Decompiler.jar lib/
cp /Applications/Ghidra/Ghidra/Framework/Utility/lib/Utility.jar lib/
cp /Applications/Ghidra/Ghidra/Features/Base/lib/Base.jar lib/
cp /Applications/Ghidra/Ghidra/Framework/Gui/lib/Gui.jar lib/

# Build
mvn clean package

# Output: target/GhidraMCP-2.0-ghidra12.zip

Troubleshooting

"No context found for request" (404 Error)

  1. Make sure Ghidra is running with a program loaded
  2. Verify the plugin is enabled in File → Configure → Developer
  3. Check the port matches between Ghidra and the bridge script

Plugin Not Appearing

  1. Verify you're using Ghidra 12.0.1
  2. Check File → Install Extensions shows GhidraMCP as installed
  3. Restart Ghidra completely after installation

Build Errors

If you see "Source option X is no longer supported":

  • Ensure you're using this fork's pom.xml with JDK 21 configuration
  • Verify JAVA_HOME points to JDK 21

API Endpoints

Endpoint Description
/methods List all methods/functions
/decompile/{address} Decompile function at address
/rename/method Rename a method
/rename/variable Rename a variable
/classes List all classes
/imports List all imports
/exports List all exports
/symbols List all symbols

Credits

License

Apache License 2.0 - See LICENSE for details.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured