Visitar URL original
ci: publish the MCP registry entry on release tags by winter100004 · Pull Request #480 · usertour/usertour · GitHub
Skip to content

ci: publish the MCP registry entry on release tags - #480

Merged
winter100004 merged 1 commit into
stagingfrom
feat/mcp-registry
Sep 6, 2026
Merged

winter100004 merged 1 commit into
stagingfrom
feat/mcp-registry

Conversation

@winter100004

Copy link
Copy Markdown
Member

Follow-up to #479, which added server.json. The entry is now live on the registry (io.github.usertour/mcp, active, v0.9.4) — this automates keeping it current.

Why

A registry listing only changes when it is re-published, so its version drifts from the product the moment anyone forgets. This runs on the same v* tags the Docker image build already uses and takes the version from the tag, so a release cannot ship a stale entry. Nothing is committed back; the in-repo version stays the fallback for a manual publish.

Why OIDC and not a token

Publishing under the io.github.usertour/* namespace via mcp-publisher login github returns 403 even with org-owner role and public membership — a known upstream bug with four open issues (modelcontextprotocol/registry #1468, #1527, #1537, #1551), and the 403's own "make your membership public" advice is itself filed as misleading (#1483).

login github-oidc verifies this repository's identity instead of asking which orgs a human belongs to, so it never reaches that code path — the workaround confirmed in #1537 and the approach the registry docs recommend anyway. It also means no personal access token to mint, store, or rotate.

mcp-publisher validate runs before publishing, so a schema-invalid entry fails here rather than upstream.

Verified

  • Workflow YAML parses; steps, triggers and permissions (id-token: write) as intended
  • The tag→version step dry-run against the real server.json: tag v0.9.5 yields "version": "0.9.5" with every other field intact
  • id-token is never granted by default and is requested explicitly here, so the repo's read default workflow permission doesn't block it — no repo setting to flip

First real run will be the next v* tag; workflow_dispatch is enabled for a manual test.

🤖 Generated with Claude Code

Our listing on registry.modelcontextprotocol.io has to be re-published
to change, so the version there drifts from the product the moment
anyone forgets. This runs on the same v* tags the Docker image build
uses and takes the version FROM the tag, so a release cannot ship a
stale entry — nothing is committed back, the in-repo value stays the
fallback for a manual publish.

Authenticates with OIDC rather than a token: it proves this repository
rather than asking which orgs a human belongs to, which also avoids the
interactive-login path that refuses org namespaces outright
(modelcontextprotocol/registry#1468, #1527, #1537, #1551 — all open).
`mcp-publisher validate` gates the publish so a schema-invalid entry
fails here instead of upstream.

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