AUTOUPDATE.md
This document describes the auto-update functionality and release automation system implemented for mcpproxy.
# Default mode - auto-update enabled
./mcpproxy serve --tray=true
# Disable auto-update completely
export MCPPROXY_DISABLE_AUTO_UPDATE=true
./mcpproxy serve --tray=true
# Or add to shell profile for permanent setting
echo 'export MCPPROXY_DISABLE_AUTO_UPDATE=true' >> ~/.zshrc
# Notification-only mode
export MCPPROXY_UPDATE_NOTIFY_ONLY=true
./mcpproxy serve --tray=true
# Enable prerelease updates (canary behavior)
export MCPPROXY_ALLOW_PRERELEASE_UPDATES=true
./mcpproxy serve --tray=true
# Or add to shell profile for permanent setting
echo 'export MCPPROXY_ALLOW_PRERELEASE_UPDATES=true' >> ~/.zshrc
Auto-update is automatically disabled when installed via Homebrew to prevent conflicts:
# Homebrew installation - auto-update disabled automatically.
# The fully-qualified name auto-taps smart-mcp-proxy/mcpproxy, so no
# separate `brew tap` step is needed.
brew install smart-mcp-proxy/mcpproxy/mcpproxy # CLI
brew install --cask smart-mcp-proxy/mcpproxy/mcpproxy # tray app
# Use Homebrew for updates
brew upgrade mcpproxy
The system detects common package manager paths and disables auto-update accordingly.
1. Check for Updates (Daily timer or manual click)
2. Query GitHub API for latest release
3. Compare versions using semantic versioning
4. Detect installation type (standalone vs package manager)
5. Download appropriate archive for OS/architecture
6. Extract binary from archive
7. Replace current executable atomically
8. Restart application
.zip archives.tar.gz archives.tar.gz archivesmcpproxy-latest-{os}-{arch}.{ext}mcpproxy-{version}-{os}-{arch}.{ext}| Variable | Values | Description |
|---|---|---|
MCPPROXY_DISABLE_AUTO_UPDATE | true/false | Completely disable auto-update |
MCPPROXY_UPDATE_NOTIFY_ONLY | true/false | Check for updates but don't download |
MCPPROXY_ALLOW_PRERELEASE_UPDATES | true/false | Allow auto-updates to prerelease versions (default: false) |
mcpproxy
โโโ Status: Running (localhost:8080)
โโโ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โโโ Start/Stop Server
โโโ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โโโ Check for Updates... โ Manual update check
โ โโโ Auto-update: Enabled โ Shows current mode
โ โโโ [Disabled for Homebrew] โ If package manager detected
โโโ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โโโ Quit
Fixed: Now looks for correct .tar.gz files on macOS/Linux
Expected: Prevents conflicts with brew upgrade
curl -I https://api.github.com/repos/smart-mcp-proxy/mcpproxy-go/releases/latest# Download from GitHub releases
curl -L -o mcpproxy.tar.gz https://github.com/smart-mcp-proxy/mcpproxy-go/releases/latest/download/mcpproxy-latest-darwin-arm64.tar.gz
tar -xzf mcpproxy.tar.gz
chmod +x mcpproxy
./mcpproxy --version
brew upgrade mcpproxy
go install github.com/smart-mcp-proxy/mcpproxy-go/cmd/mcpproxy@latest
MCPPROXY_DISABLE_AUTO_UPDATE=true for controlled environments# Tag a new version
git tag v1.0.0
git push origin v1.0.0
# GitHub Actions will:
# 1. Build cross-platform binaries
# 2. Create both versioned and latest assets
# 3. Create GitHub release with download links
Each release includes:
mcpproxy-v1.0.0-linux-amd64.tar.gz (versioned)mcpproxy-latest-linux-amd64.tar.gz (latest)The auto-updater prioritizes "latest" assets for consistency with website download links.