Skip to content

ci: pack MCPB and publish path for Smithery#1867

Merged
SebTardif merged 2 commits into
mainfrom
dist/smithery-633
Jul 18, 2026
Merged

ci: pack MCPB and publish path for Smithery#1867
SebTardif merged 2 commits into
mainfrom
dist/smithery-633

Conversation

@SebTardif

Copy link
Copy Markdown
Contributor

Summary

Unblocks Smithery listing for Patchloom via the local MCPB path (stdio). Older issue notes assumed HTTPS-only; Smithery now documents MCPB for local servers, and Patchloom already has Streamable HTTP (mcp-server --http) for hosted use.

  • mcpb/: MCP Bundle manifest + Node launcher (PATH binary, else npx -y patchloom@ver mcp-server)
  • make pack-mcpb / scripts/pack-mcpb.sh: stamp version from Cargo.toml into a staging tree; write target/mcpb/patchloom-<ver>.mcpb
  • .github/workflows/publish-smithery.yml: pack after GitHub Release; soft-skip publish without SMITHERY_API_KEY
  • Docs: MCP setup + REPO-SETUP

Live listing still needs a secret

  1. Create a Smithery account / namespace patchloom
  2. smithery auth login or mint a token and gh secret set SMITHERY_API_KEY --repo patchloom/patchloom
  3. Run Actions → Publish Smithery (or wait for the next release)

Until the secret is set, CI only packs and uploads the MCPB artifact.

Test plan

  • make pack-mcpb / mcpb validate + pack contents include server/run.mjs
  • CI green on this PR
  • After SMITHERY_API_KEY: workflow publishes patchloom/patchloom

Closes #633

Smithery supports local stdio via MCPB bundles. Add mcpb/ packaging
(npx/PATH launcher, multi-platform), make pack-mcpb, and a soft-skip
publish-smithery workflow gated on SMITHERY_API_KEY.

Closes #633

Signed-off-by: Sebastien Tardif <sebtardif@ncf.ca>
@SebTardif
SebTardif marked this pull request as ready for review July 18, 2026 21:27
@SebTardif
SebTardif enabled auto-merge (squash) July 18, 2026 21:27
github-actions[bot]
github-actions Bot previously approved these changes Jul 18, 2026
Hosts SIGTERM the PATH patchloom process when closing a session. The
previous launcher treated any non-zero path exit as "try npx", which
could start a second server. Probe PATH with which/where first; only
fall back to npx when patchloom is absent.

Signed-off-by: Sebastien Tardif <sebtardif@ncf.ca>
@SebTardif
SebTardif merged commit c0ada08 into main Jul 18, 2026
54 checks passed
@SebTardif
SebTardif deleted the dist/smithery-633 branch July 18, 2026 21:39
SebTardif added a commit that referenced this pull request Jul 18, 2026
## Summary

Replace the broken `smithery mcp publish` CLI (1.2.0 returns 400 "No
values to set" for stdio MCPB) with a REST-based publisher script that
matches the API shape that already works for live listing.

## Changes

- Add `scripts/publish-smithery.sh` (PUT releases with empty tool lists
+ multipart bundle)
- Point `publish-smithery.yml` at the script; stop installing the
Smithery CLI
- Update docs (`mcp-setup.md`, `mcpb/README.md`, `REPO-SETUP.md`) for
the REST path and secret setup

## Context

- Namespace `patchloom` claimed; live server:
https://smithery.ai/servers/patchloom/patchloom
- `SMITHERY_API_KEY` is set on the repo
- MCPB packaging already landed via PR #1867

## Test plan

- [x] Script published successfully against Smithery REST API (live
listing present)
- [ ] CI soft-skip path still works when secret is unset (no behavior
change for missing key)
- [ ] Next release publish job uses the script instead of CLI

---------

Signed-off-by: Sebastien Tardif <sebtardif@ncf.ca>
SebTardif added a commit that referenced this pull request Jul 19, 2026
## Summary

Hardens the MCPB / Smithery pack path after #1867#1869:

- `scripts/pack-mcpb.sh` honors `$VERSION` over Cargo.toml (CI no longer
rewrites Cargo.toml on disk)
- `PACK_MCPB_PRINT_VERSION_ONLY=1` for unit tests without a full pack
- Workflow pins `@anthropic-ai/mcpb@2.1.2` and passes `VERSION` into
pack
- `make pack-mcpb-test` + `scripts/test_pack_mcpb.py`
(manifest/package.json/npx args stamp; skips full pack if `mcpb`
missing)
- Docs: AGENTS, REPO-SETUP, mcp-setup

## Test plan

- [x] `make pack-mcpb-test` (3 tests ok with mcpb present)
- [x] `VERSION=0.0.0-manual bash scripts/pack-mcpb.sh` stamps
package.json
- [x] Empty `VERSION=` falls back to Cargo.toml version

Signed-off-by: Sebastien Tardif <sebtardif@ncf.ca>
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.

dist: submit patchloom MCP server to Smithery.ai directory

1 participant