Skip to content

feat: build mcpb bundle and attach to github releases (1.15.2)#34

Merged
ttpears merged 1 commit into
mainfrom
feat/mcpb-release-bundle
May 13, 2026
Merged

feat: build mcpb bundle and attach to github releases (1.15.2)#34
ttpears merged 1 commit into
mainfrom
feat/mcpb-release-bundle

Conversation

@ttpears
Copy link
Copy Markdown
Owner

@ttpears ttpears commented May 13, 2026

Summary

  • Adds an MCPB build that produces gitlab-mcp-community-${VERSION}.mcpb — a drag-and-drop install bundle for Claude Desktop. The Release workflow now attaches it to each GitHub Release alongside the existing npm and GHCR artifacts.
  • Bundle is intentionally read-only (GITLAB_READ_TOKEN only). Display name GitLab (community, read-only) and name gitlab-mcp-community disambiguate from GitLab Inc.'s first-party MCP server. Users who need write access install via npm or GHCR.
  • Patch bump to 1.15.2 so this PR's merge triggers the new pipeline immediately and validates the MCPB asset is attached to the release. The published npm artifact is byte-identical to 1.15.1 — only the release surface changed.
  • README documents the drag-and-drop install path in the Claude Desktop section.

Implementation

  • mcpb/manifest.template.json — versioned manifest with __VERSION__ placeholder, substituted at build time.
  • scripts/build-mcpb.mjs — runs npm pack, installs the tarball into dist-mcpb/ with --omit=dev --ignore-scripts --no-package-lock, writes the manifest, then zips manifest.json + node_modules/ into gitlab-mcp-community-${VERSION}.mcpb. Local build verified at 5.7 MB.
  • .github/workflows/release.yml — new "Build MCPB bundle" step plus a positional asset arg on gh release create.
  • .gitignore — ignores dist-mcpb/ and *.mcpb.

Test plan

  • npm run build:mcpb locally — produces 5.7 MB bundle
  • Unzip + smoke run: node node_modules/@ttpears/gitlab-mcp-server/dist/index.js with GITLAB_READ_TOKEN set — server starts, loads config, attempts introspection (401 with fake token as expected), continues listening
  • Manifest matches MCPB 0.3 schema (compared against working coworker bundle)
  • After merge: v1.15.2 tag fires release.yml, MCPB attached to the GitHub release
  • Drag-and-drop install in Claude Desktop with the released asset

Adds a one-click install path for Claude Desktop. The Release workflow
now produces gitlab-mcp-community-${VERSION}.mcpb alongside the existing
npm and GHCR artifacts and attaches it to each GitHub Release.

- mcpb/manifest.template.json describes the bundle: name
  gitlab-mcp-community, display name "GitLab (community, read-only)"
  to disambiguate from GitLab Inc.'s first-party MCP server. Exposes
  GITLAB_URL and GITLAB_READ_TOKEN as user_config; the read token is
  marked sensitive so OS keychain storage applies. Writes are not
  exposed in the bundle — users needing write access install via npm
  or GHCR.
- scripts/build-mcpb.mjs runs npm pack, installs the tarball into
  dist-mcpb/ with --omit=dev --ignore-scripts, substitutes the version
  in the manifest, and zips manifest.json + node_modules into the
  final .mcpb. Invoked as `npm run build:mcpb`.
- release.yml: new "Build MCPB bundle" step plus an asset arg on
  gh release create, so the bundle ships with every tag push.
- README: documents the drag-and-drop install option in the Claude
  Desktop section and points to the latest release.
- .gitignore: ignores dist-mcpb/ and *.mcpb so local builds stay out
  of the repo.
@ttpears ttpears merged commit ca48ab3 into main May 13, 2026
2 checks passed
@ttpears ttpears deleted the feat/mcpb-release-bundle branch May 13, 2026 03:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant