| cd $PSScriptRoot | |
| $ErrorActionPreference = "Stop" | |
| $entryName = if ($env:MCP_ENTRY_NAME) { $env:MCP_ENTRY_NAME } else { "mpmath" } | |
| $entryUrl = if ($env:MCP_ENTRY_URL) { $env:MCP_ENTRY_URL } else { "http://localhost:7904/mcp" } | |
| $imageName = if ($env:MCP_IMAGE_NAME) { $env:MCP_IMAGE_NAME } else { "mpmath-mcp" } | |
| $mcpDir = Join-Path $env:USERPROFILE ".cursor" | |
| $mcpPath = Join-Path $mcpDir "mcp.json" | |
| if (!(Test-Path $mcpDir)) { New-Item -ItemType Directory -Path $mcpDir | Out-Null } | |
| $config = @{} | |
| if (Test-Path $mcpPath) { | |
| try { $config = Get-Content $mcpPath -Raw | ConvertFrom-Json } catch { $config = @{} } | |
| } | |
| $serversOrdered = [ordered]@{} | |
| if ($config -and ($config.PSObject.Properties.Name -contains "mcpServers") -and $config.mcpServers) { | |
| $existing = $config.mcpServers | |
| if ($existing -is [pscustomobject]) { | |
| foreach ($p in $existing.PSObject.Properties) { if ($p.Name -ne $entryName) { $serversOrdered[$p.Name] = $p.Value } } | |
| } elseif ($existing -is [System.Collections.IDictionary]) { | |
| foreach ($k in $existing.Keys) { if ($k -ne $entryName) { $serversOrdered[$k] = $existing[$k] } } | |
| } | |
| } | |
| $serversOrdered[$entryName] = @{ url = $entryUrl } | |
| $config = @{ mcpServers = $serversOrdered } | |
| $config | ConvertTo-Json -Depth 10 | Set-Content -Path $mcpPath -Encoding UTF8 | |
| docker build -t $imageName . | |
| docker run --rm -p 7904:7860 $imageName | |