ci: publish to the MCP Registry on release - #80
Open
TheAmericanMaker wants to merge 1 commit into
Open
Conversation
The registry listing is a live discovery surface for Claude Code and Cursor users, and it had drifted badly: the latest published entry is 0.12.3 while npm is on 0.12.11. The release workflow publishes to npm and cuts a GitHub Release but never touched the registry, so the listing only moved when someone ran mcp-publisher by hand — and that stopped after 0.12.3. Adds an idempotent publish step. The io.github.* namespace authenticates via GitHub OIDC, so this needs no stored secret; the job already grants `id-token: write`. The step skips cleanly when the version is already listed, matching the existing npm publish step's behavior. mcp-publisher is pinned to v1.8.0 rather than tracking latest, so a release can't start failing because of an upstream tool change. Also rewrites the registry description to match the positioning merged in #77. The schema caps description at 100 characters, so this is the long-form pitch compressed to 96 rather than the README paragraph. Note: the schema has no keywords field, so the "add keywords" part of the visibility roadmap is not applicable — discovery there is name, title, and description only. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
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.
Roadmap item 6 (MCP Registry listing polish). The listing needed more than polish — it was stale.
Finding
The registry's latest published entry is 0.12.3. npm is on 0.12.11. Eight versions of drift.
Cause:
release.ymlpublishes to npm and cuts a GitHub Release, but never touches the registry. The listing only ever moved when someone ranmcp-publisherby hand, and that stopped after 0.12.3.server.jsonin the repo says 0.12.11 and a test keeps it in sync withpackage.json— it just was never being published anywhere.Anyone discovering CodeCartographer through Claude Code or Cursor's MCP browser has been seeing a listing from July.
Fix
An idempotent publish step in the release job:
io.github.*namespace authenticates via GitHub OIDC, and the job already grantsid-token: write. Nothing to provision.mcp-publisherpinned to v1.8.0 rather than trackinglatest, so a release can't start failing because of an upstream tool change.Description rewrite
Updated to match the positioning merged in #77:
The schema caps
descriptionat 100 characters, so this is the pitch compressed to 96 — not the README paragraph.Two notes on the roadmap item
keywordsfield. Discovery there isname,title, anddescriptiononly, which is why the description rewrite is the whole lever.iconsis supported and would improve how the listing renders. I skipped it because I couldn't verify from here thatcodecarto.dev/logo.svgresolves, and a broken icon URL is worse than none. Easy follow-up if you confirm the URL.Verification
release.ymlparses as valid YAMLserver.jsonvalidates against the schema's 100-char description caprelease-metadata.test.mjs, which pinsserver.jsontopackage.jsonThis step only runs on a
v*tag push, so it stays untested until the next release. Worth watching that run.🤖 Generated with Claude Code