Files
pi_mcps/bigmind/install_proc.sh
T
2026-04-03 13:37:45 +02:00

99 lines
4.0 KiB
Bash
Executable File

#!/bin/bash
# Installation procedure for mcp-adp-bigmind
# No external API token required — all data is stored locally.
# This script is called by the main install.sh script.
# Parameter: $1 = comma-separated list of IDEs (e.g., "VS Code,IntelliJ")
set -e
SELECTED_IDES="$1"
BASEDIR=$(cd "$(dirname "$0")" && pwd)
MCP_NAME="ADP BigMind"
# ── Validate Python and uv ────────────────────────────────────────────────────
source "$(dirname "$BASEDIR")/helper_scripts/shared_uv_setup.sh"
# ── Install Python dependencies ───────────────────────────────────────────────
if [ ! -d "$BASEDIR/.venv" ]; then
echo "Installing dependencies for $MCP_NAME..." >&2
cd "$BASEDIR"
uv sync >&2
fi
# ── Create the memory DB directory ───────────────────────────────────────────
BIGMIND_DIR="$HOME/.mcp/bigmind"
mkdir -p "$BIGMIND_DIR"
echo "INFO: BigMind DB directory: $BIGMIND_DIR/memory.db" >&2
# ── Write GitHub Copilot instructions (Layer 4) ───────────────────────────────
DEFAULT_WORKSPACE="$(dirname "$BASEDIR")"
echo "" >&2
echo "────────────────────────────────────────────────────────────" >&2
echo "BigMind — GitHub Copilot Instructions Setup" >&2
echo "────────────────────────────────────────────────────────────" >&2
echo "BigMind works best when Copilot is told to use memory tools" >&2
echo "at the start and end of every conversation." >&2
echo "" >&2
echo "Enter your workspace root path where .github/copilot-instructions.md" >&2
echo "should be written (press Enter to use: $DEFAULT_WORKSPACE):" >&2
read -r WORKSPACE_PATH
WORKSPACE_PATH="${WORKSPACE_PATH:-$DEFAULT_WORKSPACE}"
COPILOT_DIR="$WORKSPACE_PATH/.github"
COPILOT_FILE="$COPILOT_DIR/copilot-instructions.md"
BIGMIND_BLOCK="
## BigMind Persistent Memory
You have access to a BigMind persistent memory MCP server.
Rules (mandatory):
- ALWAYS call memory_start_session() as the very first action of every conversation.
- ALWAYS call memory_end_session() as the very last action before closing a conversation.
- Call memory_flag_important() whenever a significant decision, code change, or new
preference is mentioned — do not wait to be asked.
- If asked \"do you remember…\", call memory_search_chunks() or
memory_get_session_detail() before answering from your own knowledge.
"
mkdir -p "$COPILOT_DIR"
if [ -f "$COPILOT_FILE" ]; then
if grep -q "BigMind Persistent Memory" "$COPILOT_FILE" 2>/dev/null; then
echo "INFO: BigMind instructions already present in $COPILOT_FILE — skipping." >&2
else
printf '%s' "$BIGMIND_BLOCK" >> "$COPILOT_FILE"
echo "INFO: BigMind instructions appended to $COPILOT_FILE" >&2
fi
else
printf '# Copilot Instructions\n%s' "$BIGMIND_BLOCK" > "$COPILOT_FILE"
echo "INFO: Created $COPILOT_FILE with BigMind instructions" >&2
fi
echo "" >&2
echo "✅ Copilot instructions written to: $COPILOT_FILE" >&2
echo "────────────────────────────────────────────────────────────" >&2
# ── Output MCP config snippet ─────────────────────────────────────────────────
echo "MCP_NAME=$MCP_NAME"
echo "MCP_SNIPPET="
cat <<EOF
{
"command": "uv",
"args": [
"--directory",
"$BASEDIR",
"run",
"src/server.py"
],
"env": {
"BIGMIND_USER": "$USER"
}
}
EOF
exit 0