mcghidra/CHANGELOG.md

4.9 KiB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog.

Unreleased

Changed

  • Updated port range calculations to use DEFAULT_GHIDRA_PORT
  • Cleaned up comments and simplified code in bridge_mcp_hydra.py
  • Improved error handling and response formatting
  • Standardized API response structure across all endpoints
  • Completed conversion of bridge/plugin protocol to pure JSON:
    • All endpoints now use structured JSON requests/responses
    • Removed all string parsing/formatting code from both bridge and plugin
    • Standardized error handling with consistent JSON error responses
    • Added detailed JSON schemas for all API endpoints
    • Using only POST methods for mutation endpoints (previously mixed PUT/POST)
    • Uniform camelCase parameter naming across JSON payloads
    • Improved response metadata (timestamps, status codes)

Changed

  • Completed conversion of bridge/plugin protocol to pure JSON:
    • All endpoints now use structured JSON requests/responses
    • Removed all string parsing/formatting code from both bridge and plugin
    • Standardized error handling with consistent JSON error responses
    • Added detailed JSON schemas for all API endpoints
    • Using only POST methods for mutation endpoints (previously mixed PUT/POST)
    • Uniform camelCase parameter naming across JSON payloads
    • Improved response metadata (timestamps, status codes)

Added

  • Added GHIDRA_HTTP_API.md with documentation of the Java Plugin's HTTP API

  • Added better docstrings and type hints for all MCP tools

  • Added improved content-type handling for API requests

  • Added decompiler output controls to customize analysis results:

  • Choose between clean C-like pseudocode (default) or raw decompiler output

  • Toggle syntax tree visibility for detailed analysis

  • Select different simplification styles for alternate views

  • Useful for comparing different decompilation approaches or focusing on specific aspects of the code

    Example showing how to get raw decompiler output with syntax tree:

    <use_mcp_tool>
    <server_name>ghydra</server_name>
    <tool_name>decompile_function_by_address</tool_name>
    <arguments>
    {
      "address": "0x1000",
      "cCode": false,
      "syntaxTree": true
    }
    </arguments>
    </use_mcp_tool>
    

1.4.0 - 2025-04-08

Added

  • Structured JSON communication between Python bridge and Java plugin
  • Consistent response format with metadata (timestamp, port, instance type)
  • Comprehensive test suites for HTTP API and MCP bridge
  • Test runner script for easy test execution
  • Detailed testing documentation in TESTING.md
  • Origin checking for API requests
  • Mutating tests for API functionality

Changed

  • Improved error handling in API responses
  • Enhanced JSON parsing in the Java plugin
  • Updated documentation with JSON communication details
  • Standardized API responses across all endpoints
  • Improved version handling in build system

Fixed

  • Build complete package in package phase
  • Versioning and naming of JAR files
  • GitHub Actions workflow permissions
  • Extension ZIP inclusion in complete package
  • ProgramManager requirement
  • Git tag fetching functionality
  • MCP bridge test failures

1.3.0 - 2025-04-02

Added

  • Added docstrings for all @mcp.tool functions
  • Variable manipulation tools (rename/retype variables)
  • New endpoints for function variable management
  • Dynamic version output in API responses
  • Enhanced function analysis capabilities
  • Support for searching variables by name
  • New tools for working with function variables:
    • get_function_by_address
    • get_current_address
    • get_current_function
    • decompile_function_by_address
    • disassemble_function
    • set_decompiler_comment
    • set_disassembly_comment
    • rename_local_variable
    • rename_function_by_address
    • set_function_prototype
    • set_local_variable_type

Changed

  • Improved version handling in build system
  • Reorganized imports in bridge_mcp_hydra.py
  • Updated MANIFEST.MF with more detailed description

1.2 - 2025-03-30

Added

  • Enhanced function analysis capabilities
  • Additional variable manipulation tools
  • Support for multiple Ghidra instances

Changed

  • Improved error handling in API calls
  • Optimized performance for large binaries

1.1 - 2025-03-30

Added

  • Initial release of GhydraMCP bridge
  • Basic Ghidra instance management tools
  • Function analysis tools
  • Variable manipulation tools

1.0 - 2025-03-24

Added

  • Initial project setup
  • Basic MCP bridge functionality