From cb7cdf6c39564c92616b1dd1bb34bfe244a3ea45 Mon Sep 17 00:00:00 2001 From: Rafael Richards Date: Mon, 11 May 2026 14:45:00 -0400 Subject: [PATCH] =?UTF-8?q?chore:=20shorten=20description=20=E2=89=A4100?= =?UTF-8?q?=20chars=20+=20bump=20v0.2.3=20=E2=80=94=20fix=20MCP=20registry?= =?UTF-8?q?=20publish?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit v0.2.2 published successfully to PyPI (m-dev-tools-mcp 0.2.2 live) but the MCP registry rejected the server.json with HTTP 422: validation failed: expected length <= 100 body.description: "MCP server for the m-dev-tools org catalog — exposes route_intent, describe, and verify as first-class agent tools." (116 chars) The official registry caps `description` at 100 characters; ours was 116. Easy fix: shorten to a 76-char form that keeps the same gist. Description rewritten everywhere it appears: * server.json description: now 76 chars * pyproject.toml description: same, kept in sync (no length limit on PyPI side, but the two should match — registry consumers read both) Bump to v0.2.3 (PyPI 0.2.2 is live + immutable): * pyproject.toml: version 0.2.2 → 0.2.3 * src/m_dev_tools_mcp/__init__.py: __version__ → "0.2.3" * server.json: top-level version + packages[0].version → "0.2.3" * dist/mcp-tools.json regen Also lands the belt-and-suspenders cleanup line in Makefile's clean target that didn't make it into PR #10 — adds `rm -f dist/*.whl dist/*.tar.gz` so a forgotten `python -m build` without --outdir doesn't leak through to a future PyPI upload. ### Verified locally * make check — ruff + mypy + 41/41 pytest + manifest + check-agents drift gates all clean * make build → wheel-out/m_dev_tools_mcp-0.2.3-py3-none-any.whl * description-length sanity: server.json description is 76 chars (well under the 100-char registry cap) ### After merge Push v0.2.3 tag. release.yml fires; expected: 4-of-4 steps pass (build / GH-Release / PyPI / MCP registry), m-dev-tools-mcp 0.2.3 live on both PyPI and registry.modelcontextprotocol.io. --- Makefile | 4 ++++ dist/mcp-tools.json | 2 +- pyproject.toml | 4 ++-- server.json | 6 +++--- src/m_dev_tools_mcp/__init__.py | 2 +- 5 files changed, 11 insertions(+), 7 deletions(-) diff --git a/Makefile b/Makefile index 5ff60d8..95caf1e 100644 --- a/Makefile +++ b/Makefile @@ -73,3 +73,7 @@ build: clean: rm -rf .venv .pytest_cache .ruff_cache .mypy_cache build dist/*.egg-info \ src/*.egg-info wheel-out + # Belt-and-suspenders: even if a future `python -m build` forgets + # --outdir and writes wheels under dist/, clean them up so they + # don't leak into a future PyPI publish. + rm -f dist/*.whl dist/*.tar.gz diff --git a/dist/mcp-tools.json b/dist/mcp-tools.json index 54fa68e..e78f870 100644 --- a/dist/mcp-tools.json +++ b/dist/mcp-tools.json @@ -2,7 +2,7 @@ "$schema": "https://raw.githubusercontent.com/m-dev-tools/.github/main/profile/repo.meta.schema.json", "kind": "m-dev-tools-mcp.tools", "package": "m_dev_tools_mcp", - "version": "0.2.2", + "version": "0.2.3", "tool_count": 3, "tools": [ { diff --git a/pyproject.toml b/pyproject.toml index 3c8c6e8..4a8132a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,8 +4,8 @@ build-backend = "setuptools.build_meta" [project] name = "m-dev-tools-mcp" -version = "0.2.2" -description = "MCP server for the m-dev-tools org catalog — exposes route_intent, describe, and verify as first-class agent tools." +version = "0.2.3" +description = "MCP server wrapping the m-dev-tools catalog: route_intent, describe, verify." readme = "README.md" license = { text = "AGPL-3.0" } requires-python = ">=3.10" diff --git a/server.json b/server.json index 749dd2d..d0363f6 100644 --- a/server.json +++ b/server.json @@ -1,20 +1,20 @@ { "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json", "name": "io.github.m-dev-tools/m-dev-tools-mcp", - "description": "MCP server for the m-dev-tools org catalog — exposes route_intent, describe, and verify as first-class agent tools.", + "description": "MCP server wrapping the m-dev-tools catalog: route_intent, describe, verify.", "title": "m-dev-tools", "websiteUrl": "https://github.com/m-dev-tools/m-dev-tools-mcp", "repository": { "url": "https://github.com/m-dev-tools/m-dev-tools-mcp", "source": "github" }, - "version": "0.2.2", + "version": "0.2.3", "packages": [ { "registryType": "pypi", "registryBaseUrl": "https://pypi.org", "identifier": "m-dev-tools-mcp", - "version": "0.2.2", + "version": "0.2.3", "runtimeHint": "uvx", "transport": { "type": "stdio" diff --git a/src/m_dev_tools_mcp/__init__.py b/src/m_dev_tools_mcp/__init__.py index 98b236e..612edb0 100644 --- a/src/m_dev_tools_mcp/__init__.py +++ b/src/m_dev_tools_mcp/__init__.py @@ -1,3 +1,3 @@ """m-dev-tools-mcp — MCP server wrapping the m-dev-tools org catalog.""" -__version__ = "0.2.2" +__version__ = "0.2.3"