chore: README mcp-name marker + refresh + bump v0.2.4 — pass MCP registry ownership#12
Merged
Merged
Conversation
…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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
v0.2.3 published to PyPI but the MCP registry rejected with HTTP 400:
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.mdrewrittenThe README still said "Track A scaffold", "Distribution: GitHub Releases (not PyPI)", and linked a 404'd
phase4-plan.mdfrom before the docs reorg intophases/. Rewritten:mcp-name: io.github.m-dev-tools/m-dev-tools-mcpmarker, with an HTML comment explaining "do not remove" so a future doc cleanup doesn't accidentally strip itpip install m-dev-tools-mcp+uvx m-dev-tools-mcp; GH-Release wheel URL as the third optionio.github.m-dev-tools/m-dev-tools-mcpphases/subfolder (correct paths) + summarizes the release.yml automationVersions
pyproject.toml: 0.2.3 → 0.2.4src/m_dev_tools_mcp/__init__.py:__version__→"0.2.4"server.json: top-level version +packages[0].version→"0.2.4"dist/mcp-tools.jsonregenVerified locally
grep -c "mcp-name: io.github.m-dev-tools/m-dev-tools-mcp" README.md→ 1make checkclean — ruff + mypy + 41/41 pytest + manifest + check-agents drift gatesmake build→wheel-out/m_dev_tools_mcp-0.2.4-py3-none-any.whlStep-status track record (Phase-6 iterations)
Test plan
mcp-namemarker present in READMEwheel-out/v0.2.4tag → release.yml fires end-to-end → all 4 publish steps green →m-dev-tools-mcpv0.2.4 live on PyPI and the MCP registry underio.github.m-dev-tools/m-dev-tools-mcp