106 lines
3.7 KiB
PowerShell
106 lines
3.7 KiB
PowerShell
# Installation procedure for mcp-adp-bigmind (Windows)
|
|
# No external API token required — all data is stored locally.
|
|
|
|
param(
|
|
[string]$SelectedIDEs = ""
|
|
)
|
|
|
|
$ErrorActionPreference = "Stop"
|
|
$BASEDIR = $PSScriptRoot
|
|
$MCP_NAME = "ADP BigMind"
|
|
|
|
function Test-PythonAndUV {
|
|
$REQUIRED_VERSION = [Version]"3.12"
|
|
try {
|
|
$pythonVersion = python --version 2>$null
|
|
if ($LASTEXITCODE -ne 0) { throw "Python is not installed or not in PATH" }
|
|
if ($pythonVersion -match "Python (\d+\.\d+)\.") {
|
|
$currentVersion = [Version]$matches[1]
|
|
if ($currentVersion -lt $REQUIRED_VERSION) {
|
|
throw "Python $currentVersion detected, but Python $REQUIRED_VERSION or higher is required"
|
|
}
|
|
}
|
|
} catch {
|
|
Write-Host "ERROR: $($_.Exception.Message)" -ForegroundColor Red; exit 1
|
|
}
|
|
try {
|
|
uv --version 2>$null | Out-Null
|
|
if ($LASTEXITCODE -ne 0) { throw "uv not found" }
|
|
} catch {
|
|
Write-Host "Installing uv package manager..." -ForegroundColor Yellow
|
|
pip install uv
|
|
}
|
|
}
|
|
|
|
try {
|
|
Test-PythonAndUV
|
|
|
|
# Install dependencies
|
|
$venvPath = Join-Path $BASEDIR ".venv"
|
|
if (-not (Test-Path $venvPath)) {
|
|
Write-Host "Installing dependencies for $MCP_NAME..." -ForegroundColor Yellow
|
|
Push-Location $BASEDIR
|
|
uv sync
|
|
Pop-Location
|
|
}
|
|
|
|
# Create BigMind DB directory
|
|
$BigMindDir = Join-Path $env:USERPROFILE ".mcp\bigmind"
|
|
New-Item -ItemType Directory -Force -Path $BigMindDir | Out-Null
|
|
Write-Host "INFO: BigMind DB directory: $BigMindDir\memory.db" -ForegroundColor Cyan
|
|
|
|
# Write Copilot instructions
|
|
$DefaultWorkspace = Split-Path $BASEDIR -Parent
|
|
Write-Host ""
|
|
Write-Host "BigMind - GitHub Copilot Instructions Setup" -ForegroundColor Cyan
|
|
Write-Host "Enter your workspace root path (press Enter for: $DefaultWorkspace):"
|
|
$WorkspacePath = Read-Host
|
|
if ([string]::IsNullOrWhiteSpace($WorkspacePath)) { $WorkspacePath = $DefaultWorkspace }
|
|
|
|
$CopilotDir = Join-Path $WorkspacePath ".github"
|
|
$CopilotFile = Join-Path $CopilotDir "copilot-instructions.md"
|
|
New-Item -ItemType Directory -Force -Path $CopilotDir | Out-Null
|
|
|
|
$BigMindBlock = @"
|
|
|
|
## 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.
|
|
"@
|
|
|
|
if (Test-Path $CopilotFile) {
|
|
$existing = Get-Content $CopilotFile -Raw
|
|
if ($existing -match "BigMind Persistent Memory") {
|
|
Write-Host "INFO: BigMind instructions already present — skipping." -ForegroundColor Yellow
|
|
} else {
|
|
Add-Content -Path $CopilotFile -Value $BigMindBlock
|
|
Write-Host "INFO: BigMind instructions appended to $CopilotFile" -ForegroundColor Green
|
|
}
|
|
} else {
|
|
"# Copilot Instructions`n$BigMindBlock" | Set-Content -Path $CopilotFile
|
|
Write-Host "INFO: Created $CopilotFile with BigMind instructions" -ForegroundColor Green
|
|
}
|
|
|
|
# Output MCP config
|
|
Write-Output "MCP_NAME=$MCP_NAME"
|
|
Write-Output "MCP_SNIPPET="
|
|
@{
|
|
command = "uv"
|
|
args = @("--directory", $BASEDIR, "run", "src/server.py")
|
|
env = @{ BIGMIND_USER = $env:USERNAME }
|
|
} | ConvertTo-Json -Depth 10
|
|
|
|
} catch {
|
|
Write-Host "ERROR: $($_.Exception.Message)" -ForegroundColor Red
|
|
exit 1
|
|
}
|
|
|