Repository navigation
feat(mcp): list each release in the official MCP Registry - #59
Merged
Merged
Conversation
server.json lists io.github.MakeMyClip/editor as the npm package run as `npx @makemyclip/editor mcp`, with the env it reads; package.json gets the matching mcpName, which the registry checks on npm. At release, `pnpm registry:prepare` stamps the version and adds the Claude Desktop extension as an mcpb package (release URL + SHA-256), and `pnpm registry:publish` logs in with GitHub OIDC and publishes, retrying while npm catches up. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The release job installs mcp-publisher v1.8.8, checked against its sigstore signature, and semantic-release stamps server.json in prepare and publishes it in success, after npm and the GitHub release (with the .mcpb) are out. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A checkout of a release tag still says 0.0.0-development, so the recovery steps pass the version and download the released .mcpb. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
🎉 This PR is included in version 0.4.1 🎉 The release is available on:
Your semantic-release bot 📦🚀 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Targets the integration branch
feat/distribution. Nothing releases until that branch merges intomain.What
Each release is listed in the official MCP Registry as
io.github.MakeMyClip/editor, with two packages: the npm package (npx @makemyclip/editor mcp) and the Claude Desktop extension from #58.server.json: schema 2025-12-11. The description is 99 characters (the limit is 100). It has the repository with its GitHub id, the logo as the icon, and the npm package run withmcp, with the four env vars the server reads, each optional (format: filepath).package.jsonmcpName:io.github.MakeMyClip/editor. The registry fetches that exact npm version and requiresmcpNameto equal the server name. Case matters: the registry grants the namespace from the GitHub login as written (MakeMyClip) and compares case-sensitively, so a lowercase name is rejected with 403 (GitHub namespace permissions are case-sensitive but GitHub usernames/orgs are case-insensitive modelcontextprotocol/registry#689).scripts/mcp-registry.ts:prepare [version]stamps the version, by default frompackage.json, which semantic-release has just written. It also adds the.mcpbas anmcpbpackage:releases/download/v<version>/makemyclip-editor.mcpbwith itsfileSha256.publishrunsmcp-publisher login github-oidc, thenmcp-publisher publish. Publish is retried 6 × 20 s, because the registry reads the npm version, which can take a minute to appear.server.jsonchanges only in the release checkout.mcp-publisherv1.8.8 (the docs pin v1.8.1, and older binaries fail with "invalid audience") and checks it withcosign verify-blobagainst the registry's release workflow identity, as the official workflow does..releaserc.json:prepareCmdbecomespnpm build:mcpb && pnpm registry:prepare, and a newsuccessCmdrunspnpm registry:publish.successruns after@semantic-release/githubhas uploaded the.mcpb, which the registry checks is reachable.release.yml, not a tag-triggered workflow, because tags that semantic-release pushes withGITHUB_TOKENdon't trigger workflows..mcpbasset and the registry, with a section on the listing and a manual recovery path. That path uses aread:orgpersonal access token, because the interactivelogin githubcan't publish to an organization namespace.Why
Distribution slice 3 of 4. The finish line includes "find and install it from the official MCP Registry". MCP clients and aggregators that browse the registry pick it up from there. The first publish happens at the 0.4.1 release merge; the maintainer approved it on 2026-11-07.
How to test
Checks
tests/server-json.test.tschecks:nameequalspackage.json'smcpName,io.github.MakeMyClip/editor;@makemyclip/editorwithmcp;server.jsonand aregistry:prepare-stamped one (with themcpbentry) both validate against the registry's 2025-12-11 JSON schema with ajv. The stampedfileSha256equalsshasum -a 256of the built bundle.pnpm linthas 0 errors andpnpm type-checkis clean.codex review --base feat/mcpb-bundle, gpt-6.1-sol), 2 passes:0.0.0-development, because a tag checkout keeps that version. Fixed in b73956d:registry:preparetakes the version, and the steps download the released.mcpb.