Skip to content

ci: publish each release to the MCP Registry - #170

Merged
moshest merged 1 commit into
mainfrom
claude/project-thread-2fl1cl
Sep 28, 2026
Merged

moshest merged 1 commit into
mainfrom
claude/project-thread-2fl1cl

Conversation

@moshest

@moshest moshest commented Sep 28, 2026

Copy link
Copy Markdown
Member

Before: the official MCP Registry lists io.github.neuledge/context at 0.2.3, published 2026-02-09 and marked latest, while npm is at 1.2.9. Clients that install from the MCP Registry get a version from February. Nothing in CI publishes server.json, which still says 0.2.3.

After: every release that reaches npm is also published to the MCP Registry, at the same version.

How: a new mcp-registry job in release.yml runs after release, behind the same hasChangesets == 'false' gate as "Tag releases". It asks the registry whether it already has the package.json version and stops if it does, so pushes that release nothing are no-ops and a failed publish is retried by the next push. Otherwise it installs mcp-publisher v1.8.1 (sha256-checked), writes the version into server.json with jq, waits until npm serves that version, and runs mcp-publisher login github-oidc and publish. GitHub OIDC grants io.github.neuledge/*, so no secret is stored. It's a separate job, so a registry failure shows up without failing the npm release. server.json in the repo is also bumped to 1.2.9. Followed https://github.com/modelcontextprotocol/registry/blob/main/docs/modelcontextprotocol-io/github-actions.mdx.

Merging this publishes 1.2.9 to the MCP Registry on the release run that follows.

Validated: YAML parses, actionlint passes, mcp-publisher validate accepts server.json, and pnpm lint passes.

🤖 Generated with Claude Code

https://claude.ai/code/session_01UX3uvgjRrv9uYuZxKjNF4o


Generated by Claude Code

The MCP Registry still lists io.github.neuledge/context at 0.2.3 because
server.json was never bumped and nothing published it, so registry
clients install a months-old version.

Add an `mcp-registry` job after `release`, gated like "Tag releases"
(changesets' `published` output never turns true with `pnpm -r publish`).
It publishes only when the registry lacks packages/context's version, so
no-op pushes skip and a failed publish is retried by the next push. It
installs a pinned, checksum-verified mcp-publisher v1.8.1, stamps the
version into server.json, waits for npm to serve that version (the
registry checks its mcpName), then logs in with github-oidc and publishes.
Being its own job, a registry failure stays visible without failing the
npm release.

Also bump the checked-in server.json to 1.2.9. The $schema URL
(2025-12-11) is still the current one in mcp-publisher v1.8.1.

Follows https://github.com/modelcontextprotocol/registry/blob/main/docs/modelcontextprotocol-io/github-actions.mdx

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UX3uvgjRrv9uYuZxKjNF4o
@changeset-bot

changeset-bot Bot commented Sep 28, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 4bd005e

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@moshest
moshest marked this pull request as ready for review September 28, 2026 08:10
@moshest
moshest merged commit 8ffcd39 into main Sep 28, 2026
4 checks passed
@moshest
moshest deleted the claude/project-thread-2fl1cl branch September 28, 2026 08:11
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.

2 participants