66 Commits

Author SHA1 Message Date
Teal Bauer
3a1772a3c9 fix: ensure extension zip included in complete package
Some checks failed
Build Ghidra Plugin / build (push) Has been cancelled
Moved plugin assembly execution to prepare-package phase to ensure
the extension zip artifact is created before the package phase.

Added maven-resources-plugin execution (copy-plugin-zip) to the
package phase to copy the generated extension zip into a reliable
'target/staging' directory.

Updated complete-package.xml assembly descriptor to use a fileSet
referencing 'target/staging' instead of relying on dependencySets
or potentially unstable property expansion for artifact inclusion.

This resolves the issue where the complete package artifact was
missing the Ghidra extension zip.
v1.4.0-beta4
2025-04-07 22:50:26 +02:00
Teal Bauer
908d0decfe fix: Correct GHA complete package assembly
Some checks failed
Build Ghidra Plugin / build (push) Has been cancelled
Updated complete-package.xml to use correct properties
(${git.commit.id.abbrev}-${maven.build.timestamp}) for including the
Ghidra extension zip artifact, resolving the incomplete package issue
in GHA builds.
v1.4.0-beta3
2025-04-07 22:39:30 +02:00
Teal Bauer
3ef444348c fix: Add permissions key to GHA workflow
Some checks failed
Build Ghidra Plugin / build (push) Has been cancelled
v1.4.0-beta2
2025-04-07 22:30:30 +02:00
Teal Bauer
9a9d0e933f Fix: Standardize API responses and fix test failures
Some checks failed
Build Ghidra Plugin / build (push) Has been cancelled
Refactored Java plugin to use helper methods for consistent JSON success/error responses. Fixed NullPointerException in listVariables. Updated Python tests (HTTP and MCP) to use helper assertions validating the standard response structure.
v1.4.0-beta
2025-04-07 22:25:02 +02:00
Teal Bauer
2dc1adb982 Fix github release action versioning 2025-04-07 14:52:31 +02:00
Teal Bauer
a5c600b07f fix: Resolve MCP bridge test failures
Standardizes communication between the Python bridge and Java plugin,
resolves test logic errors, and improves error handling to ensure
MCP bridge tests pass reliably.

