Skip to content

Enhance MCP proxy server with debug search functionality and update c… #18

Enhance MCP proxy server with debug search functionality and update c…

Enhance MCP proxy server with debug search functionality and update c… #18

Workflow file for this run

name: Build and Release
on:
push:
tags: ["v*"]
permissions:
contents: write
packages: write
jobs:
build:
strategy:
matrix:
include:
- os: ubuntu-22.04
goos: linux
goarch: amd64
ext: ""
artifact_name: "mcpproxy-linux-amd64"
package_cmd: "tar -czf mcpproxy-${{ github.ref_name }}-linux-amd64.tar.gz mcpproxy"
- os: windows-latest
goos: windows
goarch: amd64
ext: ".exe"
artifact_name: "mcpproxy-windows-amd64"
ldflags: "-H windowsgui"
package_cmd: "7z a mcpproxy-${{ github.ref_name }}-windows-amd64.zip mcpproxy.exe"
- os: macos-14
goos: darwin
goarch: "amd64 arm64" # Universal binary
ext: ""
artifact_name: "mcpproxy-macos-universal"
package_cmd: "ditto -ck --rsrc --sequesterRsrc mcpproxy mcpproxy-${{ github.ref_name }}-macos-universal.zip"
runs-on: ${{ matrix.os }}
env:
CGO_ENABLED: "1"
GO111MODULE: "on"
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
# Linux-only: install GUI headers
- name: Install Linux dependencies
if: runner.os == 'Linux'
run: |
sudo apt-get update
sudo apt-get install -y gcc libgtk-3-dev libayatana-appindicator3-dev
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: "1.23"
- name: Get version
id: version
run: echo "version=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT
- name: Build for macOS Universal
if: matrix.goos == 'darwin'
run: |
mkdir -p build
# Build for both architectures separately
GOOS=darwin GOARCH=amd64 CGO_ENABLED=1 go build -ldflags "-s -w -X main.version=${{ steps.version.outputs.version }}" -o build/mcpproxy_amd64 ./cmd/mcpproxy
GOOS=darwin GOARCH=arm64 CGO_ENABLED=1 go build -ldflags "-s -w -X main.version=${{ steps.version.outputs.version }}" -o build/mcpproxy_arm64 ./cmd/mcpproxy
# Combine into universal binary
lipo -create -output build/mcpproxy build/mcpproxy_amd64 build/mcpproxy_arm64
# Clean up individual binaries
rm build/mcpproxy_amd64 build/mcpproxy_arm64
- name: Build for Linux/Windows
if: matrix.goos != 'darwin'
env:
GOOS: ${{ matrix.goos }}
GOARCH: ${{ matrix.goarch }}
CGO_ENABLED: "1"
run: |
mkdir -p build
go build -ldflags "-s -w -X main.version=${{ steps.version.outputs.version }} ${{ matrix.ldflags }}" -o build/mcpproxy${{ matrix.ext }} ./cmd/mcpproxy
- name: Package artifacts (Linux/macOS)
if: runner.os != 'Windows'
run: |
cd build
cp ../README.md .
if [ -f ../assets/icons/icon.svg ]; then
mkdir -p assets/icons
cp ../assets/icons/icon.svg assets/icons/
fi
${{ matrix.package_cmd }}
- name: Package artifacts (Windows)
if: runner.os == 'Windows'
run: |
cd build
Copy-Item ../README.md .
if (Test-Path ../assets/icons/icon.svg) {
New-Item -ItemType Directory -Force -Path assets/icons
Copy-Item ../assets/icons/icon.svg assets/icons/
}
${{ matrix.package_cmd }}
- name: Upload artifacts to release
uses: softprops/action-gh-release@v2
with:
files: build/mcpproxy-*
draft: false
prerelease: false
generate_release_notes: true
body: |
## mcpproxy ${{ steps.version.outputs.version }}
Smart MCP Proxy - Intelligent tool discovery and proxying for Model Context Protocol servers.
### Changes in this release
- Full GUI/System Tray support on all platforms
- Native builds with CGO support for optimal performance
- Cross-platform compatibility (Linux, Windows, macOS)
### Installation
#### Download and Run
1. Download the appropriate archive for your platform
2. Extract the binary
3. Run `mcpproxy` to start with system tray, or `mcpproxy --tray=false` for headless mode
#### macOS
- Download `mcpproxy-*-macos-universal.zip`
- Right-click → Open to bypass Gatekeeper (unsigned app)
#### Windows
- Download `mcpproxy-*-windows-amd64.zip`
- Extract and run `mcpproxy.exe`
#### Linux
- Download `mcpproxy-*-linux-amd64.tar.gz`
- Extract: `tar -xzf mcpproxy-*-linux-amd64.tar.gz`
- Run: `./mcpproxy`
- Requires GTK3 and AppIndicator libraries
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# Optional: Create macOS DMG (can be added later)
# macos-dmg:
# needs: build
# runs-on: macos-14
# if: github.event.repository.default_branch == 'main'
# steps:
# - name: Create DMG
# run: echo "DMG creation can be added here later"