Auth0 MCPサーバーをClaude Codeで使う設定ガイド
Auth0 MCPサーバーをClaude Codeに接続し、アプリケーション管理やアクション実装をCLIから行う手順とツール制限の設定方法をまとめます。
Auth0 MCPサーバーは、Auth0テナントのアプリケーション・アクション・ログなどを自然言語で操作できるようにするAuth0公式のMCPサーバーです。npx @auth0/auth0-mcp-server init --client claude-codeの1コマンドでClaude Codeに接続し、OAuth 2.0デバイス認可フローでログインすれば、Claude Codeのセッション内から「新しいSPAアプリケーションを作って」のような指示でAuth0の管理操作を任せられます。
Auth0 MCPサーバーでできること
Auth0 MCPサーバーはAuth0 Management APIをラップし、Applications・Resource Servers・Actions・Logs・Formsなど7つの領域にわたるツール群をClaude Codeに提供します。サーバーはローカルプロセスとして動き、Claude Codeはツール呼び出しの形でAuth0テナントを操作します。
代表的な使い方は次の3系統です。
- アプリケーションやAPI(Resource Server)の作成・更新・照会
- ログイン後の挙動を変えるActionsの作成・デプロイ
- 認証ログの調査(失敗ログインの特定など)
ゼロからAuth0を組み込む場面ではauth0_onboardingツールが入口になります。「Next.jsプロジェクトをAuth0でオンボードして」と頼むと、フレームワークに合わせたアプリケーションを作り、資格情報をプロジェクトの.envに書き込みます。内部ではauth0_create_applicationとauth0_save_credentials_to_fileを組み合わせており、SDKへの統合コードは別ツールのauth0_get_quickstart_guideが返します。
前提条件と、ベータ版であることの意味
前提条件は次の3つです。
- Node.js v18以上(npmパッケージの
enginesも>=18.0.0) - Claude CodeなどのMCPクライアント
- 管理権限を持つAuth0アカウント
パッケージは正式版ではなくベータ段階です。READMEの冒頭にも、機能やAPIが予告なく変わりうること、本番利用や重要な処理には推奨しないこと、ベータ期間のサポートは限られることが注意書きとして置かれています。開発用テナントで挙動を見てから、本番に近いテナントへ広げる入り方になります。
バージョン指定にも癖があります。npmレジストリのdist-tagsでは、latestが0.1.0-beta.19なのに対し、betaタグは0.1.0-beta.5のまま止まっています。npx @auth0/auth0-mcp-serverのようにタグを付けなければlatestが使われるので、@betaを足すと古い版が入ることになります。
Claude Codeに接続する
Claude Code向けの初期化は--client claude-codeを付けて実行します。
npx @auth0/auth0-mcp-server init --client claude-codeinitでは保存先・認可・スコープの3点を決めます。画面に出る順序は実行時の表示に従います。
initで決めること
- 1
設定の保存先を選ぶ
User(
~/.claude.json、全プロジェクトで利用可能)かProject(.mcp.json、チームで共有する前提)から選びます。Projectの説明は、READMEでは「指定したプロジェクトフォルダの.mcp.json」、Getting Startedでは「現在のプロジェクトのみ」と書き方が異なります。 - 2
ブラウザでデバイス認可する
ブラウザが自動で開き、Auth0アカウントへのログインと権限付与を求められます。AIエージェントの中など対話できない環境では、
--no-interactionを付けるとブラウザを開くためのEnter入力が省かれます。 - 3
付与するスコープを選ぶ
既定ではスコープが1つも選ばれていません。方向キーとスペースで選ぶか、
--scopes 'read:*'のようにglobで指定します。 - 4
Claude Codeを再起動して確かめる
Auth0ツール(
auth0_create_actionやauth0_list_applicationsなど)がセッションで使えることを確かめ、Auth0テナントの操作を指示します。
initが済んでいれば、サーバーの登録だけをclaude mcp addで行う手もあります。READMEのCodex CLI向け手順も、まずinitで一度認証し、そのあとでrunコマンドを登録する流れです。claude mcp add --scope projectで登録すると、.mcp.jsonは次の内容になります(v2.1.287)。
claude mcp add --scope project --transport stdio auth0 -- npx -y @auth0/auth0-mcp-server run --read-only
# Added stdio MCP server auth0 with command: npx -y @auth0/auth0-mcp-server run --read-only to project config{
"mcpServers": {
"auth0": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@auth0/auth0-mcp-server", "run", "--read-only"],
"env": {}
}
}
}initで登録する場合とclaude mcp addで登録する場合
init --client claude-code
認証・スコープ選択・登録が1回の対話で終わります。保存先はUserかProjectの2択です。READMEに載っているClaude Code向けの例は、--toolsや--read-onlyを付けない形だけです。
claude mcp add
保存先はlocal(既定)・project・userから選べ、runの引数に--read-onlyや--toolsをそのまま書けます。DEBUG用の環境変数も-e DEBUG=auth0-mcpで渡せます。認証は別途initで済ませておきます。
claude mcp addのスコープの考え方や一般的な構文はClaude Code MCP設定ガイドにまとめています。
認証の仕組みと、ログインで詰まったとき
通常のテナントはデバイス認可フローでログインし、認証情報はOSのキーチェーンに保存されます。この方式が通らないケースが2つあります。
プライベートクラウドのテナントは、デバイス認可フローに対応していません。クライアントクレデンシャルで認証します。
npx @auth0/auth0-mcp-server init \
--auth0-domain <auth0-domain> \
--auth0-client-id <auth0-client-id> \
--auth0-client-secret <auth0-client-secret>SAMLなどのエンタープライズSSOを使うテナントでも、ログインが想定どおりに進まない報告があります。2026年9月に立てられたGitHub issue #210では、identifier-firstログインとSAMLを有効にしたテナントで、メールアドレスを入れるとIdPに転送されずパスワードを求められると報告されています。リポジトリ側からは、まずmanage.auth0.comへ直接ログインしたときの挙動の確認と、認証をM2M(クライアントクレデンシャル)アプリに切り替える回避策が示されています。
クライアントクレデンシャル用のM2Mアプリケーションに与えるスコープは、READMEが次の13個を対応対象としています。
| 対象 | 付与できるスコープ |
|---|---|
| クライアント(Applications) | 付与できるスコープread:clients / create:clients / update:clients |
| リソースサーバー | 付与できるスコープread:resource_servers / create:resource_servers / update:resource_servers |
| アクション | 付与できるスコープread:actions / create:actions / update:actions |
| ログ | 付与できるスコープread:logs |
| フォーム | 付与できるスコープread:forms / create:forms / update:forms |
一覧にdelete:系のスコープは含まれません。トークンの生存期間はできるだけ短くするよう案内されています。人手を介さない認証全般の仕組みはMCPのOAuth Client Credentials拡張で扱っています。
initの再実行が必要になるのは、初回のほか、ログアウト後・別テナントへの切り替え時・トークン期限切れ時です。runコマンドは起動時にトークンの有効性を自動で調べ、認証が必要な状態ならエラーメッセージで案内します。現在の認証状態はsessionコマンドで見られます。
npx @auth0/auth0-mcp-server session資格情報とデータの行き先
サーバーはclient_secretやトークンなどの機密フィールドを、ツールの応答の中で[REDACTED]に置き換えます。AI側のログや会話履歴に秘密情報が残らないようにするための挙動です。
ファイルに資格情報が残る経路はauth0_save_credentials_to_fileです。アプリケーションの資格情報を環境変数の形で.envなどに書き出し、.gitignoreにも追加します。既存ファイルがあれば内容を保ったまま追記します。2026年7月のPull Request #192では、書き込み先の検証が強化されました。許可ディレクトリの外へ出る書き込みやシンボリックリンク経由、1MBを超えるファイルへの書き込みは拒否されます。
もう一つ、利用状況の匿名データがAuth0に送られます。内容はMCPサーバーのバージョン、OS、タイムスタンプなどで、環境変数AUTH0_MCP_ANALYTICSをfalseにすると送信を止められます。
Management APIの利用は、Auth0の契約プランのレート制限を消費します。大量のツール呼び出しを連続で行う運用では、制限に触れる可能性があります。
終了するときはlogoutコマンドでセッションを閉じます。READMEは、キーチェーンに保存されたトークンを確実に消す手段として、作業を終えたときや別テナントへ切り替えるときのログアウトを勧めています。
npx @auth0/auth0-mcp-server logout利用できるツール一覧
Auth0 MCPサーバーが提供するツールは、READMEの構成では次の7カテゴリに分かれます。Tools ReferenceにはOnboardingとsave_credentials_to_fileがありません。Application Grantsはアプリケーション管理に含まれます。
| カテゴリ | 主なツール | できること |
|---|---|---|
| Applications | 主なツールlist / get / create / update / save_credentials_to_file | できることアプリケーションの照会・作成・変更、資格情報の.env書き出し |
| Onboarding | 主なツールonboarding / get_quickstart_guide | できることフレームワーク別の初期設定と統合コード取得 |
| Resource Servers | 主なツールlist / get / create / update | できることAPI(Resource Server)の照会・作成・スコープ変更 |
| Application Grants | 主なツールcreate_application_grant | できることM2MアプリケーションへのAPIアクセス権限付与 |
| Actions | 主なツールlist / get / create / update / deploy | できることログインフロー等に差し込むActionsの実装とデプロイ |
| Logs | 主なツールlist / get | できること認証ログの検索と個別ログの詳細取得 |
| Forms | 主なツールlist / get / create / update / publish | できることカスタムログイン・サインアップフォームの管理 |
ツール名の多くはauth0_<操作>_<対象>の形で、READMEには各ツールに対応する自然言語の指示例も載っています。「名前に'api'を含むアプリケーションを探して」のような曖昧な指示でも、該当ツールへ対応づける作りです。
公式ページ同士には食い違いが1点あります。Getting Startedは、Claude Desktopでツールが見えることの確認例としてauth0_delete_applicationを挙げています。ところがREADMEとTools Referenceのツール表には削除系のツールがなく、上のスコープ一覧にもdelete:系がありません。実際にどのツールが出るかは、接続したセッションのツール一覧で見るのが確実です。
ツールアクセスを絞り込む
すべてのツールを有効にすると、AIアシスタントが設定変更を誤って実行するリスクが残ります。--read-onlyフラグまたは--toolsパターンで、使う範囲までツールを絞り込めます。
# 読み取り専用ツールだけを有効化
npx @auth0/auth0-mcp-server run --read-only
# アプリケーション関連のツールのみに限定
npx @auth0/auth0-mcp-server run --tools 'auth0_*_application*'
# ログ閲覧だけに限定
npx @auth0/auth0-mcp-server run --tools 'auth0_list_logs,auth0_get_log'--read-onlyと--toolsを同時に指定した場合は--read-onlyが優先され、--toolsのパターンに書き込み系が含まれていても実行はブロックされます。CLIフラグを渡せない実行環境では、同じ制御を環境変数AUTH0_MCP_READ_ONLYとAUTH0_MCP_TOOLSでも設定できます。フラグと環境変数を両方指定したときは、フラグが優先されます。AUTH0_MCP_TOOLSはCLIと同じ検証を受け、パターンにエラーがあっても、全ツールを有効にする動きにはならない(fail closed)作りです。
絞り込みの場所は2か所あり、効く範囲が違います。
スコープとツール絞り込みの役割
スコープ(Auth0側)
init --scopes 'read:*'のように指定します。権限のない操作は、ツールが見えていてもAuth0のAPI側で失敗します。
--read-only / --tools(MCP側)
runに渡す引数か環境変数で指定します。見せるツールが減るので、誤操作の入口も、モデルが選択に使うコンテキストも減ります。
READMEは、開発環境ではフルアクセス、本番相当のテナントでは読み取り専用、のようにプロセスを分ける使い方も挙げています。
独自のAuth0操作をツールとして追加したい場合や、公式ツールセットにない粒度の制御が必要な場合は、MCPサーバーをTypeScriptで自作する手順がベースになります。
READMEは、このサーバーを含むMCPサーバーに対して、mcpscan.ai(公開エンドポイントを検査するWebスキャナー)やmcp-scan(攻撃経路をクライアント視点でシミュレートするCLIツール)による定期的なセキュリティスキャンも案内しています。
よくあるトラブルと対処
症状ごとの切り分けは次のとおりです。
- 認証エラー — Auth0テナントでの権限を見直し、
npx @auth0/auth0-mcp-server initで再初期化する - クライアントが接続できない — MCPクライアントを再起動し、
ps aux | grep auth0-mcpでサーバープロセスの起動を調べる - Invalid Auth0 Configuration Errorが出る — 認可トークンが無い、または期限切れのことが多い。
sessionでトークンの状態を見てから再認証する - 特定の操作だけ失敗する — 必要なスコープが選ばれていない可能性がある。
init --scopes 'read:*,update:*,create:*'のように対象を広げて再初期化する - ログインがSSOに転送されない — 上のSAMLの報告のとおり、M2Mアプリでの認証に切り替える
使えるコマンドの一覧はnpx @auth0/auth0-mcp-server helpで表示できます。詳細なログが必要なときはexport DEBUG=auth0-mcpでデバッグモードにします。Claude Codeにclaude mcp addで登録した場合は、-e DEBUG=auth0-mcpで同じ環境変数を渡せます。READMEにある~/Library/Logs/Claude/mcp*.logはClaude Desktopのログの場所で、さらに踏み込むなら@modelcontextprotocol/inspectorが使えます。
Claude Codeが対応クライアントに入っているかは、Auth0のページごとに書き方が違います。概要ページの対応クライアントはClaude Desktop・Cursor・Windsurfの3つが挙がっています。Getting Startedにはclaude-codeを含む6クライアントの手順があり、READMEにも--client claude-codeが載っています。
まとめ
Auth0 MCPサーバーはベータ段階なので、開発テナントで--read-onlyと最小限のスコープから始め、必要になった分だけ権限とツールを足していく入り方があります。他のサービス向けMCPサーバーの設定例はMySQL MCPサーバーの使い方やPlaywright MCPサーバーの使い方でも扱っています。