Skip to content

feat: publish to the MCP Registry on version tags#6

Merged
mashware merged 1 commit into
mainfrom
feat/mcp-registry-publish
Jun 12, 2026
Merged

feat: publish to the MCP Registry on version tags#6
mashware merged 1 commit into
mainfrom
feat/mcp-registry-publish

Conversation

@mashware

Copy link
Copy Markdown
Owner

What

Set up publishing to the official MCP Registry (registry.modelcontextprotocol.io, currently in preview) so the server shows up in MCP client discovery, automated on version tags.

  • server.json (repo root) — official 2025-12-11 schema, io.github.mashware/domain-memory, monorepo subfolder: packages/server, npm package with stdio transport. Validated against the official $schema (ajv) → valid.
  • mcpName in packages/server/package.json — the npm package-ownership marker the registry checks; it must equal server.json's name, and does.
  • Integrated into the existing release.yml (not a separate workflow): after the npm publish, it syncs server.json's version to the tag, installs mcp-publisher, authenticates via GitHub OIDC, and publishes. Reuses the id-token: write permission already present.

Notes / decisions

  • README left untouched on purpose. For npm packages the ownership marker is mcpName in package.json; the mcp-name: README line is the PyPI/NuGet mechanism, so adding it here would be a non-load-bearing, confusing marker. A "available on the MCP Registry" mention makes sense after the first publish.
  • No new secret / no namespace claim. The repo lives under github.com/mashware, so login github-oidc authorizes the io.github.mashware/* namespace from the OIDC token.
  • Preview registry. The flow may need updates as the registry stabilises. Re-running a failed registry step for an already-published version may be rejected by the registry.

Manual steps remaining (owner)

  1. (Optional) local dry-run: install mcp-publisher and run mcp-publisher publish --dry-run from the repo root.
  2. First publish = the version bump we deferred: bump the three package.json + server.json to the next version and push tag vX.Y.Z. That tag publishes npm and the registry in one run.

Verification

server.json validates against the official schema; release.yml is valid YAML; workspace typecheck clean; all tests green (CLI/server/web).

Add a server.json (official 2025-12-11 schema, validated) describing the
server under io.github.mashware/domain-memory, and an mcpName field in the
server package so the registry can verify npm package ownership.

Extend the existing tag-triggered release workflow to publish the metadata
to registry.modelcontextprotocol.io after the npm publish: it syncs
server.json's version to the tag, installs mcp-publisher, authenticates via
GitHub OIDC (no secret, the io.github.mashware/* namespace is proven by the
OIDC token) and publishes. The registry only stores metadata pointing at the
npm package. The registry is in preview, so this flow may need updates.
@mashware
mashware merged commit ab01b0e into main Jun 12, 2026
1 check passed
@mashware
mashware deleted the feat/mcp-registry-publish branch June 12, 2026 15:34
@mashware mashware mentioned this pull request Jun 12, 2026
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