Skip to content

chore: README mcp-name marker + refresh + bump v0.2.4 — pass MCP registry ownership#12

Merged
rafael5 merged 1 commit into
mainfrom
chore/bump-v0.2.4-add-mcp-name-marker
May 11, 2026
Merged

chore: README mcp-name marker + refresh + bump v0.2.4 — pass MCP registry ownership#12
rafael5 merged 1 commit into
mainfrom
chore/bump-v0.2.4-add-mcp-name-marker

Conversation

@rafael5
Copy link
Copy Markdown
Contributor

@rafael5 rafael5 commented May 11, 2026

Summary

v0.2.3 published to PyPI but the MCP registry rejected with HTTP 400:

PyPI package 'm-dev-tools-mcp' ownership validation failed.
The server name 'io.github.m-dev-tools/m-dev-tools-mcp' must
appear as 'mcp-name: io.github.m-dev-tools/m-dev-tools-mcp' in
the package README

The registry's proof-of-ownership check ties each PyPI package back to its claimed namespace via a literal marker in the README that PyPI uploads as the long-description. This PR adds that marker, refreshes the (otherwise stale) README, and bumps to v0.2.4 (PyPI 0.2.2 + 0.2.3 are immutable).

README.md rewritten

The README still said "Track A scaffold", "Distribution: GitHub Releases (not PyPI)", and linked a 404'd phase4-plan.md from before the docs reorg into phases/. Rewritten:

  • mcp-name: io.github.m-dev-tools/m-dev-tools-mcp marker, with an HTML comment explaining "do not remove" so a future doc cleanup doesn't accidentally strip it
  • Install section now leads with pip install m-dev-tools-mcp + uvx m-dev-tools-mcp; GH-Release wheel URL as the third option
  • MCP-client config snippet; registry-driven install path called out with io.github.m-dev-tools/m-dev-tools-mcp
  • "More" section links the architecture doc + phases/ subfolder (correct paths) + summarizes the release.yml automation
  • Stale Track-A / phase4 references removed

Versions

  • pyproject.toml: 0.2.3 → 0.2.4
  • src/m_dev_tools_mcp/__init__.py: __version__"0.2.4"
  • server.json: top-level version + packages[0].version"0.2.4"
  • dist/mcp-tools.json regen

Verified locally

  • grep -c "mcp-name: io.github.m-dev-tools/m-dev-tools-mcp" README.md → 1
  • make check clean — ruff + mypy + 41/41 pytest + manifest + check-agents drift gates
  • make buildwheel-out/m_dev_tools_mcp-0.2.4-py3-none-any.whl

Step-status track record (Phase-6 iterations)

Tag Build GH Release PyPI MCP registry
v0.2.0 ❌ Trusted Publisher not configured ⊘ skipped
v0.2.1 ❌ same (configured AFTER) ⊘ skipped
v0.2.2 ❌ twine choked on dist/mcp-tools.json ⊘ skipped
v0.2.2 (post wheel-out fix) 0.2.2 live ❌ description too long (116 > 100)
v0.2.3 0.2.3 live ❌ PyPI ownership not provable
v0.2.4 (this PR) expected ✅ expected ✅ expected ✅ (well — already-live versions block re-upload of v0.2.4 only if name conflict happens) expected ✅ — README marker now satisfies ownership

Test plan

  • Local gates green
  • mcp-name marker present in README
  • Wheel builds to wheel-out/
  • CI green
  • After merge: push v0.2.4 tag → release.yml fires end-to-end → all 4 publish steps green → m-dev-tools-mcp v0.2.4 live on PyPI and the MCP registry under io.github.m-dev-tools/m-dev-tools-mcp

…stry ownership

v0.2.3 published to PyPI successfully but the MCP registry rejected
with HTTP 400:

  PyPI package 'm-dev-tools-mcp' ownership validation failed.
  The server name 'io.github.m-dev-tools/m-dev-tools-mcp' must
  appear as 'mcp-name: io.github.m-dev-tools/m-dev-tools-mcp' in
  the package README

The registry enforces proof-of-ownership tying each PyPI package
back to its claimed namespace via a literal marker in the README
that gets uploaded as PyPI's long-description.

Fix: add the marker. Bump to v0.2.4 (PyPI versions 0.2.2 + 0.2.3
are now live and immutable).

### README.md — refresh + marker

The README had become stale (still cited "Track A scaffold",
"Distribution: GitHub Releases (not PyPI)", and a 404'd
phase4-plan.md link from before the docs-reorg into the phases/
subfolder).

Rewritten to reflect post-Phase-6 reality:

* mcp-name marker line, with an HTML comment explaining "do not
  remove" so a future doc cleanup doesn't accidentally strip it
* Install section now leads with `pip install m-dev-tools-mcp` +
  `uvx m-dev-tools-mcp`, with the GH-Release wheel URL as the
  third option
* MCP-client config snippet pointing at the binary; registry-driven
  install path mentioned with the canonical
  io.github.m-dev-tools/m-dev-tools-mcp namespace
* Removed "Track A scaffold" status sentence (Phase 4 closed)
* "More" section links the architecture doc + phases/ subfolder
  (correct path) + summarizes the release.yml automation
* Outbound links bumped to docs/ai-discoverability/ paths that
  actually exist on .github/main

### Version bumps

* pyproject.toml: 0.2.3 → 0.2.4
* src/m_dev_tools_mcp/__init__.py: __version__ → "0.2.4"
* server.json: top-level version + packages[0].version → "0.2.4"
* dist/mcp-tools.json regen

### Verified locally

* mcp-name marker present in README.md (grep -c → 1)
* make check — ruff + mypy + 41/41 pytest + manifest +
  check-agents drift gates all clean
* make build → wheel-out/m_dev_tools_mcp-0.2.4-py3-none-any.whl

### After merge

Push v0.2.4 tag. release.yml fires; expected:

1. build wheel ✅
2. gh release create ✅
3. PyPI publish (Trusted Publisher OIDC) ✅
4. install mcp-publisher ✅
5. update server.json version ✅
6. PUBLISH TO MCP REGISTRY ✅ — README marker now satisfies the
   ownership check; registry can tie pypi/m-dev-tools-mcp to the
   io.github.m-dev-tools/m-dev-tools-mcp namespace
@rafael5 rafael5 merged commit 0ff6123 into main May 11, 2026
1 check passed
@rafael5 rafael5 deleted the chore/bump-v0.2.4-add-mcp-name-marker branch May 11, 2026 19:37
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