This document describes the auto-update functionality and release automation system implemented for mcpproxy.
- Automatic Updates: Downloads and applies updates automatically
- Daily Checks: Background checks every 24 hours
- Manual Checks: "Check for Updates..." in system tray
- Smart Detection: Avoids conflicts with package managers
# Default mode - auto-update enabled
./mcpproxy serve --tray=true- No Updates: Completely disables update checking
- Manual Only: User must update manually
# 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- Check Only: Checks for updates but doesn't download
- User Choice: Notifies user, lets them decide
- Log Messages: Shows update info in logs
# Notification-only mode
export MCPPROXY_UPDATE_NOTIFY_ONLY=true
./mcpproxy serve --tray=true- Prerelease Updates: Allows updates to RC and development versions
- Latest Available: Gets the newest version regardless of prerelease status
- For Testing: Ideal for early adopters and testing new features
# 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' >> ~/.zshrcAuto-update is automatically disabled when installed via Homebrew to prevent conflicts:
# Homebrew installation - auto-update disabled automatically
brew install smart-mcp-proxy/tap/mcpproxy
# Use Homebrew for updates
brew upgrade mcpproxyThe 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
- Windows:
.ziparchives - macOS:
.tar.gzarchives - Linux:
.tar.gzarchives
- Latest Assets:
mcpproxy-latest-{os}-{arch}.{ext} - Versioned Assets:
mcpproxy-{version}-{os}-{arch}.{ext}
- HTTPS Only: All downloads use HTTPS
- Atomic Updates: Safe binary replacement with rollback
- Version Validation: Semantic version checking prevents downgrades
- Package Manager Detection: Prevents conflicts with system package managers
| 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
- Check network connectivity
- Verify GitHub access:
curl -I https://api.github.com/repos/smart-mcp-proxy/mcpproxy-go/releases/latest - Check logs for specific errors
- Try notification-only mode to debug
# 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 --versionbrew upgrade mcpproxygo install github.com/smart-mcp-proxy/mcpproxy-go/cmd/mcpproxy@latest- Use Default Mode: Auto-update provides the best experience
- Homebrew Users: Let Homebrew handle updates
- Corporate/Restricted: Use notification-only mode
- Test Updates: Use development builds before releases
- Version Tags: Follow semantic versioning (v1.0.0)
- Asset Naming: Maintain consistent asset naming conventions
- Disable Auto-Update: Use
MCPPROXY_DISABLE_AUTO_UPDATE=truefor controlled environments - Monitor Logs: Watch for update notifications and errors
- Network Access: Ensure GitHub API access for update checks
# 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 linksEach release includes:
mcpproxy-v1.0.0-linux-amd64.tar.gz(versioned)mcpproxy-latest-linux-amd64.tar.gz(latest)- Similar files for all supported platforms
The auto-updater prioritizes "latest" assets for consistency with website download links.