modelcontextprotocol / modelcontextprotocol/registry

Concern: GitHub PAT auth grants org-wide publish permissions regardless of user's role

Open
#982 4 comments 0 reactions 1 assignee View on GitHub

@pree-dew is already working on this.

Since Apr 24, 2026.

product requirements work question v1
Dominant language
Go
Stars
7.3k
Forks
994
Avg merge
4d 12h
Merged PRs (30d)
19

Description

Summary

When a GitHub user authenticates to the registry via PAT, they receive io.github.<org>/* publish permissions for every org they're a publicly visible member of - regardless of their actual role.

This means that a read-only org member can publish new versions of servers under the org's namespace.

This is intentional behaviour, but some users have raised concerns about this approach. I think it might be reasonable to tone down these permissions/allow better control of them, or at least document this more clearly?

Proposed change

  1. Default to user-scoped publish only. PAT auth should grant io.github.<username>/* and not automatically grant org-level publish. Orgs that want GitHub publishing already have OIDC.

  2. Opt-in allowlist for org publishing. Orgs that want specific users to publish via PAT can maintain a file like .github/mcp-registry-publishers.json listing which users can publish which servers. The registry would fetch this on auth and scope permissions accordingly.

This would be a breaking change for users currently relying on PAT-based org publishing, so it would need a deprecation/warning period.


An alternative I'd be excited about (but I don't know how feasible it is) is to validate the GitHub user's permissions within the org, not just that they are a member of the org. Then we could filter it down only to people able to write to repositories or something. But not sure how feasible that is + I think this needs to be made more precise (e.g. what if you can only write to some repos? what about enterprises with many thousands of employees who may not want people who can write to repos to publish things?)

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.