#1649·registry

Publish 403s for org namespace despite Owner role + public membership (io.github.<org>/*)

Author: JohnCariCreated Sep 17, 2026Updated Sep 17, 2026

Summary

mcp-publisher publish returns 403 for an organization namespace (io.github.librocat/librocat) even though both documented prerequisites in docs/modelcontextprotocol-io/authentication.mdx are met: I am the sole Owner of the librocat GitHub org (not just a member), and org membership visibility is Public (confirmed independently via the unauthenticated GitHub API: GET /orgs/librocat/public_members/JohnCari204).

Error

Error: publish failed: server returned status 403: {"title":"Forbidden","status":403,"detail":"You do not have permission to publish this server. You have permission to publish: io.github.JohnCari/*. Attempting to publish: io.github.librocat/librocat. If you're trying to publish to a GitHub organization, you may need to make your organization membership public in your GitHub settings: ..."}

What I checked/tried (5 attempts across 2 browser sessions)

  1. mcp-publisher init → generated server.json with "name": "io.github.librocat/librocat"; mcp-publisher validate server.json passes.
  2. mcp-publisher login github (interactive device flow) → succeeds, confirms identity as JohnCari.
  3. mcp-publisher publish → 403 as above. Repeated with a fresh login each time (5 times total), including after:
    • Flipping org membership from Private to Public in GitHub org settings (github.com/orgs/librocat/people), verified via the public API as above.
    • A several-minute wait for possible propagation delay.
    • A full browser restart, to rule out stale cookies/session cache client-side.
  4. Ruled out the org's classic OAuth App access-restriction policy (Third-party accessOAuth app policy) — that governs classic OAuth Apps, and the registry's login uses a GitHub App (MCP Registry Login (Prod), client id Iv23liUydBbI7Z2Q9bOZ), not a classic OAuth App.
  5. Noted that MCP Registry Login (Prod) is not installed on the librocat org (only personally authorized via the device flow) — github.com/organizations/librocat/settings/installations shows only an unrelated app (Vercel) installed. authentication.mdx doesn't document org installation as a requirement for the interactive login path (only for CI-style Personal Access Tokens needing read:org / fine-grained Members: Read-only), so I didn't want to grant broader org access speculatively without knowing it's actually needed — flagging this as a possible missing requirement/doc gap if it turns out to be the real cause.

Expected

Given I'm the org's sole Owner with public membership, mcp-publisher publish should succeed for io.github.librocat/*, per the documented rules in authentication.mdx.

Environment

  • mcp-publisher version: 1.8.1 (commit f52dc852, built 2026-08-06)
  • Auth method: GitHub (interactive device flow)
  • Target namespace: io.github.librocat/librocat
  • Personal namespace that does work: io.github.JohnCari/*

Happy to provide more detail (org id, timestamps of attempts, etc.) if useful.

Source: modelcontextprotocol/registry