modelcontextprotocol / modelcontextprotocol/registry
Edit authorization is permission-based without ownership checks
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 7.3k
- Forks
- 994
- Avg merge
- 4d 12h
- Merged PRs (30d)
- 19
Description
Describe the bug
MCP Registry currently uses permission-based authorization for editing servers but does not track or enforce ownership. As a result, any user with matching edit permissions can edit any server, even if they did not create it.
It creates serious risks for multi-tenant or public registry use cases and is not clearly documented.
To Reproduce
Steps to reproduce the behavior:
- Configure MCP Registry with global edit permissions
- User A publishes a server
- User B authenticates with a valid OIDC token
- User B edits User A’s server, with User A's server name that match the Permission[]
- Edit request succeeds
Expected behavior
- A user can edit a server only if they are the creator, OR
- The user has explicit admin-level permissions (e.g. *)
- Ownership should be persisted and auditable
Logs
No logs available.
Additional context
Suggested Improvements (High-level)
- Add ownership tracking
- Store created_by (OIDC sub) when a server is published
- Enforce ownership on edits
Allow edit if:
- user is the creator, OR
- user has admin-level permissions (e.g. *)
- Add audit logging
Track:
- who created a server
- who modified it
- timestamps
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing the server publish and edit request flows, including how the OIDC subject and Permission[] checks are handled. Define how created_by, modifying users, and timestamps are persisted and audited, then verify that creators can edit their servers while only admin-level permissions can edit others.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- authorization, backend-api-design, database, security
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 30/100