Skip to content

Add MCP Registry sync pilot — workflow + drift-visible badges#2

Merged
KI7MT merged 1 commit into
mainfrom
feature/registry-publish
May 16, 2026
Merged

Add MCP Registry sync pilot — workflow + drift-visible badges#2
KI7MT merged 1 commit into
mainfrom
feature/registry-publish

Conversation

@KI7MT
Copy link
Copy Markdown
Member

@KI7MT KI7MT commented May 16, 2026

Summary

solar-mcp is the pilot repo for the MCP Registry sync rollout. Once this ships and the next real solar-mcp release demonstrates the workflow end-to-end, the same pattern fans out to the other 12 qso-graph + IONIS-AI MCP repos (per Patton's 2026-05-16 architecture review).

No release triggered by this PR — it just wires up the automation. The next time solar-mcp tags a real release, the registry-publish job runs automatically.

Why

We found a real operational gap after the fleet rollouts: PyPI has the current versions of every MCP, but the Official MCP Registry is months behind on every server. Registry-listed solar-mcp is v0.1.1; PyPI is v0.2.1. Discovery surfaces (Claude Desktop's MCP browser, mcp.so, third-party catalogs) show our packages at stale versions that don't have get_version_info or the security fixes from earlier.

The fix has two layers:

  1. Automation (this PR) — publish to the Registry whenever PyPI publishes
  2. Backfill — forward-only via natural release cadence; no synthetic version bumps

Per Patton's review, the forward-only model is the right discipline. Tagging content-free patch releases just to sync the Registry would corrupt the version log permanently to fix a temporary visible-drift problem. Better: ship the automation, make the drift visible via README badges + CHANGELOG, let next real release catch the Registry up.

Changes

  • .github/workflows/publish.yml — new registry-publish job. Runs after PyPI publish succeeds (needs: publish). Uses GitHub OIDC auth (no PAT). Bumps server.json in-memory to the tag version, then ./mcp-publisher publish.
  • README.md — added PyPI and MCP Registry version badges side-by-side. If they show different numbers, drift is immediately visible.
  • CHANGELOG.md[Unreleased] section documenting the CI hygiene addition and the known stale state of pre-0.2.1 versions on the Registry.

Reference

Canonical template (copy source for the fleet fan-out): qso-graph/.github TEMPLATES.md

Test plan

  • CI matrix green (the new job only fires on tag push, not PR — so PR CI should be unchanged from main)
  • Live verification waits for next solar-mcp release — that's the pilot test. Document any quirks before fan-out.

After this lands

  1. Wait for next real solar-mcp release (whenever that organically happens)
  2. Tag pushes → publish.yml runs the new job → solar-mcp Registry entry should jump from 0.1.1 to whatever the new version is
  3. Document any surprises in qso-graph/.github/TEMPLATES.md and on the solar-mcp repo
  4. Fan out to the remaining 12 MCP repos using the documented pattern

Architectural note (per Patton)

Per-repo copy of the registry-publish job is the right call (same logic as the ci.yml decision): publish workflows have higher consequence than test workflows, so isolation matters more. Single point of evolution is qso-graph/.github/TEMPLATES.md; each repo holds its own diff-able copy. Manual coordination of explicit copies > implicit coordination through shared workflow. Auditability is the feature.

Per Patton's 2026-05-16 review on the version-drift architecture:
solar-mcp is the pilot repo for the registry-sync rollout. Once this
ships and the next real solar-mcp release demonstrates the workflow
end-to-end, the same pattern fans out to the other 12 MCP repos.

Changes:
- .github/workflows/publish.yml — appended 'registry-publish' job that
  runs after PyPI publish succeeds. Uses GitHub OIDC for auth (no PAT
  to manage). Bumps server.json in-memory to the tag version before
  invoking 'mcp-publisher publish'.
- README.md — added PyPI + MCP Registry shields.io badges side-by-side
  for visible-drift transparency. Plus a one-liner explaining the
  forward-only sync model.
- CHANGELOG.md — '[Unreleased]' section documenting the CI hygiene
  addition and the known drift on pre-0.2.1 versions.

Forward-only sync (per Patton's Option C): existing Registry entries
stay stale until each server's next real release naturally catches
them up. No content-free version bumps for hygiene's sake — that
would corrupt the version history permanently to fix a temporary
problem. The badges make the staleness transparent rather than
hidden.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@KI7MT KI7MT merged commit 8257ec7 into main May 16, 2026
5 checks passed
@KI7MT KI7MT deleted the feature/registry-publish branch May 16, 2026 22:09
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