OAuth は、ユーザーの許可を得て、アプリがユーザーの代わりに API を呼べるようにする仕組み。MCP では次の対応になる。
| OAuth の役割 | MCP では |
|---|---|
| リソースオーナー | ユーザー |
| クライアント | MCP クライアント(Claude Code など) |
| 認可サーバー | トークンを発行するサーバー |
| リソースサーバー | MCP サーバー |
ゴールは、MCP サーバーを呼ぶためのアクセストークンを得ること。
1. [DCR] クライアントを登録 → client_id
2. [PKCE] ブラウザで認可ページを開く(code_challenge 付き)
3. ユーザーがログインして「許可」
4. redirect_uri に転送される → 認可コード
5. [PKCE] 認可コード + code_verifier → access_token, refresh_token
6. MCP サーバーを呼ぶ(Authorization: Bearer <access_token>)
7. [更新] 期限切れなら refresh_token → 新しい access_token
1〜5 と 7 の相手は認可サーバー。MCP サーバーとやり取りするのは 6 だけ。