Close Menu

    Subscribe to Updates

    Get the latest creative news from FooBar about art, design and business.

    What's Hot

    Think Windows 11 will be a nightmare? Not with this…

    A Chromebook for $75? That’s not a typo.

    This QuickBooks lifetime deal is quickly going viral at 71% off

    Facebook X (Twitter) Instagram
    • Artificial Intelligence
    • Business Technology
    • Cryptocurrency
    • Gadgets
    • Gaming
    • Health
    • Software and Apps
    • Technology
    Facebook X (Twitter) Instagram Pinterest Vimeo
    Tech AI Verse
    • Home
    • Artificial Intelligence

      Apple sued by shareholders for allegedly overstating AI progress

      June 22, 2025

      How far will AI go to defend its own survival?

      June 2, 2025

      The internet thinks this video from Gaza is AI. Here’s how we proved it isn’t.

      May 30, 2025

      Nvidia CEO hails Trump’s plan to rescind some export curbs on AI chips to China

      May 22, 2025

      AI poses a bigger threat to women’s work, than men’s, report says

      May 21, 2025
    • Business

      Cloudflare open-sources Orange Meets with End-to-End encryption

      June 29, 2025

      Google links massive cloud outage to API management issue

      June 13, 2025

      The EU challenges Google and Cloudflare with its very own DNS resolver that can filter dangerous traffic

      June 11, 2025

      These two Ivanti bugs are allowing hackers to target cloud instances

      May 21, 2025

      How cloud and AI transform and improve customer experiences

      May 10, 2025
    • Crypto

      3 Made in USA Coins to Watch in The Third Week of July

      July 12, 2025

      Bybit Receives Backlash Over PUMP Token Sale Mismanagement

      July 12, 2025

      3 Pump.Fun Ecosystem Coins to Watch Amid PUMP Token Launch

      July 12, 2025

      Coinbase CEO Calls the Bomb Squad for a Surprising Gift

      July 12, 2025

      Pump.Fun Token Sold Out In 12 minutes as Whales Flood Solana Launchpad

      July 12, 2025
    • Technology

      Think Windows 11 will be a nightmare? Not with this…

      July 13, 2025

      A Chromebook for $75? That’s not a typo.

      July 13, 2025

      This QuickBooks lifetime deal is quickly going viral at 71% off

      July 13, 2025

      $75 Chromebooks are a thing during PCWorld’s version of Prime Day

      July 13, 2025

      This powerful i7 mini PC with triple display support is $220 off right now

      July 13, 2025
    • Others
      • Gadgets
      • Gaming
      • Health
      • Software and Apps
    Shop Now
    Tech AI Verse
    You are at:Home»Technology»A better Ghidra MCP server – GhidrAssistMCP
    Technology

    A better Ghidra MCP server – GhidrAssistMCP

    TechAiVerseBy TechAiVerseJuly 13, 2025No Comments6 Mins Read0 Views
    Facebook Twitter Pinterest Telegram LinkedIn Tumblr Email Reddit
    A better Ghidra MCP server – GhidrAssistMCP
    Share
    Facebook Twitter LinkedIn Pinterest WhatsApp Email

    A better Ghidra MCP server – GhidrAssistMCP

    GhidrAssistMCP

    A powerful Ghidra extension that provides an MCP (Model Context Protocol) server, enabling AI assistants and other tools to interact with Ghidra’s reverse engineering capabilities through a standardized API.

    Overview

    GhidrAssistMCP bridges the gap between AI-powered analysis tools and Ghidra’s comprehensive reverse engineering platform. By implementing the Model Context Protocol, this extension allows external AI assistants, automated analysis tools, and custom scripts to seamlessly interact with Ghidra’s analysis capabilities.

    Key Features

    • ** MCP Server Integration**: Full Model Context Protocol server implementation using official SDK
    • ** 31 Built-in Tools**: Comprehensive set of analysis tools covering functions, data, cross-references, and more
    • ** Configurable UI**: Easy-to-use interface for managing tools and monitoring activity
    • ** Real-time Logging**: Track all MCP requests and responses with detailed logging
    • ** Dynamic Tool Management**: Enable/disable tools individually with persistent settings
    • ** Current Context Awareness**: Tools that understand Ghidra’s current cursor position and active function

    Clients

    Shameless self-promotion: GhidrAssist supports GhidrAssistMCP right out of the box.

    Screenshots


    Installation

    Prerequisites

    • Ghidra 11.4+ (tested with Ghidra 11.4 Public)
    • An MCP Client (Like GhidrAssist)

    Binary Release (Recommended)

    1. Download the latest release:

      • Go to the Releases page
      • Download the latest .zip file (e.g., GhidrAssistMCP-v1.0.0.zip)
    2. Install the extension:

      • In Ghidra: File → Install Extensions → Add Extension
      • Select the downloaded ZIP file
      • Restart Ghidra when prompted
    3. Enable the plugin:

      • File → Configure → Configure Plugins
      • Search for “GhidrAssistMCP”
      • Check the box to enable the plugin

    Building from Source

    1. Clone the repository:

      Set Ghidra installation path:

      export GHIDRA_INSTALL_DIR=/path/to/your/ghidra/installation
    2. Build the extension:

    3. Install the extension:

      • Copy the generated ZIP file from dist/ directory
      • In Ghidra: File → Install Extensions → Add Extension
      • Select the ZIP file and restart Ghidra
    4. Enable the plugin:

      • File → Configure → Configure Plugins
      • Search for “GhidrAssistMCP”
      • Check the box to enable the plugin

    Configuration

    Initial Setup

    1. Open the Control Panel:

      • Window → GhidrAssistMCP (or use the toolbar icon)
    2. Configure Server Settings:

      • Host: Default is localhost
      • Port: Default is 8080
      • Enable/Disable: Toggle the MCP server on/off

    Tool Management

    The Configuration tab allows you to:

    • View all available tools (29 total)
    • Enable/disable individual tools using checkboxes
    • Save configuration to persist across sessions
    • Monitor tool status in real-time

    Available Tools

    Program Analysis

    • get_program_info – Get basic program information
    • list_functions – List all functions in the program
    • list_data – List data definitions
    • list_strings – List string references
    • list_imports – List imported functions
    • list_exports – List exported functions
    • list_segments – List memory segments
    • list_namespaces – List namespaces
    • list_classes – List class definitions
    • list_methods – List method definitions

    Function Analysis

    • get_function_info – Get detailed function information
    • get_class_info – Get detailed class information
    • get_function_by_address – Find function at specific address
    • get_current_function – Get function at cursor position
    • decompile_function – Decompile function to C-like code
    • disassemble_function – Get assembly disassembly
    • search_functions – Search functions by name pattern
    • search_classes – Search classes by name pattern
    • function_xrefs – Get function cross-references

    Location & Navigation

    • get_current_address – Get current cursor address
    • xrefs_to – Find references to an address
    • xrefs_from – Find references from an address

    Modification Tools

    • rename_function – Rename functions
    • rename_function_by_address – Rename function at specific address
    • rename_variable – Rename variables
    • rename_data – Rename data definitions
    • set_function_prototype – Set function signatures
    • set_local_variable_type – Set variable data types
    • set_disassembly_comment – Add disassembly comments
    • set_decompiler_comment – Add decompiler comments

    Advanced Analysis

    • auto_create_struct – Automatically create structures from variable usage patterns

    Usage Examples

    Basic Program Information

    {
      "method": "tools/call",
      "params": {
        "name": "get_program_info"
      }
    }

    Function Analysis

    {
      "method": "tools/call",
      "params": {
        "name": "get_function_info",
        "arguments": {
          "function_name": "main"
        }
      }
    }

    Decompilation

    {
      "method": "tools/call",
      "params": {
        "name": "decompile_function",
        "arguments": {
          "function_name": "encrypt_data"
        }
      }
    }

    Structure Creation

    {
      "method": "tools/call",
      "params": {
        "name": "auto_create_struct",
        "arguments": {
          "function_identifier": "0x00401000",
          "variable_name": "ctx"
        }
      }
    }

    Setting Function Prototype

    {
      "method": "tools/call",
      "params": {
        "name": "set_function_prototype",
        "arguments": {
          "function_address": "0x00401000",
          "prototype": "int main(int argc, char** argv)"
        }
      }
    }

    Architecture

    Core Components

    GhidrAssistMCP/
    ├── GhidrAssistMCPPlugin      # Main plugin entry point
    ├── GhidrAssistMCPServer      # HTTP/SSE MCP server
    ├── GhidrAssistMCPBackend     # Tool management and execution
    ├── GhidrAssistMCPProvider    # UI component provider
    └── tools/                    # Individual MCP tools
        ├── Analysis Tools/
        ├── Modification Tools/
        └── Navigation Tools/
    

    MCP Protocol Implementation

    • Transport: HTTP with Server-Sent Events (SSE)
    • Endpoints:
      • GET /sse – SSE connection for bidirectional communication
      • POST /message – Message exchange endpoint
    • Tool Registration: Dynamic tool discovery and registration
    • Session Management: Stateful sessions with proper lifecycle management

    Plugin Architecture

    1. Observer Pattern: Decoupled UI updates using event listeners
    2. Transaction Management: Safe database operations with rollback support
    3. Tool Registry: Dynamic tool registration with enable/disable capability
    4. Settings Persistence: Configuration saved in Ghidra’s settings system
    5. Thread Safety: Proper Swing EDT handling for UI operations

    Development

    Project Structure

    src/main/java/ghidrassistmcp/
    ├── GhidrAssistMCPPlugin.java      # Main plugin class
    ├── GhidrAssistMCPProvider.java    # UI provider with tabs
    ├── GhidrAssistMCPServer.java      # MCP server implementation
    ├── GhidrAssistMCPBackend.java     # Backend tool management
    ├── McpBackend.java                # Backend interface
    ├── McpTool.java                   # Tool interface
    ├── McpEventListener.java          # Event notification interface
    └── tools/                         # Tool implementations
        ├── ProgramInfoTool.java
        ├── ListFunctionsTool.java
        ├── DecompileFunctionTool.java
        ├── AutoCreateStructTool.java
        └── ... (29 total tools)
    

    Adding New Tools

    1. Implement McpTool interface:

      arguments, Program program) {
      // Implementation
      }
      }”>

      public class MyCustomTool implements McpTool {
          @Override
          public String getName() { return "my_custom_tool"; }
          
          @Override
          public String getDescription() { return "Description"; }
          
          @Override
          public McpSchema.JsonSchema getInputSchema() { /* ... */ }
          
          @Override
          public McpSchema.CallToolResult execute(Map<String, Object> arguments, Program program) {
              // Implementation
          }
      }
    2. Register in backend:

      // In GhidrAssistMCPBackend constructor
      registerTool(new MyCustomTool());

    Build Commands

    # Clean build
    gradle clean
    
    # Build extension
    gradle buildExtension
    
    # Build with specific Ghidra path
    gradle -PGHIDRA_INSTALL_DIR=/path/to/ghidra buildExtension
    
    # Debug build
    gradle buildExtension --debug

    Dependencies

    • MCP SDK: io.modelcontextprotocol.sdk:mcp:0.10.0
    • Jetty Server: 11.0.20 (HTTP/SSE transport)
    • Jackson: 2.17.0 (JSON processing)
    • Ghidra API: Bundled with Ghidra installation

    Logging

    UI Logging

    The Log tab provides real-time monitoring:

    • Session Events: Server start/stop, program changes
    • Tool Requests: REQ: tool_name {parameters...}
    • Tool Responses: RES: tool_name {response...}
    • Error Messages: Failed operations and diagnostics

    Console Logging

    Detailed logging in Ghidra’s console:

    • Tool registration and initialization
    • MCP server lifecycle events
    • Database transaction operations
    • Error stack traces and debugging information

    Troubleshooting

    Common Issues

    Server Won’t Start

    • Check if port 8080 is available
    • Verify Ghidra installation path
    • Examine console logs for errors

    Tools Not Appearing

    • Ensure plugin is enabled
    • Check Configuration tab for tool status
    • Verify backend initialization in logs

    MCP Client Connection Issues

    • Confirm server is running (check GhidrAssistMCP window)
    • Test connection: curl http://localhost:8080/sse
    • Check firewall settings

    Tool Execution Failures

    • Verify program is loaded in Ghidra
    • Check tool parameters are correct
    • Review error messages in Log tab

    Debug Mode

    Enable debug logging by adding to Ghidra startup:

    -Dlog4j.logger.ghidrassistmcp=DEBUG

    Contributing

    1. Fork the repository
    2. Create a feature branch: git checkout -b feature-name
    3. Make your changes with proper tests
    4. Follow code style: Use existing patterns and conventions
    5. Submit a pull request with detailed description

    Code Standards

    • Java 21+ features where appropriate
    • Proper exception handling with meaningful messages
    • Transaction safety for all database operations
    • Thread safety for UI operations
    • Comprehensive documentation for public APIs

    License

    This project is licensed under the MIT License – see the LICENSE file for details.

    Acknowledgments

    • NSA/Ghidra Team for the excellent reverse engineering platform
    • Anthropic for the Model Context Protocol specification

    ** Questions or Issues?**

    Please open an issue on the project repository for bug reports, feature requests, or questions about usage and development.

    Share. Facebook Twitter Pinterest LinkedIn Reddit WhatsApp Telegram Email
    Previous ArticleToday’s NYT Strands Hints, Answers and Help for July 13 #497
    Next Article Bypassing Google’s big anti-adblock update
    TechAiVerse
    • Website

    Jonathan is a tech enthusiast and the mind behind Tech AI Verse. With a passion for artificial intelligence, consumer tech, and emerging innovations, he deliver clear, insightful content to keep readers informed. From cutting-edge gadgets to AI advancements and cryptocurrency trends, Jonathan breaks down complex topics to make technology accessible to all.

    Related Posts

    Think Windows 11 will be a nightmare? Not with this…

    July 13, 2025

    A Chromebook for $75? That’s not a typo.

    July 13, 2025

    This QuickBooks lifetime deal is quickly going viral at 71% off

    July 13, 2025
    Leave A Reply Cancel Reply

    Top Posts

    New Akira ransomware decryptor cracks encryptions keys using GPUs

    March 16, 202528 Views

    OpenAI details ChatGPT-o3, o4-mini, o4-mini-high usage limits

    April 19, 202522 Views

    Rsync replaced with openrsync on macOS Sequoia

    April 7, 202520 Views

    6.7 Cummins Lifter Failure: What Years Are Affected (And Possible Fixes)

    April 14, 202519 Views
    Don't Miss
    Technology July 13, 2025

    Think Windows 11 will be a nightmare? Not with this…

    Think Windows 11 will be a nightmare? Not with this… Image: StackCommerce TL;DR: Get a Windows 11…

    A Chromebook for $75? That’s not a typo.

    This QuickBooks lifetime deal is quickly going viral at 71% off

    $75 Chromebooks are a thing during PCWorld’s version of Prime Day

    Stay In Touch
    • Facebook
    • Twitter
    • Pinterest
    • Instagram
    • YouTube
    • Vimeo

    Subscribe to Updates

    Get the latest creative news from SmartMag about art & design.

    About Us
    About Us

    Welcome to Tech AI Verse, your go-to destination for everything technology! We bring you the latest news, trends, and insights from the ever-evolving world of tech. Our coverage spans across global technology industry updates, artificial intelligence advancements, machine learning ethics, and automation innovations. Stay connected with us as we explore the limitless possibilities of technology!

    Facebook X (Twitter) Pinterest YouTube WhatsApp
    Our Picks

    Think Windows 11 will be a nightmare? Not with this…

    July 13, 20252 Views

    A Chromebook for $75? That’s not a typo.

    July 13, 20252 Views

    This QuickBooks lifetime deal is quickly going viral at 71% off

    July 13, 20252 Views
    Most Popular

    Ethereum must hold $2,000 support or risk dropping to $1,850 – Here’s why

    March 12, 20250 Views

    Xiaomi 15 Ultra Officially Launched in China, Malaysia launch to follow after global event

    March 12, 20250 Views

    Apple thinks people won’t use MagSafe on iPhone 16e

    March 12, 20250 Views
    © 2025 TechAiVerse. Designed by Divya Tech.
    • Home
    • About Us
    • Contact Us
    • Privacy Policy
    • Terms & Conditions

    Type above and press Enter to search. Press Esc to cancel.