We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/deleonio/public-ui-kolibri'
If you have feedback or need assistance with the MCP directory API, please join our Discord server
name: 01 - Publish
env:
prefix: # 'v4-', when v5 is released
on:
workflow_dispatch:
inputs:
increment:
type: boolean
description: 'Would you like to set the version before publishing? (Else: The current version from the code repository will be used.)'
default: true
tag:
type: choice
description: Which NPM tag should be assigned?
options:
- dev
- next
- latest
version: # see https://github.com/lerna/lerna/tree/main/libs/commands/version#semver-bump
type: choice
description: SemVer keyword for version bump
options:
- prerelease
- prepatch
- patch
- preminor
- minor
label: # see https://github.com/lerna/lerna/tree/main/libs/commands/version#--preid
type: choice
description: SemVer pre release label (optional)
options:
- rc
- beta
- alpha
permissions:
contents: read
id-token: write
jobs:
publish:
if: github.repository == 'public-ui/kolibri'
runs-on: ubuntu-latest
steps:
- uses: actions/create-github-app-token@v2
id: app-token
with:
app-id: ${{ secrets.APP_ID }}
private-key: ${{ secrets.PRIVATE_KEY }}
- name: Get GitHub App User ID
id: get-user-id
run: echo "user-id=$(gh api "/users/${{ steps.app-token.outputs.app-slug }}[bot]" --jq .id)" >> "$GITHUB_OUTPUT"
env:
GH_TOKEN: ${{ steps.app-token.outputs.token }}
- uses: actions/checkout@v6
with:
token: ${{ steps.app-token.outputs.token }}
- name: Install Node.js
uses: actions/setup-node@v6
with:
node-version: 22
registry-url: https://registry.npmjs.org
- name: Install pnpm
uses: pnpm/action-setup@v4
id: pnpm-install
with:
version: 10
- name: Get pnpm store directory
id: pnpm-cache
shell: bash
run: echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT
- uses: actions/cache@v5
name: Setup pnpm cache
with:
path: ${{ steps.pnpm-cache.outputs.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store
restore-keys: |
${{ runner.os }}-pnpm-store
- name: Install
run: pnpm i --frozen-lockfile
- name: Configure Git user
run: |
git config --local user.email "${{ steps.get-user-id.outputs.user-id }}+${{ steps.app-token.outputs.app-slug }}[bot]@users.noreply.github.com"
git config --local user.name "${{ steps.app-token.outputs.app-slug }}[bot]"
- name: Bump versions without dev-tag and with git push
if: github.event.inputs.increment == 'true' && github.event.inputs.tag != 'dev'
run: 'HUSKY=0 npx lerna version ${{github.event.inputs.version}} --preid=${{github.event.inputs.label}} --no-private --tag-version-prefix="" -m "chore: release %v" -y --force-publish'
- name: Bump versions with dev-tag and without git push
if: github.event.inputs.increment == 'true' && github.event.inputs.tag == 'dev'
run: 'HUSKY=0 npx lerna version prerelease --preid=$GITHUB_SHA --no-private --tag-version-prefix="" -m "chore: release %v" -y --force-publish --no-push'
- name: Build
run: pnpm -r build
- name: Build and publish components
run: pnpm publish --access public --provenance --no-git-checks --tag ${{env.prefix}}${{github.event.inputs.tag}} || echo "⚠️ Publish skipped – package already exists"
working-directory: packages/components
env:
NODE_AUTH_TOKEN: ${{secrets.NPMJS_GRANULAR_TOKEN}}
NPM_CONFIG_PROVENANCE: true
- name: Build and publish adapter angular v19
run: pnpm publish --access public --provenance --no-git-checks --tag ${{env.prefix}}${{github.event.inputs.tag}} || echo "⚠️ Publish skipped – package already exists"
working-directory: packages/adapters/angular/v19
env:
NODE_AUTH_TOKEN: ${{secrets.NPMJS_GRANULAR_TOKEN}}
NPM_CONFIG_PROVENANCE: true
- name: Build and publish adapter angular v20
run: pnpm publish --access public --provenance --no-git-checks --tag ${{env.prefix}}${{github.event.inputs.tag}} || echo "⚠️ Publish skipped – package already exists"
working-directory: packages/adapters/angular/v20
env:
NODE_AUTH_TOKEN: ${{secrets.NPMJS_GRANULAR_TOKEN}}
NPM_CONFIG_PROVENANCE: true
- name: Build and publish adapter angular v21
run: pnpm publish --access public --provenance --no-git-checks --tag ${{env.prefix}}${{github.event.inputs.tag}} || echo "⚠️ Publish skipped – package already exists"
working-directory: packages/adapters/angular/v21
env:
NODE_AUTH_TOKEN: ${{secrets.NPMJS_GRANULAR_TOKEN}}
NPM_CONFIG_PROVENANCE: true
- name: Build and publish adapter react
run: pnpm publish --access public --provenance --no-git-checks --tag ${{env.prefix}}${{github.event.inputs.tag}} || echo "⚠️ Publish skipped – package already exists"
working-directory: packages/adapters/react
env:
NODE_AUTH_TOKEN: ${{secrets.NPMJS_GRANULAR_TOKEN}}
NPM_CONFIG_PROVENANCE: true
- name: Build and publish adapter react-v19
run: pnpm publish --access public --provenance --no-git-checks --tag ${{env.prefix}}${{github.event.inputs.tag}} || echo "⚠️ Publish skipped – package already exists"
working-directory: packages/adapters/react-v19
env:
NODE_AUTH_TOKEN: ${{secrets.NPMJS_GRANULAR_TOKEN}}
NPM_CONFIG_PROVENANCE: true
- name: Build and publish adapter react-standalone
run: pnpm publish --access public --provenance --no-git-checks --tag ${{env.prefix}}${{github.event.inputs.tag}} || echo "⚠️ Publish skipped – package already exists"
working-directory: packages/adapters/react-standalone
env:
NODE_AUTH_TOKEN: ${{secrets.NPMJS_GRANULAR_TOKEN}}
NPM_CONFIG_PROVENANCE: true
- name: Build and publish adapter solid
run: pnpm publish --access public --provenance --no-git-checks --tag ${{env.prefix}}${{github.event.inputs.tag}} || echo "⚠️ Publish skipped – package already exists"
working-directory: packages/adapters/solid
env:
NODE_AUTH_TOKEN: ${{secrets.NPMJS_GRANULAR_TOKEN}}
NPM_CONFIG_PROVENANCE: true
- name: Build and publish adapter svelte
run: pnpm publish --access public --provenance --no-git-checks --tag ${{env.prefix}}${{github.event.inputs.tag}} || echo "⚠️ Publish skipped – package already exists"
working-directory: packages/adapters/svelte
env:
NODE_AUTH_TOKEN: ${{secrets.NPMJS_GRANULAR_TOKEN}}
NPM_CONFIG_PROVENANCE: true
- name: Build and publish adapter vue
run: pnpm publish --access public --provenance --no-git-checks --tag ${{env.prefix}}${{github.event.inputs.tag}} || echo "⚠️ Publish skipped – package already exists"
working-directory: packages/adapters/vue
env:
NODE_AUTH_TOKEN: ${{secrets.NPMJS_GRANULAR_TOKEN}}
NPM_CONFIG_PROVENANCE: true
- name: Build and publish adapter preact
run: pnpm publish --access public --provenance --no-git-checks --tag ${{env.prefix}}${{github.event.inputs.tag}} || echo "⚠️ Publish skipped – package already exists"
working-directory: packages/adapters/preact
env:
NODE_AUTH_TOKEN: ${{secrets.NPMJS_GRANULAR_TOKEN}}
NPM_CONFIG_PROVENANCE: true
- name: Build and publish adapter hydrate
run: pnpm publish --access public --provenance --no-git-checks --tag ${{env.prefix}}${{github.event.inputs.tag}} || echo "⚠️ Publish skipped – package already exists"
working-directory: packages/adapters/hydrate
env:
NODE_AUTH_TOKEN: ${{secrets.NPMJS_GRANULAR_TOKEN}}
NPM_CONFIG_PROVENANCE: true
- name: Build and publish adapter react hook form
run: pnpm publish --access public --provenance --no-git-checks --tag ${{env.prefix}}${{github.event.inputs.tag}} || echo "⚠️ Publish skipped – package already exists"
working-directory: packages/adapters/react-hook-form-adapter
env:
NODE_AUTH_TOKEN: ${{secrets.NPMJS_GRANULAR_TOKEN}}
NPM_CONFIG_PROVENANCE: true
- name: Build and publish tools kolibri-cli
run: pnpm publish --access public --provenance --no-git-checks --tag ${{env.prefix}}${{github.event.inputs.tag}} || echo "⚠️ Publish skipped – package already exists"
working-directory: packages/tools/kolibri-cli
env:
NODE_AUTH_TOKEN: ${{secrets.NPMJS_GRANULAR_TOKEN}}
NPM_CONFIG_PROVENANCE: true
- name: Build and publish tools mcp
run: pnpm publish --access public --provenance --no-git-checks --tag ${{env.prefix}}${{github.event.inputs.tag}} || echo "⚠️ Publish skipped – package already exists"
working-directory: packages/tools/mcp
env:
NODE_AUTH_TOKEN: ${{secrets.NPMJS_GRANULAR_TOKEN}}
NPM_CONFIG_PROVENANCE: true
- name: Build and publish theme default
run: pnpm publish --access public --provenance --no-git-checks --tag ${{env.prefix}}${{github.event.inputs.tag}} || echo "⚠️ Publish skipped – package already exists"
working-directory: packages/themes/default
env:
NODE_AUTH_TOKEN: ${{secrets.NPMJS_GRANULAR_TOKEN}}
NPM_CONFIG_PROVENANCE: true
- name: Build and publish theme ecl
run: pnpm publish --access public --provenance --no-git-checks --tag ${{env.prefix}}${{github.event.inputs.tag}} || echo "⚠️ Publish skipped – package already exists"
working-directory: packages/themes/ecl
env:
NODE_AUTH_TOKEN: ${{secrets.NPMJS_GRANULAR_TOKEN}}
NPM_CONFIG_PROVENANCE: true
# - name: Build and publish theme kern
# run: pnpm publish --access public --provenance --no-git-checks --tag ${{env.prefix}}${{github.event.inputs.tag}} || echo "⚠️ Publish skipped – package already exists"
# working-directory: packages/themes/kern
# env:
# NODE_AUTH_TOKEN: ${{secrets.NPMJS_GRANULAR_TOKEN}}
# NPM_CONFIG_PROVENANCE: true
- name: Build and publish themes
run: pnpm publish --access public --provenance --no-git-checks --tag ${{env.prefix}}${{github.event.inputs.tag}} || echo "⚠️ Publish skipped – package already exists"
working-directory: packages/themes
env:
NODE_AUTH_TOKEN: ${{secrets.NPMJS_GRANULAR_TOKEN}}
NPM_CONFIG_PROVENANCE: true
- name: Build and publish sample react
run: pnpm publish --access public --provenance --no-git-checks --tag ${{env.prefix}}${{github.event.inputs.tag}} || echo "⚠️ Publish skipped – package already exists"
working-directory: packages/samples/react
env:
NODE_AUTH_TOKEN: ${{secrets.NPMJS_GRANULAR_TOKEN}}
NPM_CONFIG_PROVENANCE: true
- name: Build and publish tools visual-tests
run: pnpm publish --access public --provenance --no-git-checks --tag ${{env.prefix}}${{github.event.inputs.tag}} || echo "⚠️ Publish skipped – package already exists"
working-directory: packages/tools/visual-tests
env:
NODE_AUTH_TOKEN: ${{secrets.NPMJS_GRANULAR_TOKEN}}
NPM_CONFIG_PROVENANCE: true
- uses: actions/setup-node@v6
with:
node-version: 22
registry-url: https://npm.pkg.github.com
- name: Publish sample react
run: npm publish --access restricted || echo "⚠️ Publish skipped – package already exists"
working-directory: packages/samples/react
env:
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# Manage version tags for Netlify deployments
- name: Update version tag for stable deployments
if: github.event.inputs.tag == 'latest'
run: |
VERSION_TAG="${{env.prefix}}${{github.event.inputs.tag}}"
echo "Updating version tag: $VERSION_TAG"
git tag -d "$VERSION_TAG" 2>/dev/null || true
git push origin ":refs/tags/$VERSION_TAG" 2>/dev/null || true
git tag -a "$VERSION_TAG" -m "Update $VERSION_TAG to $(git describe --tags --abbrev=0)"
git push origin "$VERSION_TAG"
echo "Successfully updated tag $VERSION_TAG"