Wire .mcpb build into release pipeline #121

Closed
opened 2026-05-07 20:27:11 +00:00 by goern · 0 comments
goern commented 2026-05-07 20:27:11 +00:00 (Migrated from codeberg.org)

Summary

PR #118 adds extension/ scaffolding for the Claude Desktop Extension (.mcpb) but does not produce a .mcpb artifact on release. Maintainer must extend .forgejo/workflows/release.yml so users get a downloadable .mcpb per release.

Why

Without this, each release page only shows the existing *.tar.gz per OS/arch. The drag-and-drop install story for Claude Desktop is incomplete from the end-user perspective.

What's needed

  1. Inject release tag into manifest version
    extension/manifest.json currently hardcodes 2.20.0. Use jq --arg v "${TAG#v}" '.version=$v' … before packing so it tracks the actual release.

  2. Multi-platform
    entry_point: bin/forgejo-mcp is single-platform. Either produce one .mcpb per {os, arch} (matches goreleaser's 4-binary matrix), or single .mcpb with server.mcp_config.platform_overrides bundling all four.

  3. Attach to release
    Upload via the Codeberg release-asset API (or goreleaser release.extra_files if the manifest can be templated).

  4. (Optional) Sign with npx @anthropic-ai/mcpb sign.

Acceptance

  • Each tagged release on codeberg.org/goern/forgejo-mcp/releases includes .mcpb artifact(s).
  • manifest.json version matches the release tag at pack time (no hardcoded drift).
  • .mcpb installs cleanly in Claude Desktop on at least linux-amd64 and darwin-arm64.
  • Smoke test (extension/test_smoke.py) runs in CI before pack.

Tracking

  • Beads ID: forgejo-mcp-9y4
  • Depends on: #118 (extension scaffolding must land first)
  • Implemented in: PR to follow against feat/release-mcpb-pipeline
## Summary PR #118 adds `extension/` scaffolding for the Claude Desktop Extension (`.mcpb`) but does **not** produce a `.mcpb` artifact on release. Maintainer must extend `.forgejo/workflows/release.yml` so users get a downloadable `.mcpb` per release. ## Why Without this, each release page only shows the existing `*.tar.gz` per OS/arch. The drag-and-drop install story for Claude Desktop is incomplete from the end-user perspective. ## What's needed 1. **Inject release tag into manifest version** `extension/manifest.json` currently hardcodes `2.20.0`. Use `jq --arg v "${TAG#v}" '.version=$v' …` before packing so it tracks the actual release. 2. **Multi-platform** `entry_point: bin/forgejo-mcp` is single-platform. Either produce one `.mcpb` per `{os, arch}` (matches goreleaser's 4-binary matrix), or single `.mcpb` with `server.mcp_config.platform_overrides` bundling all four. 3. **Attach to release** Upload via the Codeberg release-asset API (or goreleaser `release.extra_files` if the manifest can be templated). 4. *(Optional)* Sign with `npx @anthropic-ai/mcpb sign`. ## Acceptance - Each tagged release on `codeberg.org/goern/forgejo-mcp/releases` includes `.mcpb` artifact(s). - `manifest.json` `version` matches the release tag at pack time (no hardcoded drift). - `.mcpb` installs cleanly in Claude Desktop on at least `linux-amd64` and `darwin-arm64`. - Smoke test (`extension/test_smoke.py`) runs in CI before pack. ## Tracking - Beads ID: `forgejo-mcp-9y4` - Depends on: #118 (extension scaffolding must land first) - Implemented in: PR to follow against `feat/release-mcpb-pipeline`
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
agentic-forges/forgejo-mcp#121
No description provided.