Repository navigation
docs(rfc): RFC-0044 remote MCP authorization (OAuth 2.1) - #146
Merged
Merged
Conversation
OAuth 2.1 for a deployment's /mcp (#144): RFC 9728 resource metadata and the WWW-Authenticate challenge, Better Auth's mcp() plugin as the authorization server on the same database (JWT access tokens verified locally plus a grant row), CIMD first with limited DCR as the fallback, a Studio consent screen and "Connected agents", token-to-Principal mapping that keeps one authorization path, threat model, migrations, test plan, rollout phases and client compatibility. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: Madraka <8898640+Madraka@users.noreply.github.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: Madraka <8898640+Madraka@users.noreply.github.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: Madraka <8898640+Madraka@users.noreply.github.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: Madraka <8898640+Madraka@users.noreply.github.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: Madraka <8898640+Madraka@users.noreply.github.com>
Madraka
added a commit
that referenced
this pull request
Nov 7, 2026
The docs site publishes only pages on the branch; the RFC file lands with #146. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: Madraka <8898640+Madraka@users.noreply.github.com>
Madraka
added a commit
that referenced
this pull request
Nov 7, 2026
The RFC file is on main since #146. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: Madraka <8898640+Madraka@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
RFC-0044, "Remote MCP authorization: OAuth 2.1 for Cloudhal deployments", for #144. Documentation only: no runtime code, no tests run.
The RFC decides, with alternatives: RFC 9728 resource metadata and the
WWW-Authenticatechallenge on/mcp(plus the 403insufficient_scopestep-up); Better Auth'smcp()+jwt()+cimd()plugins as the authorization server on the same database (issuer<origin>/api/auth, JWT access tokens verified locally against thejwkstable plus oneagent_grantsrow read for mode, elevation and immediate revocation); CIMD first with rate-limited, pruned DCR as the fallback (switchable); a Studio consent screen and "Connected agents" section; token →Principalso the policy engine, audit log, approvals, modes and elevations are unchanged and agent keys keep working; threat model; migration0030_oauthand the Better Auth 1.7.12 → 1.7.18 family bump; test plan on sqlite + Miniflare D1 and an e2e test with the MCP client'sOAuthClientProvider; three rollout phases matching #144 and the ADRs each amends (ADR-0004 addendum, ADR-0010, ADR-0011 §5–6); a self-host section that depends on #143's--base-url; a client compatibility table (Claude apps, Claude Code, ChatGPT/Codex, Cursor, VS Code, SDK/Inspector).Open questions for the owner are at the end (DCR on by default, refresh reuse window, token lifetime, mode at consent, pre-registered clients, DPoP, consent memory, host allow-list, playground).
The docs site builds the RFC index from
docs/rfcs, so no index file was edited.Checklist
pnpm checkandcargo test --workspacepass locally —pnpm lintis green; the full suites were not run (docs-only change, and the owner's machine must not run several suites at once)pnpm genwas run and generated files are committed (docs/adr/0001) — n/apnpm changesetadded — n/agit commit -s, DCO)🤖 Generated with Claude Code