- 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
163 lines
6.3 KiB
Markdown
163 lines
6.3 KiB
Markdown
# Changelog
|
|
|
|
All notable changes to this project will be documented in this file.
|
|
|
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
|
|
|
## [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-version` endpoint 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 `/programs` and `/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 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/type` and `/data/update` endpoints
|
|
- 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 `port` field 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 `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
|
|
|
|
[unreleased]: https://github.com/teal-bauer/GhydraMCP/compare/v1.4.0...HEAD
|
|
[1.4.0]: https://github.com/teal-bauer/GhydraMCP/compare/v1.3.0...v1.4.0
|
|
[1.3.0]: https://github.com/teal-bauer/GhydraMCP/compare/v1.2...v1.3.0
|
|
[1.2]: https://github.com/teal-bauer/GhydraMCP/compare/v1.1...v1.2
|
|
[1.1]: https://github.com/teal-bauer/GhydraMCP/compare/1.0...v1.1
|
|
[1.0]: https://github.com/teal-bauer/GhydraMCP/releases/tag/1.0
|