python -m pytest -q bridge/tests/unit bridge/tests/contract bridge/tests/goldenUse this path when you need IDE support or want to iterate on the Ghidra extension outside the Docker builder.
- JDK 21
- Maven 3.6+
- Ghidra 11.4.2 (or set
GHIDRA_DIRto your local installation)
-
Fetch Ghidra dependencies:
python scripts/fetch_ghidra_jars.py
This downloads the required Ghidra JARs into
lib/. Alternatively, if you have a local Ghidra installation:export GHIDRA_DIR=/path/to/ghidra_11.4.2_PUBLIC -
Build the extension:
mvn -DskipTests package
To include tests:
mvn package
The build produces:
target/GhidraMCP-1.0-SNAPSHOT.jar
Option 1: Manual copy
cp target/GhidraMCP-1.0-SNAPSHOT.jar $GHIDRA_INSTALL_DIR/Extensions/Ghidra/Option 2: Ghidra GUI
- Open Ghidra
- Go to File → Install Extensions
- Click the + button
- Select
target/GhidraMCP-1.0-SNAPSHOT.jar - Restart Ghidra
Verify installation:
After restarting Ghidra, the extension should appear in File → Configure → Miscellaneous → GhidraMCP.
- Edit
.plan/TODO.md,.plan/tasks.manifest.json,.plan/state.json - Keep them in sync with
python3 bin/plan_check.py - Use
.plan/sync_state.shafter each task
GitHub Actions runs:
- Plan check
- Python tests
- Maven packaging (only when Java changes)
Additional design notes and roadmap context live in docs/ROADMAP.md.
Parses transcript records to extract the first JSON object per record, validates each object against a JSON schema (default:
envelope.v1.json), and produces a summary dict:
total: number of records processedok: records whose first JSON object matched the schemafailed: records that did not match
Use this when you need a quick quality check on logged transcripts.