From 521ca691db447f11a28c26e1431337665a51fdc8 Mon Sep 17 00:00:00 2001 From: "cmeans-claude-dev[bot]" <272174644+cmeans-claude-dev[bot]@users.noreply.github.com> Date: Sun, 26 Apr 2026 19:14:06 -0500 Subject: [PATCH] docs(readme): swap shields.io PyPI downloads badge for the pypi-winnow-downloads endpoint Mirrors cmeans/mcp-synology#62. The shields.io built-in pypi/dm metric counts CI/installer/mirror traffic, which drifts from the "real users" signal as the project's own CI matrix grows. The dogfooded endpoint at pypi-badges.intfar.com winnows pip*/uv/poetry/pdm installs out of the BigQuery PyPI Linehaul dataset over the trailing 30 days. Three deliberate changes (per mcp-synology#62): 1. Image URL: shields.io endpoint adapter pointing at the live JSON 2. Link target: github.com/cmeans/pypi-winnow-downloads (the methodology source of truth) rather than the PyPI project page, which is already covered by the PyPI version badge 3. Honesty: the displayed count is 30-day non-CI installs Endpoint pre-flight: the JSON returns {"schemaVersion":1,"label":"pip*/uv/poetry/pdm (30d)","message":"103", "color":"blue"} and shields.io renders 200. Closes #97. Co-Authored-By: Claude Opus 4.7 (1M context) --- CHANGELOG.md | 10 ++++++++++ README.md | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ccf1948..fe49ff1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -41,6 +41,16 @@ All notable changes to this project will be documented here. pre-created on the repo so PRs are categorized on creation. ### Changed +- README downloads badge now points at the dogfooded + `cmeans/pypi-winnow-downloads` endpoint + (`pypi-badges.intfar.com/mcp-clipboard/downloads-30d-non-ci.json`) + instead of `shields.io/pypi/dm/mcp-clipboard`. The new number is + 30-day non-CI installs (the metric that signals real adoption); + the previous shields.io built-in counted CI/installer/mirror + traffic. Badge link target swapped from the PyPI project page + (already covered by the `PyPI version` badge above) to + `github.com/cmeans/pypi-winnow-downloads` so a click surfaces the + source-of-truth methodology. Closes #97. - Add `workflow_dispatch:` trigger to `pr-labels-ci.yml` to restore template parity with `cmeans/yt-dont-recommend`. Gives maintainers a manual "Run workflow" handle and primes the `workflow_run` dispatcher diff --git a/README.md b/README.md index 75cc7a6..36082d8 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ [![License](https://img.shields.io/pypi/l/mcp-clipboard)](https://github.com/cmeans/mcp-clipboard/blob/main/LICENSE) [![CI](https://img.shields.io/github/actions/workflow/status/cmeans/mcp-clipboard/ci.yml?label=CI)](https://github.com/cmeans/mcp-clipboard/actions/workflows/ci.yml) [![Coverage](https://codecov.io/gh/cmeans/mcp-clipboard/graph/badge.svg)](https://codecov.io/gh/cmeans/mcp-clipboard) -[![Downloads](https://img.shields.io/pypi/dm/mcp-clipboard)](https://pypi.org/project/mcp-clipboard/) +[![Downloads](https://img.shields.io/endpoint?url=https%3A%2F%2Fpypi-badges.intfar.com%2Fmcp-clipboard%2Fdownloads-30d-non-ci.json)](https://github.com/cmeans/pypi-winnow-downloads) [![mcp-clipboard MCP server](https://glama.ai/mcp/servers/cmeans/mcp-clipboard/badges/card.svg)](https://glama.ai/mcp/servers/cmeans/mcp-clipboard) An MCP server that gives your AI assistant direct access to your system clipboard: read what you copied, or write clean text straight to it. Works with any MCP-compatible client, including Claude Code, Claude Desktop, Cursor, Windsurf, and others.