Files
reverse-skill/burp-mcp-full/build.sh
T
2026-08-08 18:32:33 +08:00

64 lines
2.1 KiB
Bash

#!/bin/bash
# BurpSuite MCP Full Control - Linux / macOS Build Script
# Requires: JDK 21+, curl
# Produces: build/libs/burp-mcp-full.jar (fat jar, Burp-loadable)
set -e
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
cd "$SCRIPT_DIR"
# ===== Auto-detect JAVA_HOME =====
if [ -z "$JAVA_HOME" ]; then
if command -v javac >/dev/null 2>&1; then
JAVA_HOME="$(dirname "$(dirname "$(readlink -f "$(command -v javac)")")")"
else
echo "ERROR: javac not found. Install JDK 21+ or set JAVA_HOME."
exit 1
fi
fi
JAVAC="$JAVA_HOME/bin/javac"
JAR="$JAVA_HOME/bin/jar"
if ! "$JAVAC" -version 2>/dev/null | grep -qE '(1\.)?(2[1-9]|[3-9][0-9])'; then
echo "WARNING: JDK 21+ recommended. Detected: $("$JAVAC" -version 2>&1)"
fi
SRC="src/main/java/com/burpmcp"
RES="src/main/resources"
LIB="lib"
OUT="build/classes"
DIST="build/libs"
MONTOYA="https://repo1.maven.org/maven2/net/portswigger/burp/extensions/montoya-api/2025.5/montoya-api-2025.5.jar"
GSON="https://repo1.maven.org/maven2/com/google/code/gson/gson/2.11.0/gson-2.11.0.jar"
NANO="https://repo1.maven.org/maven2/org/nanohttpd/nanohttpd/2.3.1/nanohttpd-2.3.1.jar"
echo "[1/4] Downloading dependencies..."
mkdir -p "$LIB"
[ -f "$LIB/montoya-api.jar" ] || curl -sL -o "$LIB/montoya-api.jar" "$MONTOYA"
[ -f "$LIB/gson.jar" ] || curl -sL -o "$LIB/gson.jar" "$GSON"
[ -f "$LIB/nanohttpd.jar" ] || curl -sL -o "$LIB/nanohttpd.jar" "$NANO"
echo "[2/4] Compiling..."
mkdir -p "$OUT"
"$JAVAC" --release 21 -encoding UTF-8 -cp "$LIB/montoya-api.jar:$LIB/gson.jar:$LIB/nanohttpd.jar" -d "$OUT" "$SRC"/*.java
# Copy resources (extension descriptor) so the jar is loadable by Burp
cp -r "$RES/META-INF" "$OUT/"
echo "[3/4] Packaging fat jar..."
mkdir -p "$DIST"
cd "$OUT"
"$JAR" xf "../../$LIB/gson.jar" com
"$JAR" xf "../../$LIB/nanohttpd.jar" fi
cd ../..
"$JAR" cf "$DIST/burp-mcp-full.jar" -C "$OUT" .
echo "[4/4] Done!"
echo "Output: $DIST/burp-mcp-full.jar"
echo ""
echo "Install: Burp Suite -> Extensions -> Add -> Java -> Select $DIST/burp-mcp-full.jar"
echo ""
echo "MCP config (any client):"
echo " { \"command\": \"node\", \"args\": [\"$SCRIPT_DIR/mcp-bridge.js\"] }"