TL;DR: Shared MCP deployments break clean attribution and least privilege when a single GitHub credential is expanded for multiple users, according to Stacklok. The article describes a proxy-based pattern that keeps OAuth handling, session state, and token exchange outside the MCP server so access remains user-linked rather than shared.
Editorial analysis by NHI Mgmt Group, based on content published by Stacklok: “GitHub authorization for MCP servers”.
Key questions
Q: How should security teams govern shared GitHub access in MCP deployments?
A: Security teams should avoid a single shared GitHub credential for multiple MCP users and instead preserve a distinct downstream identity path per user.
Q: Why do shared credentials create so much risk in MCP deployments?
A: Shared credentials erase accountability and make containment harder because every tool call appears to come from the same identity.
Q: What signals show that an MCP authorization design is too shared?
A: Look for repository access being widened to prevent request failures, one token serving multiple developers, or logs that no longer identify the originating user.
Practitioner guidance
- Define per-user credential paths Require each developer session to map to its own downstream GitHub access path so shared use does not collapse into one broad token.
- Move OAuth handling out of the MCP server Use a proxy authorization layer to manage sign-in, session issuance, and token exchange instead of embedding those controls in the backend server.
- Separate testing storage from production session state Use in-memory storage only for proofs of concept, and move to persistent session storage when restarts, upgrades, or interruptions must not break access continuity.
Bottom line: Shared GitHub access in MCP environments weakens attribution because multiple users can end up behind one downstream credential path.
Explore further
View Full Forum → | NHI Foundation Course → | Our Services → | Read the full analysis →
Shared credential expansion is an attribution failure, not just a convenience choice. Once one GitHub credential is widened to serve multiple developers, the organisation loses the ability to prove which user triggered which action. That breaks the basic governance premise behind access review, incident reconstruction, and least-privilege enforcement. The practical conclusion is that shared MCP access should be treated as an identity design flaw whenever user-level accountability matters.
A few things that frame the scale:
- 24,008 unique secrets were exposed in MCP configuration files in 2025 alone, the protocol's first year of widespread adoption, according to the State of Secrets Sprawl 2026.
- Only 44% of developers are reported to follow security best practices for secrets management, exposing a significant developer behaviour gap, according to the State of Secrets in AppSec.
A question worth separating out:
Q: Should MCP teams use a proxy to handle OAuth and token exchange?
A: Yes, when the backend should execute requests but should not own the user’s sign-in flow, session storage, or GitHub token management. A proxy keeps those functions centralized and makes the downstream server depend on a controlled credential handoff rather than direct shared access.
👉 Read our full editorial: GitHub authorization for MCP servers: per-user access without shared creds