We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/toolprint/hypertool-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server
name: Promote to Stable
on:
workflow_dispatch:
inputs:
version:
description: 'Version to promote to stable (e.g., 1.2.3)'
required: true
type: string
create_release:
description: 'Create GitHub release for this stable version'
required: false
type: boolean
default: true
permissions:
contents: write
actions: read
jobs:
promote-stable:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
token: ${{ secrets.GITHUB_TOKEN }}
fetch-depth: 0
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
registry-url: 'https://registry.npmjs.org'
- name: Validate version format
run: |
if ! echo "${{ inputs.version }}" | grep -qE '^[0-9]+\.[0-9]+\.[0-9]+$'; then
echo "Error: Version must be in format x.y.z (e.g., 1.2.3)"
exit 1
fi
- name: Validate version exists on NPM
run: |
if ! npm view @toolprint/hypertool-mcp@${{ inputs.version }} version >/dev/null 2>&1; then
echo "Error: Version ${{ inputs.version }} does not exist on NPM"
echo "Available versions:"
npm view @toolprint/hypertool-mcp versions --json | tail -10
exit 1
fi
echo "✅ Version ${{ inputs.version }} found on NPM"
- name: Promote to stable and latest tags
run: |
echo "Promoting @toolprint/hypertool-mcp@${{ inputs.version }} to stable and latest..."
npm dist-tag add @toolprint/hypertool-mcp@${{ inputs.version }} stable
npm dist-tag add @toolprint/hypertool-mcp@${{ inputs.version }} latest
echo "✅ Successfully promoted to stable and latest"
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
- name: Show current dist-tag status
run: |
echo "Current NPM dist-tags:"
npm dist-tag ls @toolprint/hypertool-mcp
- name: Generate changelog for release
if: inputs.create_release == true
id: changelog
run: |
# Get the previous stable version tag
PREV_TAG=$(git tag -l "v*" --sort=-version:refname | head -2 | tail -1)
CURRENT_TAG="v${{ inputs.version }}"
if [ -z "$PREV_TAG" ]; then
PREV_TAG=$(git rev-list --max-parents=0 HEAD)
fi
echo "Generating changelog from $PREV_TAG to $CURRENT_TAG"
# Generate changelog
CHANGELOG=$(git log --pretty=format:"- %s (%h)" "$PREV_TAG..HEAD" 2>/dev/null || git log --pretty=format:"- %s (%h)" HEAD~10..HEAD)
# Save to file for GitHub release
cat > RELEASE_CHANGELOG.md << EOF
## What's Changed
$CHANGELOG
**Full Changelog**: https://github.com/toolprint/hypertool-mcp/compare/$PREV_TAG...$CURRENT_TAG
## Installation
\`\`\`bash
# Install latest stable version
npm install -g @toolprint/hypertool-mcp
npx @toolprint/hypertool-mcp
# Or install specific version
npm install -g @toolprint/hypertool-mcp@${{ inputs.version }}
\`\`\`
EOF
echo "changelog-file=RELEASE_CHANGELOG.md" >> $GITHUB_OUTPUT
- name: Create GitHub Release
if: inputs.create_release == true
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: v${{ inputs.version }}
release_name: Release v${{ inputs.version }}
body_path: ${{ steps.changelog.outputs.changelog-file }}
draft: false
prerelease: false
- name: Summary
run: |
echo "🎉 Successfully promoted version ${{ inputs.version }} to stable!"
echo ""
echo "📋 Summary:"
echo "- ✅ Version ${{ inputs.version }} is now tagged as 'stable'"
echo "- ✅ Version ${{ inputs.version }} is now tagged as 'latest'"
echo "- ✅ Users installing via 'npm install @toolprint/hypertool-mcp' will get v${{ inputs.version }}"
echo "- ✅ Users running 'npx @toolprint/hypertool-mcp' will get v${{ inputs.version }}"
if [ "${{ inputs.create_release }}" = "true" ]; then
echo "- ✅ GitHub release created: https://github.com/toolprint/hypertool-mcp/releases/tag/v${{ inputs.version }}"
fi
echo ""
echo "🚀 Next steps:"
echo "- Announce the stable release to users"
echo "- Update documentation if needed"
echo "- Monitor for any issues with the stable version"