1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
|
#!/bin/env pwsh
param(
[string]$FileName = 'Azure.Sdk.Tools.Cli',
[string]$Package = 'azsdk',
[string]$Version, # Default to latest
[string]$InstallDirectory = (Join-Path $HOME ".azure-sdk-mcp" "azsdk"),
[string]$Repository = 'Azure/azure-sdk-tools',
[switch]$Run,
[switch]$UpdateVsCodeConfig,
[switch]$Clean
)
$ErrorActionPreference = "Stop"
. (Join-Path $PSScriptRoot '..' 'scripts' 'Helpers' 'AzSdkTool-Helpers.ps1')
if ($Clean) {
Clear-Directory -Path $InstallDirectory
}
if ($UpdateVsCodeConfig) {
$vscodeConfigPath = $PSScriptRoot + "../../../.vscode/mcp.json"
if (Test-Path $vscodeConfigPath) {
$vscodeConfig = Get-Content -Raw $vscodeConfig | ConvertFrom-Json -AsHashtable
}
else {
$vscodeConfig = @{}
}
$serverKey = "azure-sdk-mcp"
$serverConfig = @{
"type" = "stdio"
"command" = "/home/ben/azs/azure-sdk-tools/eng/common/mcp/azure-sdk-mcp.ps1"
}
$orderedServers = [ordered]@{
$serverKey = $serverConfig
}
if (-not $vscodeConfig.ContainsKey('servers')) {
$vscodeConfig['servers'] = @{}
}
foreach ($key in $vscodeConfig.servers.Keys) {
if ($key -ne $serverKey) {
$orderedServers[$key] = $vscodeConfig.servers[$key]
}
}
$vscodeConfig.servers = $orderedServers
Write-Host "Updating vscode mcp config at $vscodeConfigPath"
$vscodeConfig | ConvertTo-Json -Depth 10 | Set-Content -Path $vscodeConfig -Force
}
$exe = Install-Standalone-Tool `
-Version $Version `
-FileName $FileName `
-Package $Package `
-Directory $InstallDirectory `
-Repository $Repository
if ($Run) {
Start-Process -FilePath $exe -ArgumentList 'start' -NoNewWindow -Wait
}
|