Skip to content

ci: add MCP Registry publish workflow (OIDC) to sync io.github.heznpc/airmcp#290

Merged
heznpc merged 1 commit into
mainfrom
ci/publish-mcp-registry-2026-06-10
Jun 10, 2026
Merged

ci: add MCP Registry publish workflow (OIDC) to sync io.github.heznpc/airmcp#290
heznpc merged 1 commit into
mainfrom
ci/publish-mcp-registry-2026-06-10

Conversation

@heznpc

@heznpc heznpc commented Jun 10, 2026

Copy link
Copy Markdown
Owner

The official MCP Registry (registry.modelcontextprotocol.io) had drifted: the
only entry was the pre-rename io.github.heznpc/iconnect@0.1.1, and
io.github.heznpc/airmcp was never published there because nothing automated
it — someone hand-published iconnect once in the iConnect era and there was no
follow-up. Downstream aggregators (Glama, mcp-scorecard, directories) scrape the
registry, so the dead iconnect name kept propagating.

server.json and package.json are already correct and matching
(io.github.heznpc/airmcp@2.12.0, with the required mcpName); the only missing
piece was a publisher. Add .github/workflows/publish-registry.yml:

  • Auth via GitHub OIDC (id-token: write) — proves this repo owns the
    io.github.heznpc/* namespace, no secret required.
  • Pinned to repo convention: actions/checkout by SHA, mcp-publisher v1.7.9
    (not latest).
  • Only publishes the manifest; the npm package is still published by the
    existing release pipeline. The registry verifies the manifest against the
    already-published npm package.
  • Triggers: workflow_dispatch (run once now to unstick the drift and publish the
    current version) + release published (keep it in sync going forward;
    scripts/sync-version.mjs already keeps server.json's version current). Does NOT
    fire on PR merge, so merging this only adds the capability — the first publish
    is an explicit manual dispatch.

Follow-up (operator-side, needs maintainer auth, not in this PR): deprecate the
old npm zombies (@heznpc/imcp, iconnect-mcp) and the registry's stale
io.github.heznpc/iconnect entry; consolidate the Glama listing off the
iconnect slug.

…/airmcp

The official MCP Registry (registry.modelcontextprotocol.io) had drifted: the
only entry was the pre-rename `io.github.heznpc/iconnect@0.1.1`, and
`io.github.heznpc/airmcp` was never published there because nothing automated
it — someone hand-published iconnect once in the iConnect era and there was no
follow-up. Downstream aggregators (Glama, mcp-scorecard, directories) scrape the
registry, so the dead `iconnect` name kept propagating.

server.json and package.json are already correct and matching
(`io.github.heznpc/airmcp@2.12.0`, with the required `mcpName`); the only missing
piece was a publisher. Add `.github/workflows/publish-registry.yml`:

- Auth via GitHub OIDC (`id-token: write`) — proves this repo owns the
  io.github.heznpc/* namespace, no secret required.
- Pinned to repo convention: actions/checkout by SHA, mcp-publisher v1.7.9
  (not `latest`).
- Only publishes the manifest; the npm package is still published by the
  existing release pipeline. The registry verifies the manifest against the
  already-published npm package.
- Triggers: workflow_dispatch (run once now to unstick the drift and publish the
  current version) + release published (keep it in sync going forward;
  scripts/sync-version.mjs already keeps server.json's version current). Does NOT
  fire on PR merge, so merging this only adds the capability — the first publish
  is an explicit manual dispatch.

Follow-up (operator-side, needs maintainer auth, not in this PR): deprecate the
old npm zombies (`@heznpc/imcp`, `iconnect-mcp`) and the registry's stale
`io.github.heznpc/iconnect` entry; consolidate the Glama listing off the
`iconnect` slug.
@heznpc heznpc enabled auto-merge (squash) June 10, 2026 01:49
@heznpc heznpc merged commit 7e2cb55 into main Jun 10, 2026
4 checks passed
@heznpc heznpc deleted the ci/publish-mcp-registry-2026-06-10 branch June 10, 2026 01:54
heznpc added a commit that referenced this pull request Jun 10, 2026
…on) (#291)

The Publish to MCP Registry workflow (#290) ran on dispatch and got past
checkout + mcp-publisher install + GitHub OIDC auth, then failed at publish
with a 422 from registry.modelcontextprotocol.io:

  validation failed — body.description "expected length <= 100"

server.json's description was ~175 chars. Shortened to 96 chars, keeping the
exact "272 tools across 29 modules" substring that scripts/count-stats.mjs
syncs (stats:check still reports server.json ok). OIDC namespace auth already
works, so the next dispatch on this commit should publish io.github.heznpc/airmcp.
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