Skip to content

feat(publish): publish to the official MCP Registry on release#1585

Merged
yury-s merged 2 commits intomicrosoft:mainfrom
yury-s:publish-mcp-registry
May 1, 2026
Merged

feat(publish): publish to the official MCP Registry on release#1585
yury-s merged 2 commits intomicrosoft:mainfrom
yury-s:publish-mcp-registry

Conversation

@yury-s
Copy link
Copy Markdown
Member

@yury-s yury-s commented Apr 30, 2026

Summary

  • Adds server.json declaring the npm and OCI packages under the io.github.microsoft/playwright-mcp namespace (already claimed via mcpName in package.json).
  • Adds a publish-mcp-release-registry job to publish.yml that runs after the npm release, auto-syncs server.json's version from package.json, and publishes via mcp-publisher using GitHub OIDC (no PAT needed).
  • Unblocks enterprise users on registryOnly MCP policies (e.g. VS Code + Copilot in security-hardened setups) by listing @playwright/mcp in the official registry.

Fixes #1477

Precedent

microsoft/mcp-dotnet-samples publishes io.github.microsoft/awesome-copilot to the registry from an hourly cron using the exact same flow (id-token: write + curl-fetched mcp-publisher + login github-oidc). It's been running successfully for weeks, so the GitHub-OIDC path is confirmed to work under microsoft/* corp policy — no DNS / Key Vault setup needed (unlike the reverted #1197 attempt that used the com.microsoft/... namespace).

Notes

  • server.json's committed version is just a placeholder; the workflow rewrites it from package.json before publish, so future chore: mark vX.Y.Z commits don't need to touch server.json.
  • First release after merge is the live test — no dry-run path.

Adds server.json and a publish.yml job that runs mcp-publisher after
the npm release. Auto-syncs server.json's version from package.json so
future releases only need to bump package.json.

Fixes microsoft#1477
@yury-s yury-s marked this pull request as draft April 30, 2026 23:35
@yury-s yury-s marked this pull request as ready for review April 30, 2026 23:47
- Drop the auto-sync step; require server.json to be bumped in lockstep
  with package.json. CI fails if they drift.
- Run mcp-publisher from the working directory instead of /usr/local/bin
  (no sudo needed).
- Correct server.json to 0.0.71 to match current package.json.
@yury-s yury-s merged commit 2ec36c1 into microsoft:main May 1, 2026
6 checks passed
yury-s added a commit that referenced this pull request May 1, 2026
#1586)

## Summary
- Expands the gate on `publish-mcp-release-registry` so it also runs on
`workflow_dispatch`. Lets us retroactively publish a previously-released
version (or rerun a failed publish) from the Actions tab without
re-running the npm release.
- Bumps `server.json` to `0.0.72` to match `package.json`. The
validation step added in #1585 would otherwise fail the next release,
since `mark v0.0.72` (#1584) landed before #1585 — `server.json` was
committed at `0.0.71`.

## Mechanics
The job still `needs: publish-mcp-release-npm` so on a real `release`
event it correctly waits for npm to publish first. On
`workflow_dispatch`, the npm job is skipped (its own `if` is
`release`-only), and `if: always() && needs.*.result !=
'failure'/'cancelled'` lets the registry job run anyway.

## Follow-up
Once merged, this enables a manual one-shot of v0.0.72 to the registry
via the Actions tab.

Follow-up to #1585.
Reference #1477
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.

Request: Publish @playwright/mcp to the Official OSS Registry to unblock "registryOnly" enterprise users

2 participants