Skip to content

ci(053): auto-publish server.json to MCP Registry on release (OIDC)#517

Merged
Dumbris merged 1 commit into
mainfrom
ci/053-mcp-registry-autopublish
May 23, 2026
Merged

ci(053): auto-publish server.json to MCP Registry on release (OIDC)#517
Dumbris merged 1 commit into
mainfrom
ci/053-mcp-registry-autopublish

Conversation

@Dumbris
Copy link
Copy Markdown
Member

@Dumbris Dumbris commented May 23, 2026

Answers "can we publish new registry versions from CI?" — yes, keyless via GitHub OIDC.

Adds .github/workflows/publish-mcp-registry.yml:

  • Triggers on release: published + manual workflow_dispatch (optional version input).
  • permissions: id-token: writemcp-publisher login github-oidc exchanges the workflow's OIDC token for a short-lived Registry JWT. No stored secret/token. The repo's OIDC identity proves smart-mcp-proxy org membership, which owns the io.github.smart-mcp-proxy namespace.
  • Installs the pinned mcp-publisher (v1.7.9) binary; actions/checkout SHA-pinned per repo convention.
  • Syncs server.json's version to the release tag at publish time (strips v), so no hand-bumping.
  • Validates (mcp-publisher validate) before publishing.

Why this matters: the interactive mcp-publisher login github token expires quickly (hit a 401 "token expired" doing it by hand). OIDC removes the manual login entirely and keeps the registry entry in lockstep with releases.

Validated with actionlint. First publish happens on the next release (or a manual dispatch). Pairs with #516 (server.json description refresh).

Adds .github/workflows/publish-mcp-registry.yml: on every GitHub Release (and
via workflow_dispatch) it installs the pinned mcp-publisher, syncs server.json's
version to the release tag, validates, authenticates via keyless GitHub OIDC
(login github-oidc, id-token: write — no stored secret), and publishes to
registry.modelcontextprotocol.io. The repo's OIDC identity proves smart-mcp-proxy
org membership, which owns the io.github.smart-mcp-proxy namespace.
Updated docs/mcp-registry-publishing.md to document the automation.
@cloudflare-workers-and-pages
Copy link
Copy Markdown

Deploying mcpproxy-docs with  Cloudflare Pages  Cloudflare Pages

Latest commit: 6b94b87
Status:⚡️  Build in progress...

View logs

@Dumbris Dumbris merged commit d5bf9ae into main May 23, 2026
17 of 18 checks passed
@Dumbris Dumbris deleted the ci/053-mcp-registry-autopublish branch May 23, 2026 11:28
Dumbris added a commit that referenced this pull request May 23, 2026
…g release.yml job (#518)

release.yml already has an 'mcp-registry' job that publishes server.json on every
tag via keyless GitHub OIDC (continue-on-error) — it has shipped 44 versions to
registry.modelcontextprotocol.io. The publish-mcp-registry.yml added in #517 was a
redundant duplicate that would have thrown 'cannot publish duplicate version' on
every release. Removes it and corrects docs/mcp-registry-publishing.md to reference
the existing automation instead of claiming publishing was manual.
@codecov-commenter
Copy link
Copy Markdown

⚠️ Please install the 'codecov app svg image' to ensure uploads and comments are reliably processed by Codecov.

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

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