Goal
Add a GitHub Actions workflow that publishes generated/template MCP server metadata to the official MCP Registry during release.
Current facts
- The official guide recommends publishing from GitHub Actions after release/tag creation.
mcp-publisher is the official registry CLI.
- GitHub OIDC is the preferred authentication path in CI.
- The workflow needs
id-token: write permissions for OIDC.
- Registry publishing validates
server.json package metadata and the published package/artifact it points to.
Requirements
- Add a release-tag-triggered workflow for publishing server metadata.
- Run tests and build/package checks before registry publication.
- Install the official
mcp-publisher binary from the Model Context Protocol registry releases.
- Authenticate with the MCP Registry using GitHub OIDC by default.
- Set
id-token: write permissions for OIDC authentication.
- Support version injection into
server.json from the release tag when needed.
- Publish with
mcp-publisher publish after package/publication prerequisites are satisfied.
- Document optional auth alternatives:
- GitHub PAT via
MCP_GITHUB_TOKEN with read:org and read:user scopes.
- DNS auth via
MCP_PRIVATE_KEY Ed25519 key.
- Coordinate with npm/package release work so registry package validation can find public installation metadata.
Implementation phases
-
Validate registry manifest shape.
- Audit current
server.json template and generated service server.json output.
- Decide whether template repo publishes its own server or only generated repos publish.
- Add a local/CI validation command for
mcp-publisher validate if supported by the installed CLI.
-
Add workflow skeleton.
-
Gate publication.
-
Publish.
- Run
mcp-publisher login github-oidc or equivalent current auth command.
- Run
mcp-publisher publish against the intended server.json.
- Upload logs/artifacts useful for debugging failed validation.
-
Document and scaffold.
- Document required secrets and permissions.
- Generate this workflow for scaffolded repos only when registry publishing is selected.
Alignment with related issues
Local files likely touched
.github/workflows/mcp-registry-publish.yml
server.json
docs/MCP-REGISTRY-PUBLISH-GUIDE.md or equivalent registry docs
release/components.toml
xtask/src/* if adding validation/version sync helpers
- Generated scaffold workflow/templates
Risks
- Publishing can fail if package metadata points to artifacts not yet public.
- GitHub OIDC permissions are easy to under-specify or over-grant.
- Registry CLI commands/flags may change; pinning and validation docs must match current CLI.
- Template publishing and generated-repo publishing may need different workflow defaults.
Acceptance criteria
Sources
Goal
Add a GitHub Actions workflow that publishes generated/template MCP server metadata to the official MCP Registry during release.
Current facts
mcp-publisheris the official registry CLI.id-token: writepermissions for OIDC.server.jsonpackage metadata and the published package/artifact it points to.Requirements
mcp-publisherbinary from the Model Context Protocol registry releases.id-token: writepermissions for OIDC authentication.server.jsonfrom the release tag when needed.mcp-publisher publishafter package/publication prerequisites are satisfied.MCP_GITHUB_TOKENwithread:organdread:userscopes.MCP_PRIVATE_KEYEd25519 key.Implementation phases
Validate registry manifest shape.
server.jsontemplate and generated serviceserver.jsonoutput.mcp-publisher validateif supported by the installed CLI.Add workflow skeleton.
contents: readandid-token: writeat minimum.mcp-publisherrelease artifact with checksum if available.Gate publication.
server.jsonversion equals the release tag/component version.Publish.
mcp-publisher login github-oidcor equivalent current auth command.mcp-publisher publishagainst the intendedserver.json.Document and scaffold.
Alignment with related issues
server.json..mcpbartifacts, but MCPB artifact creation is separate from registry publishing.Local files likely touched
.github/workflows/mcp-registry-publish.ymlserver.jsondocs/MCP-REGISTRY-PUBLISH-GUIDE.mdor equivalent registry docsrelease/components.tomlxtask/src/*if adding validation/version sync helpersRisks
Acceptance criteria
.github/workflows/and runs on release tags or release publication events chosen by Implement release-please across template release surfaces #72.id-token: writefor OIDC.mcp-publisher, authenticates with GitHub OIDC, and publishes the server metadata.server.jsonversion and package metadata are checked or updated from the release tag.Sources
/home/jmagar/workspace/rmcp-template/server.json