Bible Network Crypto DeFi Onchain RWA AI Agent Stablecoin Chain SAFU CryptoTax DeFAI AGI Claude Me Claude Skill Claude Design Claude Cowork
Independent Media
Not affiliated with any project
Learn Claude Skills. Do Everything Better.
claudeskill-me.com
LATEST
Reviewing Superpowers: A TDD Framework That Literally Deletes Code Written Before Tests Exist  ·  CLAUDE.md, Rules, Skills, Hooks, Subagents — Which One? Anthropic's Official Seven-Method Decision Framework  ·  Reviewing Anthropic's Frontend Design Skill: Why Is It Installed 57× More Than the Runner-Up?  ·  Building Your First Skill: Turn Something You've Explained Three Times Into One Command  ·  Writing Your First System Prompt: From "You Are an Assistant" to a Role Setup That Actually Works  ·  Claude Code Adds Owner-Wildcard Marketplace Controls, Letting One Rule Allow or Block an Entire GitHub Org
Glossary · Tools Integration

OAuth

Tools Integration intermediate

30-Second Version · For the impatient
A way for a user to authorize a third-party application without handing over their password directly — instead, the user's existing identity system issues a scope-limited access <a href="https://claude-me.com/en/glossary/core-concepts/token/" target="_blank" rel="noopener">Token</a> that the application uses to act on the user's behalf, strictly within what was authorized.
Full Explanation +
01 · What is this?

What is OAuth, and how does it differ from handing a password directly to a third-party application?

OAuth is an authorization protocol that lets a user grant a third-party application (an MCP connector, for instance) permission to access a service's data or functionality on their behalf, without ever handing over their password to that third party. The core of the whole flow is the Token: after the user authenticates through their existing, trusted identity system (logging into their own Google account, for example), that system issues a scope-limited token to the third-party application — a token that can only do the specific things it was authorized for, not the account's full access.

The key difference from handing over a password is scope and revocability. If a password leaks, control of the entire account goes with it; an OAuth token, by contrast, can be limited to reading only specific data, valid only for a specific window of time, and the user can revoke it at any time through the identity system without needing to change their password or compromise the account's overall security.

02 · Why does it exist?

Why is OAuth needed, and what problem does it solve?

Before mechanisms like OAuth existed, if a third-party application needed to access a user's data on another service, the only option was to ask the user to type their password directly into that third party for storage. This created two concrete risks. First, if that third party was ever breached, what leaked was the user's actual password — an attacker could use it to do anything on the original service, with no scope restriction at all. Second, the user had no fine-grained control — only "authorize everything" or "don't use it at all," with no way to allow read access without also allowing write access, for instance.

OAuth turns authorization from "hand over a password" into "issue a scope-limited Token," solving exactly these two problems: even if a third-party application holding the token gets breached, what leaks is only that token, and whatever an attacker can do with it is confined to the authorized scope; the user or service can also revoke that token at any time without touching the original password. At the same time, users can see exactly which permissions they're granting at the moment of authorization, making a more fine-grained decision instead of an all-or-nothing choice.

03 · How does it affect your decisions?

How does OAuth actually work, and what does a typical authorization flow look like?

Take Claude connecting to an MCP Server as an example. A typical flow runs roughly like this: Claude first tries calling the server; if it requires authorization, it returns an "unauthorized" response carrying the location of an authorization server. Claude then looks up that authorization server's published metadata to learn what authorization methods it supports. Since Claude doesn't necessarily already know this server's identity in advance, it first registers itself with the server through dynamic client registration, obtaining an identifier. Then comes the actual user authorization step — a browser window opens where the user logs into their own account on that service and confirms which permissions to grant. Once the user confirms, the service issues a credential that Claude exchanges for a formal access Token, and from then on, every call to that server carries this token as proof of authorization.

One common security mechanism in this process is PKCE (Proof Key for Code Exchange), which prevents a credential from being intercepted mid-transit during the authorization process and reused by an attacker. Tokens also typically have an expiration and are periodically rotated, to avoid extending the risk window that comes with a single token being used over a long period.

04 · What should you do?

What does OAuth actually mean for me, and what should I watch for as a user versus as a developer?

If you're a general user and see an authorization screen pop up while connecting Claude to a third-party service (linking Gmail or Slack through a connector, for instance), you're going through an OAuth flow — it's worth actually reading the permission scope listed on that screen and confirming it matches what the connector is actually meant to do, rather than just clicking confirm on reflex. Also remember you can go into that service's account settings at any time to review which third-party applications are currently authorized, and revoke anything you no longer need or that looks suspicious.

If you're building an MCP Server for Claude to use, OAuth is currently the standard requirement in production environments: if your server only supports a static API key, users on claude.ai's web custom-connector interface (which, unlike Claude Code, only accepts OAuth) won't be able to connect it directly. Setting up OAuth authorization involves handling a fair number of details (correctly formatted authorization metadata, implementing PKCE, a Token rotation mechanism), and if you'd rather not build it all from scratch, there are existing middleware options worth considering — but it's still worth understanding exactly what this mechanism protects and whether your server currently meets the standard before adopting one.

Real-World Example +

Claude.ai's web-based custom connector interface only accepts OAuth 2.1 authentication and doesn't support pasting in a static API key or custom headers directly: when a user adds a custom connector, the interface asks for an OAuth Client ID and Client Secret and actually walks through the full authorization flow — which is also why a server that only supports static key authentication can't be added to a Claude.ai Team or Enterprise organization's shared connector list.

Common Misconceptions +
✕ Misconception 1
× Misconception: OAuth authorization is essentially the same thing as entering a password, just with a nicer interface, when actually: the core difference is scope and revocability — an OAuth token can be limited in purpose and revoked at any time, while a leaked password hands over control of the entire account
✕ Misconception 2
× Misconception: As long as a server has some form of authentication (a static API key, for instance), that counts as supporting OAuth, when actually: OAuth is a protocol with clearly specified flow requirements — metadata discovery, dynamic client registration, PKCE, and more — and static key authentication doesn't meet that specification; claude.ai's web-based custom connector interface explicitly only accepts OAuth
The Missing Link +
Direct Impact

The advantage is that users never have to hand a password to a third party — authorization scope can be finely limited and revoked at any time, and leak risk is confined to a single token rather than the whole account; the drawback is that, for developers, building a spec-compliant OAuth authorization server involves a fair number of specific details (metadata format, dynamic client registration, PKCE, token rotation), taking considerably more engineering time than simply implementing a static API key check.

Ask a Question
Please enter at least 10 characters