TL;DR: MCP servers still rely on the implementer to decide how users authenticate, issue tokens, and validate access, and WorkOS outlines three common paths: build OAuth yourself, bridge existing users, or fully host the flow with AuthKit. That choice is an identity design decision, not just an integration detail, because it determines who owns trust, token validation, and lifecycle control.
NHIMG editorial — based on content published by WorkOS: How to add OAuth to your MCP server
By the numbers:
- Only 18% of MCP server deployments implement any form of access scoping for tool permissions.
- 53% of MCP servers expose credentials through hard-coded values in configuration files.
Questions worth separating out
Q: How should security teams implement OAuth for MCP servers?
A: Start by deciding who owns token issuance, client registration, consent, and revocation, then make the MCP server validate issuer, audience, expiry, and scope on every request.
Q: Why do MCP servers increase identity governance complexity?
A: MCP servers add a new machine-facing access layer that can introduce client sprawl, token sprawl, and unclear ownership if the OAuth model is left vague.
Q: What breaks when MCP access is built without lifecycle controls?
A: Access becomes difficult to track, review, and remove, especially when client registration is dynamic or token issuance is delegated to another system.
Practitioner guidance
- Define the MCP OAuth ownership model Decide whether the server, an identity bridge, or a hosted provider owns authorization codes, token signing, scope policy, and revocation.
- Require explicit client registration for every MCP integration Do not let MCP clients self-appear without review.
- Treat the JWKS and metadata endpoints as trust surfaces Protect /.well-known/oauth-protected-resource and the JWKS endpoint with the same operational oversight you apply to other federation components.
What's in the full article
WorkOS's full article covers the implementation detail this post intentionally leaves for the source:
- Exact code examples for building an OAuth server, including token endpoints, JWKS publication, and revocation handling
- WorkOS-specific configuration steps for Dynamic Client Registration and Login URI setup
- Sample middleware for WWW-Authenticate responses and protected resource metadata discovery
- Host-side examples showing how AuthKit completes login and issues tokens for MCP clients
👉 Read WorkOS's guide to adding OAuth to an MCP server →
OAuth for MCP servers: are your identity controls ready?
Explore further