@@ -22,13 +22,19 @@ jobs:
2222 TAG="${GITHUB_REF#refs/tags/cli/v}"
2323 echo "version=$TAG" >> $GITHUB_OUTPUT
2424
25- - name : Check Cargo.toml version matches tag
25+ - name : Check Cargo.toml versions match tag
2626 run : |
2727 TAG_VERSION="${{ steps.extract.outputs.version }}"
28- CARGO_VERSION=$(grep '^version = ' jacs/Cargo.toml | head -1 | sed 's/version = "\(.*\)"/\1/')
29- echo "Cargo version: $CARGO_VERSION, tag: $TAG_VERSION"
30- if [ "$CARGO_VERSION" != "$TAG_VERSION" ]; then
31- echo "::error::Version mismatch! jacs/Cargo.toml has $CARGO_VERSION but tag is $TAG_VERSION"
28+ JACS_VERSION=$(grep '^version = ' jacs/Cargo.toml | head -1 | sed 's/version = "\(.*\)"/\1/')
29+ MCP_VERSION=$(grep '^version = ' jacs-mcp/Cargo.toml | head -1 | sed 's/version = "\(.*\)"/\1/')
30+ echo "jacs version: $JACS_VERSION, tag: $TAG_VERSION"
31+ echo "jacs-mcp version: $MCP_VERSION, tag: $TAG_VERSION"
32+ if [ "$JACS_VERSION" != "$TAG_VERSION" ]; then
33+ echo "::error::Version mismatch! jacs/Cargo.toml has $JACS_VERSION but tag is $TAG_VERSION"
34+ exit 1
35+ fi
36+ if [ "$MCP_VERSION" != "$TAG_VERSION" ]; then
37+ echo "::error::Version mismatch! jacs-mcp/Cargo.toml has $MCP_VERSION but tag is $TAG_VERSION"
3238 exit 1
3339 fi
3440
@@ -40,31 +46,30 @@ jobs:
4046 include :
4147 - os : macos-latest
4248 target : aarch64-apple-darwin
43- artifact_name : jacs-cli
44- asset_name : jacs-cli-${{ needs.verify-version.outputs.version }}-darwin-arm64
45- archive : tar.gz
49+ asset_suffix : darwin-arm64
50+ archive_ext : tar.gz
4651 - os : macos-14
4752 target : x86_64-apple-darwin
48- artifact_name : jacs-cli
49- asset_name : jacs-cli-${{ needs.verify-version.outputs.version }}-darwin-x64
50- archive : tar.gz
53+ asset_suffix : darwin-x64
54+ archive_ext : tar.gz
5155 - os : ubuntu-latest
5256 target : x86_64-unknown-linux-gnu
53- artifact_name : jacs-cli
54- asset_name : jacs-cli-${{ needs.verify-version.outputs.version }}-linux-x64
55- archive : tar.gz
57+ asset_suffix : linux-x64
58+ archive_ext : tar.gz
5659 - os : ubuntu-24.04-arm
5760 target : aarch64-unknown-linux-gnu
58- artifact_name : jacs-cli
59- asset_name : jacs-cli-${{ needs.verify-version.outputs.version }}-linux-arm64
60- archive : tar.gz
61+ asset_suffix : linux-arm64
62+ archive_ext : tar.gz
6163 - os : windows-latest
6264 target : x86_64-pc-windows-msvc
63- artifact_name : jacs-cli.exe
64- asset_name : jacs-cli-${{ needs.verify-version.outputs.version }}-windows-x64
65- archive : zip
65+ asset_suffix : windows-x64
66+ archive_ext : zip
6667
6768 runs-on : ${{ matrix.os }}
69+ env :
70+ VERSION : ${{ needs.verify-version.outputs.version }}
71+ CLI_ASSET_NAME : jacs-cli-${{ needs.verify-version.outputs.version }}-${{ matrix.asset_suffix }}
72+ MCP_ASSET_NAME : jacs-mcp-${{ needs.verify-version.outputs.version }}-${{ matrix.asset_suffix }}
6873 steps :
6974 - uses : actions/checkout@v4
7075
@@ -73,37 +78,51 @@ jobs:
7378 toolchain : ' 1.93'
7479 targets : ${{ matrix.target }}
7580
76- - name : Build CLI binary
77- run : cargo build --release -p jacs --features cli --target ${{ matrix.target }}
81+ - name : Build binaries
82+ run : |
83+ cargo build --release -p jacs --features cli --target ${{ matrix.target }}
84+ cargo build --release -p jacs-mcp --target ${{ matrix.target }}
7885
7986 - name : Smoke test (Unix)
8087 if : runner.os != 'Windows'
81- run : ./target/${{ matrix.target }}/release/jacs --version
88+ run : |
89+ ./target/${{ matrix.target }}/release/jacs --version
90+ ./target/${{ matrix.target }}/release/jacs-mcp --help > /dev/null
8291
8392 - name : Smoke test (Windows)
8493 if : runner.os == 'Windows'
85- run : .\target\${{ matrix.target }}\release\jacs.exe --version
94+ shell : pwsh
95+ run : |
96+ .\target\${{ matrix.target }}\release\jacs.exe version
97+ .\target\${{ matrix.target }}\release\jacs-mcp.exe --help | Out-Null
8698
8799 - name : Package (Unix)
88100 if : runner.os != 'Windows'
89101 run : |
90102 cp target/${{ matrix.target }}/release/jacs jacs-cli
91- tar czf ${{ matrix.asset_name }}.tar.gz jacs-cli
92- shasum -a 256 ${{ matrix.asset_name }}.tar.gz > ${{ matrix.asset_name }}.tar.gz.sha256
103+ cp target/${{ matrix.target }}/release/jacs-mcp jacs-mcp
104+ tar czf ${CLI_ASSET_NAME}.tar.gz jacs-cli
105+ tar czf ${MCP_ASSET_NAME}.tar.gz jacs-mcp
106+ shasum -a 256 ${CLI_ASSET_NAME}.tar.gz > ${CLI_ASSET_NAME}.tar.gz.sha256
107+ shasum -a 256 ${MCP_ASSET_NAME}.tar.gz > ${MCP_ASSET_NAME}.tar.gz.sha256
93108
94109 - name : Package (Windows)
95110 if : runner.os == 'Windows'
96111 shell : pwsh
97112 run : |
98113 Copy-Item "target/${{ matrix.target }}/release/jacs.exe" "jacs-cli.exe"
99- Compress-Archive -Path "jacs-cli.exe" -DestinationPath "${{ matrix.asset_name }}.zip"
100- Get-FileHash "${{ matrix.asset_name }}.zip" -Algorithm SHA256 | ForEach-Object { "$($_.Hash.ToLower()) ${{ matrix.asset_name }}.zip" } | Out-File "${{ matrix.asset_name }}.zip.sha256" -Encoding ascii
114+ Copy-Item "target/${{ matrix.target }}/release/jacs-mcp.exe" "jacs-mcp.exe"
115+ Compress-Archive -Path "jacs-cli.exe" -DestinationPath "${env:CLI_ASSET_NAME}.zip"
116+ Compress-Archive -Path "jacs-mcp.exe" -DestinationPath "${env:MCP_ASSET_NAME}.zip"
117+ Get-FileHash "${env:CLI_ASSET_NAME}.zip" -Algorithm SHA256 | ForEach-Object { "$($_.Hash.ToLower()) ${env:CLI_ASSET_NAME}.zip" } | Out-File "${env:CLI_ASSET_NAME}.zip.sha256" -Encoding ascii
118+ Get-FileHash "${env:MCP_ASSET_NAME}.zip" -Algorithm SHA256 | ForEach-Object { "$($_.Hash.ToLower()) ${env:MCP_ASSET_NAME}.zip" } | Out-File "${env:MCP_ASSET_NAME}.zip.sha256" -Encoding ascii
101119
102120 - uses : actions/upload-artifact@v4
103121 with :
104- name : ${{ matrix.asset_name }}
122+ name : binaries- ${{ matrix.asset_suffix }}
105123 path : |
106- ${{ matrix.asset_name }}.*
124+ ${{ env.CLI_ASSET_NAME }}.*
125+ ${{ env.MCP_ASSET_NAME }}.*
107126
108127 release :
109128 needs : [verify-version, build]
@@ -128,7 +147,9 @@ jobs:
128147 body : |
129148 ## JACS CLI v${{ needs.verify-version.outputs.version }}
130149
131- Prebuilt CLI binaries for verifying and signing JACS documents.
150+ Prebuilt binaries for:
151+ - `jacs` (CLI)
152+ - `jacs-mcp` (MCP server)
132153
133154 ### Install
134155
@@ -146,7 +167,12 @@ jobs:
146167 sudo mv jacs-cli /usr/local/bin/
147168 ```
148169
149- Or install via npm/pip (ships with `jacs`).
170+ Install MCP directly from the CLI (uses these platform assets by default):
171+
172+ ```bash
173+ jacs mcp install
174+ jacs mcp run
175+ ```
150176
151177 ### Verify checksums
152178 ```bash
0 commit comments