{
  "report": "mcp-registry-vs-reality",
  "registrySnapshot": "2026-10-04",
  "checkedAt": "2026-10-06",
  "base": {
    "entries": 38977,
    "publishers": 23016
  },
  "total": {
    "entries": {
      "count": 5435,
      "of": 38977,
      "pct": 13.9
    },
    "publishers": {
      "count": 3169,
      "of": 23016,
      "pct": 13.8
    }
  },
  "rows": [
    {
      "id": "repoUnreachable",
      "title": "Repository link can’t be opened publicly",
      "cause": "never-checked",
      "note": "GitHub returns HTTP 404 — the repository is missing or private; we can’t tell which. The registry checks the link’s format only, never that it opens.",
      "sources": [
        {
          "host": "api.github.com",
          "what": "GET /repos/{owner}/{repo} → 404"
        }
      ],
      "entries": {
        "count": 4298,
        "of": 38977,
        "pct": 11
      },
      "publishers": {
        "count": 2594,
        "of": 23016,
        "pct": 11.3
      },
      "subset": {
        "label": "with a GitHub repository link",
        "count": 4298,
        "of": 28743,
        "pct": 15
      }
    },
    {
      "id": "withdrawn",
      "title": "Listed version is withdrawn upstream",
      "cause": "never-checked",
      "note": "Deprecated on npm or yanked on PyPI. The registry doesn’t check withdrawal status, and neither npm nor PyPI records when it happened.",
      "sources": [
        {
          "host": "registry.npmjs.org",
          "what": "listed version’s “deprecated” field"
        },
        {
          "host": "pypi.org",
          "what": "listed release’s “yanked” flag"
        }
      ],
      "entries": {
        "count": 663,
        "of": 38977,
        "pct": 1.7
      },
      "publishers": {
        "count": 226,
        "of": 23016,
        "pct": 1
      },
      "subset": {
        "label": "shipping an npm or PyPI package",
        "count": 663,
        "of": 14431,
        "pct": 4.6
      }
    },
    {
      "id": "noWayToRun",
      "title": "Active, but declares no way to run it",
      "cause": "allowed-by-schema",
      "note": "No packages and no remotes. The registry schema requires neither.",
      "sources": [
        {
          "host": "registry.modelcontextprotocol.io",
          "what": "status “active”, no packages[], no remotes[]"
        }
      ],
      "entries": {
        "count": 459,
        "of": 38977,
        "pct": 1.2
      },
      "publishers": {
        "count": 295,
        "of": 23016,
        "pct": 1.3
      },
      "subset": {
        "label": "in the registry",
        "count": 459,
        "of": 38977,
        "pct": 1.2
      }
    },
    {
      "id": "archived",
      "title": "Linked repository is archived",
      "cause": "never-checked",
      "note": "The GitHub repository behind the entry is archived (read-only). The registry doesn’t check this.",
      "sources": [
        {
          "host": "api.github.com",
          "what": "GET /repos/{owner}/{repo} → “archived”: true"
        }
      ],
      "entries": {
        "count": 309,
        "of": 38977,
        "pct": 0.8
      },
      "publishers": {
        "count": 149,
        "of": 23016,
        "pct": 0.6
      },
      "subset": {
        "label": "with a reachable GitHub repository",
        "count": 309,
        "of": 24256,
        "pct": 1.3
      }
    },
    {
      "id": "cannotInstall",
      "title": "Listed version can’t be installed",
      "cause": "verified-once",
      "note": "The listed package or exact version doesn’t exist on npm/PyPI. By default the registry checks the exact version exists at publish; all of these were published after that check was introduced.",
      "sources": [
        {
          "host": "registry.npmjs.org",
          "what": "package or listed version → 404 / no releases"
        },
        {
          "host": "pypi.org",
          "what": "package or listed release → 404 / no releases"
        }
      ],
      "entries": {
        "count": 157,
        "of": 38977,
        "pct": 0.4
      },
      "publishers": {
        "count": 124,
        "of": 23016,
        "pct": 0.5
      },
      "subset": {
        "label": "shipping an npm or PyPI package",
        "count": 157,
        "of": 14431,
        "pct": 1.1
      }
    }
  ],
  "sources": [
    "api.github.com",
    "registry.npmjs.org",
    "pypi.org",
    "registry.modelcontextprotocol.io"
  ],
  "generatedAt": "2026-10-06T15:47:30.060Z"
}
