MCPProxy v0.23.0 is a major release with 86 commits since v0.22.0, headlined by a fully native macOS desktop app, a comprehensive tool approval security workflow, and an MCP-based UI testing framework.
Native macOS Desktop App
The macOS edition now ships with a native Swift tray app — a full desktop experience built with SwiftUI and AppKit, replacing the previous lightweight tray menu.
- Docker Desktop-style server management — sortable table with status indicators, context menus, and inline actions (enable/disable, restart, quarantine, OAuth login)
- Dashboard matching the web UI with server health overview and attention items
- Activity Log with SSE live updates, colored JSON detail view, intent metadata, and CSV/JSON export
- Tool diff viewer — inspect description and schema changes for quarantined tools before approving
- Add/Edit Server dialogs with protocol detection and validation
- Sidebar navigation with Apple HIG-compliant icons (Dashboard, Servers, Activity, Secrets)
- Cmd+/Cmd-/Cmd+0 zoom — font-only scaling that preserves panel layouts
- GitHub Releases update checker with Sparkle integration for auto-updates
- Health badge notifications with configurable triggers
- Tray icon with status overlay (green/yellow/red) reflecting aggregate server health
- Pause/Resume core server directly from the tray menu
Tool Approval & Quarantine Enhancements
- Tool approval badges — new tools show a "New" badge, changed tools show "Changed" with word-level diff highlighting of what changed in descriptions and schemas
- Individual tool approval — approve tools one at a time from the macOS tray app or web UI instead of bulk-approving entire servers
- Enriched
/api/v1/servers/{id}/toolsAPI — each tool now includesapproval_statusfield; pending approvals are sorted to the top - Annotations in API responses — tool annotations (readOnlyHint, destructiveHint, etc.) are now properly returned and displayed
- Self-healing hash migration — eliminates false
tool_description_changedevents caused by legacy hash formats - Annotations excluded from quarantine hash — prevents false change alerts when only annotations metadata changes
MCP UI Testing Framework (mcpproxy-ui-test)
New MCP server for automated macOS UI verification:
screenshot_window/screenshot_status_bar_menu— capture app windows and tray menuslist_menu_items/click_menu_item— read and interact with menu treesread_status_bar/check_accessibility— verify tray state and API permissionslist_running_apps— discover running apps by bundle ID
Bug Fixes
- Critical: auto-approval bypass — changed tools were incorrectly auto-approved during the second
checkToolApprovalspass - API deadlocks — resolved deadlock in server list endpoint under concurrent access
- Token savings display — capped at 99.99% instead of showing invalid percentages
- Docker status — now accurately shows "active" when containers are running
- Activity live updates — SSE events now trigger real-time refresh in both web UI and tray
- Navigation — all "Needs Attention" items correctly link to the server detail page
- Export pagination — activity export respects pagination parameters
- Annotation filtering — search and filter work correctly with annotated tools
- Tray log growth — fixed unbounded log growth when the upstream server list is empty
CI/CD
- Swift tray app now built in CI and bundled into macOS DMG installers
- Sparkle.framework properly bundled with correct rpath
- App icon (
.icns) included in bundle for Launchpad visibility - LaunchAgent executable path fixed for auto-start
Download Installers
| Platform | Download | Notes |
|---|---|---|
| macOS (Apple Silicon) | Download DMG | Signed & Notarized - Recommended for M1/M2/M3/M4 |
| macOS (Intel) | Download DMG | Signed & Notarized |
| Windows (64-bit) | Download Setup | Setup wizard |
| Windows (ARM64) | Download Setup | For ARM Windows devices |
| Linux (AMD64) | Download tar.gz | Binary package |
| Linux (ARM64) | Download tar.gz | For ARM Linux |
Homebrew (macOS/Linux):
brew install smart-mcp-proxy/mcpproxy/mcpproxyOther download options (auto-update URLs, archives)
Auto-update URLs (always points to latest):
Binary archives (this version):
Installation Instructions
Windows
- Download the installer for your architecture
- Run
mcpproxy-setup-*.exe - Follow the installation wizard (requires Administrator privileges)
- Launch "MCPProxy" from Start Menu
macOS
- Download the signed DMG for your Mac
- Double-click the DMG to mount it
- Double-click the PKG installer inside
- Follow the installation wizard
- Launch mcpproxy.app from Applications folder
Linux / Manual Installation
- Download the appropriate archive
- Extract:
tar -xzf mcpproxy-*.tar.gz - Make executable:
chmod +x mcpproxy - Run:
./mcpproxy serve
Platform Support & Usage
Platform Support
- macOS: Full native desktop app with system tray
- Windows: Full system tray support with menu and icons
- Linux: Headless mode only (CLI)
Usage
GUI (Recommended):
- Launch mcpproxy.app from Applications (auto-starts core server)
- Manages server via system tray menu
CLI:
mcpproxy serve # Start server
mcpproxy serve --listen 127.0.0.1:8081 # Custom port
export MCPPROXY_API_KEY=your-secret-key # Set API key