Skip to content

[Feature Request] Layer 3にOAuth 2.1ディスカバリーエンドポイントを追加し、Claude.aiカスタムコネクタからの接続を容易にしたい #76

@ken-kawagu

Description

@ken-kawagu

ブログ記事で紹介されている Layer 3 のリモート MCP サーバーを、Claude.ai のカスタムコネクタから OAuth 2.1 認証付きで利用したいと考えています。現状、接続するためにはユーザー側でかなりの追加構築が必要です。

背景

Claude.ai の MCP コネクタは、接続時に以下の OAuth 2.1 フローを実行します(MCP Authorization Spec 2025-11-25 準拠):

  1. /mcp に未認証リクエスト → 401 + WWW-Authenticate ヘッダー
  2. GET /.well-known/oauth-protected-resource (RFC 9728) → 認可サーバー URL の取得
  3. GET /.well-known/oauth-authorization-server (RFC 8414) → 認可/トークンエンドポイントの取得
  4. PKCE (S256) による Authorization Code フロー

現状のギャップ

Layer 3 の CDK デプロイで作成される Cognito User Pool は Layer 4 Web UI 向けの認証基盤であり、上記の MCP 仕様が要求するディスカバリーエンドポイントは提供されていません。

要素 | Cognito | AgentCore Gateway | CDKデプロイ -- | -- | -- | -- /.well-known/oauth-protected-resource | ❌ | ✅(ただし authorization_servers が Gateway ドメインを指す) | ❌ /.well-known/oauth-authorization-server | ❌(OIDC Discovery のみ。code_challenge_methods_supported 欠落) | ❌(issue #1056) | ❌ 401 WWW-Authenticate ヘッダー | ❌ | ✅ | ❌ Claude.ai 用アプリクライアント(公開 + PKCE) | ❌ | — | ❌

現状、Claude.ai から接続するには以下をユーザーが自前で構築する必要があります:

  • Cognito に公開クライアント(PKCE 用、callback URL: https://claude.ai/api/mcp/auth_callback)を追加
  • /.well-known/oauth-authorization-server を返す Lambda + HTTP API Gateway を構築(Cognito が code_challenge_methods_supported を返さないため)
  • /.well-known/oauth-protected-resource を返す Lambda(authorization_servers を統一ドメインに向けるため)
  • CloudFront でパスルーティング(/.well-known/* → ブリッジ、/mcp → Gateway)

提案

Layer 3 のデプロイに以下を追加していただけると、Claude.ai / Claude Desktop / Kiro などの外部 MCP クライアントからの接続が大幅に容易になります。

  1. Cognito に Claude.ai 用アプリクライアントを追加(CDK で自動作成)
    • 公開クライアント(secret なし)
    • Authorization Code + PKCE
    • callback URL: https://claude.ai/api/mcp/auth_callback, https://claude.com/api/mcp/auth_callback
  2. /.well-known/oauth-authorization-server エンドポイントの追加
    • API Gateway Mock Integration で十分(Lambda 不要)
    • code_challenge_methods_supported: ["S256"] を含める(Cognito の OIDC Discovery に欠落しているフィールド)
  3. /.well-known/oauth-protected-resource エンドポイントの追加
    • 同じく Mock Integration で十分
  4. CDK Output に接続情報を出力
    • MCP サーバー URL
    • OAuth Client ID
    • (これだけあれば Claude.ai の Advanced Settings で即接続可能)

想定される効果

Layer 3 を deploy.sh でデプロイするだけで、CDK Output に表示される URL と Client ID を Claude.ai に入力すれば接続完了、という体験になります。ブログ記事で紹介されている「モバイルから使える」というLayer 3 の価値が、Layer 4 を構築しなくても実現できるようになります。

環境

  • Layer 3 デプロイ(ap-northeast-1)
  • AgentCore Gateway 経由
  • クライアント: Claude.ai Pro(デスクトップ + モバイル)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions