- Update release workflow with MCP_PUBLISH_TOKEN for automated publishing - Remove OIDC requirement (using classic token) - Add MCP client registration commands for Windsurf, Claude, VS Code/Cursor - Add verification steps for post-release checking
210 lines
3.9 KiB
Markdown
210 lines
3.9 KiB
Markdown
---
|
|
description: Release workflow - bump version, build, and publish MCP server
|
|
tags: [release, publish, workflow]
|
|
---
|
|
|
|
# MT5-Quant Release Workflow
|
|
|
|
Steps to release a new version of the MCP server.
|
|
|
|
## 1. Pre-Release Checklist
|
|
|
|
- [ ] All features implemented and tested
|
|
- [ ] Documentation updated (README.md, MCP_TOOLS.md)
|
|
- [ ] Tool count verified: `grep -r "pub fn tool_" src/tools/definitions/ | wc -l`
|
|
- [ ] Version bumped in Cargo.toml
|
|
- [ ] Build passes: `cargo build --release`
|
|
|
|
## 2. Update Documentation
|
|
|
|
// turbo
|
|
```bash
|
|
grep -r "pub fn tool_" src/tools/definitions/ | wc -l
|
|
```
|
|
|
|
Update these files with correct tool counts:
|
|
- `README.md` - header and "MCP Tools (N)" section
|
|
- `docs/MCP_TOOLS.md` - "documents X of Y total tools" line
|
|
|
|
## 3. Bump Version
|
|
|
|
Edit `Cargo.toml` and update the version:
|
|
```toml
|
|
version = "X.Y.Z"
|
|
```
|
|
|
|
## 4. Build Release
|
|
|
|
// turbo
|
|
```bash
|
|
bash scripts/build-release.sh
|
|
```
|
|
|
|
This creates: `dist/mcp-mt5-quant-{platform}.tar.gz`
|
|
|
|
Calculate SHA256 for server.json:
|
|
```bash
|
|
shasum -a 256 dist/mcp-mt5-quant-macos-arm64.tar.gz
|
|
```
|
|
|
|
## 5. Update MCP Server Configuration
|
|
|
|
Update both `server.json` files with:
|
|
- New version
|
|
- New SHA256 hash from step 4
|
|
- Updated download URL
|
|
- Tool count in description
|
|
|
|
Files to update:
|
|
- `server.json`
|
|
- `mcp-package/server.json`
|
|
|
|
Then copy the release package:
|
|
```bash
|
|
cp dist/mcp-mt5-quant-macos-arm64.tar.gz mcp-package/
|
|
```
|
|
|
|
## 6. Create Git Tag & Commit
|
|
|
|
```bash
|
|
git add .
|
|
git commit -m "Release vX.Y.Z - brief description"
|
|
git tag vX.Y.Z
|
|
git push origin vX.Y.Z
|
|
```
|
|
|
|
## 7. Create GitHub Release (Manual)
|
|
|
|
1. Go to GitHub → Releases → Draft new release
|
|
2. Choose tag: `vX.Y.Z`
|
|
3. Release title: `vX.Y.Z`
|
|
4. Attach binary: `dist/mcp-mt5-quant-macos-arm64.tar.gz`
|
|
5. Publish release
|
|
|
|
## 8. Install Binary to System Path
|
|
|
|
Install the binary to a single location for all MCP clients:
|
|
|
|
```bash
|
|
# Create local bin if needed
|
|
mkdir -p ~/.local/bin
|
|
|
|
# Install binary
|
|
cp target/release/mt5-quant ~/.local/bin/
|
|
|
|
# Or system-wide (requires sudo)
|
|
# sudo cp target/release/mt5-quant /usr/local/bin/
|
|
```
|
|
|
|
**Installation Path:** `~/.local/bin/mt5-quant` (single location for all clients)
|
|
|
|
## 9. MCP Registration
|
|
|
|
Use the installed binary path (not project directory):
|
|
|
|
### Claude Code
|
|
```bash
|
|
claude mcp add mt5-quant -- ~/.local/bin/mt5-quant
|
|
```
|
|
|
|
### Windsurf
|
|
Edit `~/.codeium/windsurf/mcp_config.json`:
|
|
```json
|
|
{
|
|
"mcpServers": {
|
|
"mt5-quant": {
|
|
"command": "~/.local/bin/mt5-quant"
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
### VS Code / Cursor
|
|
Edit `~/.cursor/mcp.json` or `.vscode/mcp.json`:
|
|
```json
|
|
{
|
|
"mcpServers": {
|
|
"mt5-quant": {
|
|
"command": "~/.local/bin/mt5-quant"
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
## 10. MCP Client Registration
|
|
|
|
After installing the binary, register with your MCP clients:
|
|
|
|
### Windsurf
|
|
|
|
// turbo
|
|
```bash
|
|
# Add to Windsurf MCP config
|
|
cat >> ~/.codeium/windsurf/mcp_config.json << 'EOF'
|
|
{
|
|
"mcpServers": {
|
|
"io.github.masdevid/mt5-quant": {
|
|
"command": "~/.local/bin/mt5-quant",
|
|
"disabled": false,
|
|
"registry": "io.github.masdevid/mt5-quant"
|
|
}
|
|
}
|
|
}
|
|
EOF
|
|
```
|
|
|
|
### Claude Code
|
|
|
|
// turbo
|
|
```bash
|
|
# Register with Claude Code
|
|
claude mcp add io.github.masdevid/mt5-quant -- ~/.local/bin/mt5-quant
|
|
|
|
# Or with custom name
|
|
claude mcp add mt5-quant -- ~/.local/bin/mt5-quant
|
|
```
|
|
|
|
### VS Code / Cursor
|
|
|
|
// turbo
|
|
```bash
|
|
# Add to Cursor MCP config
|
|
mkdir -p ~/.cursor
|
|
cat > ~/.cursor/mcp.json << 'EOF'
|
|
{
|
|
"mcpServers": {
|
|
"mt5-quant": {
|
|
"command": "~/.local/bin/mt5-quant",
|
|
"env": {
|
|
"MT5_MCP_HOME": "~/.config/mt5-quant"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
EOF
|
|
```
|
|
|
|
## 11. Post-Release Verification
|
|
|
|
// turbo
|
|
```bash
|
|
# Test the binary
|
|
./target/release/mt5-quant --help
|
|
|
|
# Verify tool count
|
|
./target/release/mt5-quant 2>&1 | head -20
|
|
|
|
# Check MCP registration
|
|
claude mcp list
|
|
```
|
|
|
|
## Quick Release Commands
|
|
|
|
```bash
|
|
# Full release cycle
|
|
vim Cargo.toml # bump version
|
|
bash scripts/build-release.sh
|
|
git add . && git commit -m "Release vX.Y.Z"
|
|
git tag vX.Y.Z && git push origin vX.Y.Z
|
|
```
|