Skip to content

ci: publish to the MCP Registry on release - #80

Open
TheAmericanMaker wants to merge 1 commit into
mainfrom
ci/publish-mcp-registry
Open

ci: publish to the MCP Registry on release#80
TheAmericanMaker wants to merge 1 commit into
mainfrom
ci/publish-mcp-registry

Conversation

@TheAmericanMaker

Copy link
Copy Markdown
Member

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.yml publishes to npm and cuts a GitHub Release, but never touches the registry. The listing only ever moved when someone ran mcp-publisher by hand, and that stopped after 0.12.3. server.json in the repo says 0.12.11 and a test keeps it in sync with package.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:

  • No secret required. The io.github.* namespace authenticates via GitHub OIDC, and the job already grants id-token: write. Nothing to provision.
  • Skips cleanly when the version is already listed, matching the existing npm publish step.
  • mcp-publisher pinned to v1.8.0 rather than tracking latest, so a release can't start failing because of an upstream tool change.

Description rewrite

Updated to match the positioning merged in #77:

Evidence-backed reverse engineering and human-gated software planning for Pi and MCP coding agents.
Turn an unfamiliar codebase into validated architecture, contracts, and a reimplementation spec.

The schema caps description at 100 characters, so this is the pitch compressed to 96 — not the README paragraph.

Two notes on the roadmap item

  • "Add keywords" is not applicable. The registry schema has no keywords field. Discovery there is name, title, and description only, which is why the description rewrite is the whole lever.
  • icons is supported and would improve how the listing renders. I skipped it because I couldn't verify from here that codecarto.dev/logo.svg resolves, and a broken icon URL is worse than none. Easy follow-up if you confirm the URL.

Verification

  • release.yml parses as valid YAML
  • server.json validates against the schema's 100-char description cap
  • 274/274 tests pass, including release-metadata.test.mjs, which pins server.json to package.json

This step only runs on a v* tag push, so it stays untested until the next release. Worth watching that run.

🤖 Generated with Claude Code

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>
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