- Add comprehensive data manipulation capabilities - Implement separate pathways for rename-only, type-only, and combined operations - Fix HTTP request body consumption issue in DataEndpoints - Standardize on 'type' parameter name instead of 'dataType' - Add thorough test coverage with dedicated test_data_update.py script - Update API documentation to version 2 with full endpoint descriptions - Update CHANGELOG with detailed information about data manipulation features
6.3 KiB
6.3 KiB
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
Unreleased
Added
- Complete Ghidra HTTP API implementation:
- Memory operations (read/write)
- Cross-reference analysis
- Program analysis (callgraph, dataflow)
- Enhanced decompiler controls:
- Raw output vs clean pseudocode
- Syntax tree visibility
- Multiple simplification styles
- Comprehensive API documentation (GHIDRA_HTTP_API.md, MCP_BRIDGE_API.md)
- Standardized JSON response formats
- Implemented
/plugin-versionendpoint for version checking - Added proper error handling for when no program is loaded
- Implemented HATEOAS-driven API as described in GHIDRA_HTTP_API.md:
- Added
/programsand/programs/{program_id}endpoints - Implemented program-specific resource endpoints
- Added pagination support with metadata
- Added filtering capabilities (by name, address, etc.)
- Implemented proper resource linking with HATEOAS
- Added
- Added disassembly endpoint for functions with HATEOAS links
- Enhanced parameter validation in MCP bridge tools
- Added comprehensive data manipulation capabilities:
- Data renaming (changing only the name)
- Data type setting (changing only the type)
- Combined data update operations (changing both name and type)
- Dedicated
/data/typeand/data/updateendpoints - Standalone test script for data operations
Changed
- Unified all endpoints to use structured JSON
- Improved error handling and response metadata
- Simplified bridge code and added type hints
- Updated port discovery to use DEFAULT_GHIDRA_PORT
- Refactored Java plugin into modular architecture:
- Separated concerns into api, endpoints, util, and model packages
- Created standardized response builders and error handlers
- Implemented transaction management helpers
- Added model classes for structured data representation
- Removed
portfield from responses (bridge knows what instance it called) - Updated MCP bridge to use new HATEOAS API endpoints
- Enhanced MCP bridge tools to validate input parameters
- Improved response handling in MCP bridge for better error reporting
- Breaking: Removed backward compatibility with legacy endpoints, all endpoints now require strict HATEOAS compliance:
- All responses must include _links object with at least self reference
- Standardized JSON structures for all resource types
- Created comprehensive requirements documentation in HATEOAS_API.md
- Updated API documentation to version 2 with comprehensive endpoint descriptions
Fixed
- Fixed endpoint registration in refactored code (all endpoints now working)
- Improved handling of program-dependent endpoints when no program is loaded
- Enhanced root endpoint to dynamically include links to available endpoints
- Added proper HATEOAS links to all endpoints
- Fixed URL encoding/decoding issues in program IDs
- Fixed transaction management in function operations
- Fixed inconsistent response formats in function-related endpoints
- Improved error handling for missing parameters in MCP bridge tools
- Fixed non-compliant endpoint responses:
- Added _links to /classes and /instances endpoints
- Updated /programs/current/segments to return list of segment objects
- Fixed decompile endpoint to return structured decompiled code
- Fixed disassembly endpoint to return structured instruction list
- Fixed variables endpoint to return proper variable structure
- Fixed data manipulation operations:
- Resolved HTTP request body consumption issue
- Fixed parameter naming inconsistency between "dataType" and "type"
- Improved preservation of names during data type changes
- Enhanced error handling for data operations
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
packagephase - 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