Key changes:
- Standardized HTTP methods: Use GET for read operations and POST for all modification operations across the bridge and plugin.
- Fixed JSON parsing in Java plugin using Gson and added missing imports.
- Corrected error handling in Java plugin's `get_function` to return `success: false` when a function is not found.
- Updated Python bridge's `safe_get` to correctly propagate nested failure responses from the plugin.
- Fixed test client logic (`test_mcp_client.py`) to correctly extract function name/address from `list_functions` results.
- Added logging to `test_mcp_client.py` for easier debugging of mutating operations.
2025-04-07 14:31:46 +02:00
Teal Bauer
14eae14f63 Switch all results over to JSON 2025-04-04 18:10:45 +02:00
Teal Bauer
ba63ffeb54 Add mutating tests (WIP) 2025-04-04 17:00:41 +02:00
Teal Bauer
e462164321 Add Origin checking 2025-04-04 16:15:29 +02:00
Teal Bauer
1e737ed44b Add testing and update README for JSON & testing 2025-04-04 16:06:36 +02:00
Teal Bauer
cbe5dcc1f3 Switch to JSON as bridge/plugin comm protocol 2025-04-04 16:05:42 +02:00
Teal Bauer
04d088591b WIP: Switch to JSON as data exchange format 2025-04-03 18:52:47 +02:00
Teal Bauer
89396469b2 Fix release version tag
Some checks failed
Build Ghidra Plugin / build (push) Has been cancelled
v1.3.0
2025-04-02 20:41:31 +02:00
Teal Bauer
9aa93c4933 Release v1.3.0 2025-04-02 19:52:52 +02:00
Teal Bauer
1b07f9430b Update docstrings 2025-04-02 19:38:04 +02:00
Teal Bauer
d4611377c8 Merge branch 'variable-mangling' 2025-04-02 18:54:36 +02:00
Teal Bauer
399c76b29a Expand functionality
Find variables, rename and retype them
Additionally merge changes from https://github.com/LaurieWired/GhidraMCP/pull/16 and https://github.com/LaurieWired/GhidraMCP/pull/18
2025-04-02 18:53:48 +02:00
Teal Bauer
1bfdf74554 Add version info to build output
- If tagged, use the tag version
- Otherwise use dev-SNAPSHOT plus commit id and timestamp
2025-04-02 18:52:55 +02:00
Teal Bauer
be08f0f2ea Allow renaming and retyping variables 2025-04-02 18:52:02 +02:00
Teal Starsong
883fde7344 Update version to 11.3.1 and fix complete package to include bridge script 2025-03-31 18:15:41 +02:00
Teal Bauer
dce6aa101c Fix info parsing that was missed in refactoring
Some checks failed
Build Ghidra Plugin / build (push) Has been cancelled
v1.2
2025-03-30 03:37:56 +02:00
Teal Bauer
a615813e2d Fix project info endpoints with simpler JSON generation
Simplify JSON response generation for better reliability. Both root and info
endpoints now use direct string building instead of the JSON library.
2025-03-30 03:10:48 +02:00
Teal Bauer
5cf8f5fb16 Update plugin description to better reflect its purpose 2025-03-30 01:27:56 +01:00
Teal Bauer
07c94b2324 Merge branch 'auto-register' 2025-03-30 01:21:19 +01:00
Teal Bauer
e620831957 Update README with auto-discovery documentation and examples 2025-03-30 01:20:53 +01:00
Teal Bauer
a3ab275fcd Improve instance discovery with custom host parameter and optimized timeouts 2025-03-30 01:19:28 +01:00
Teal Bauer
86d04860bf Add auto-discovery of Ghidra instances and JSON project info endpoint
- Modified bridge_mcp_hydra.py to auto-discover GhydraMCP plugin instances on ports 8192-8299
- Added periodic background thread to maintain discovered instances list
- Added project and binary file information to instance reporting
- Added JSON-based info endpoint in GhydraMCP plugin
- Added json-simple dependency to support JSON responses
2025-03-30 01:06:04 +01:00
Teal Bauer
c4744afa58 Switch examples to uv run 2025-03-30 00:51:27 +01:00
Teal Bauer
a84ec13248 Improve README
- Add examples of how to interact with the MCP server
- Explain what the release artifacts are
- Add a note where the running instances can be seen in Ghidra
2025-03-30 00:50:58 +01:00
Teal Bauer
a349bdff70 Improve build system and create combined artifact packages
- Create a complete package containing both plugin and bridge script
- Update GitHub Actions workflow to use Maven-generated artifacts
- Add Maven profiles to selectively build plugin-only or complete-package
- Improve Maven configuration with UTF-8 encoding and dependency cleanup
- Fix Maven warnings for system paths and unused dependencies
- Upgrade Java version to 21 for compatibility with latest Ghidra
- Update README with enhanced build instructions
2025-03-30 00:40:44 +01:00
Teal Bauer
5b62a9823b Change Github action to build a complete package
Some checks failed
Build Ghidra Plugin / build (push) Has been cancelled
The action will now build the Ghidra plugin and upload it as an artifact, upload the MCP bridge script, and additionally, a zip containing both.
v1.1
2025-03-30 00:01:29 +01:00
Teal Bauer
32583c25b6 Update README 2025-03-29 23:47:25 +01:00
Teal Bauer
eb67fba2f8 Improve project description 2025-03-29 23:40:33 +01:00
Teal Bauer
5802c3a84e Update badges and add new logo 2025-03-29 23:37:30 +01:00
Teal Bauer
96ef2e6642 Automatically create release notes from commit log 2025-03-29 23:19:31 +01:00
Teal Bauer
8e93eacf62 Build in Github Action 2025-03-29 23:16:07 +01:00
Teal Bauer
33be44d7ef Make multi-headed and more RESTful 2025-03-29 22:53:59 +01:00
Teal Bauer
76e8355252 Move to Hydra 2025-03-29 18:11:19 +01:00
Teal Bauer
bb10207b84 Handle Ctrl-C and exit 2025-03-28 19:45:43 +01:00
Teal Bauer
763b221773 Inline dependencies as per PEP 723
[PEP 723](https://peps.python.org/pep-0723/) lets single-file python scripts contain references to their required Python packages inline. This adds that for the MCP bridge. You can now run it with e.g. `uv run bridge_mcp_ghidra.py` and it will automatically install the required packages in a dedicated environment if needed.
2025-03-28 19:14:37 +01:00
Teal Bauer
13f962a329
Pass params as dict to requests.get, let it deal with encoding 2025-03-28 19:08:35 +01:00
Teal Bauer
665ef14b41
Update bridge_mcp_ghidra.py 2025-03-28 18:49:46 +01:00
LaurieWired
33c0138e68
Update README.md 2025-03-27 21:48:05 -07:00
LaurieWired
129e39a273
Merge pull request #4 from maikroservice/main
Add requirements.txt
2025-03-27 21:27:16 -07:00
Maik Ro
a03588df94
Create requirements.txt 2025-03-26 10:27:00 +01:00
LaurieWired
164d96d466
Update README.md 2025-03-25 01:31:27 -07:00
LaurieWired
853c366e74
Update README.md 2025-03-25 01:16:47 -07:00
LaurieWired
80ec82cd37
Update README.md 2025-03-25 01:03:35 -07:00
LaurieWired
4c152dd336
Update README.md 2025-03-25 00:57:13 -07:00
LaurieWired
0b8d4ef748
Update README.md 2025-03-24 23:59:48 -07:00