ClaudeにStytch MCPをつないで認証プロジェクトを操作する手順
Stytch MCPサーバー(https://mcp.stytch.dev/mcp)をClaude Codeやclaude.aiに接続し、21個のツールでリダイレクトURLやメールテンプレートを操作する手順と削除系ツールの扱いをまとめます。
Stytchは、ログインや多要素認証を組み込むための認証基盤です。Stytch MCPサーバーはそのダッシュボード操作をMCPのツールとして公開したもので、接続先は https://mcp.stytch.dev/mcp の1つだけです。Claudeにつなぐと、リダイレクトURLの登録やメールテンプレートの更新を、ダッシュボードを開かずに会話で頼めるようになります。
このMCPが触るのはStytchのワークスペース側の設定です。ユーザーやセッションといったエンドユーザーのデータを扱うツールは、ツール一覧に含まれていません。
Stytch MCPで操作できる範囲
Stytch MCPサーバーは、ツールを21個公開しています。Claudeのコネクタ紹介ページに並ぶ一覧を用途別に分けると、次のとおりです。
| 対象 | ツール | 数 |
|---|---|---|
| プロジェクト | ツールcreateProject / listProjects | 数2 |
| リダイレクトURL | ツールcreateRedirectURL / getAllRedirectURLs / updateRedirectURL / deleteRedirectURL | 数4 |
| 公開トークン | ツールcreatePublicToken / getAllPublicTokens / deletePublicToken | 数3 |
| シークレット | ツールcreateSecret / deleteSecret | 数2 |
| メールテンプレート | ツールcreateEmailTemplate / getAllEmailTemplates / updateEmailTemplate / deleteEmailTemplate | 数4 |
| パスワード強度 | ツールgetPasswordStrengthConfig / setPasswordStrengthConfig | 数2 |
| SDK設定 | ツールgetConsumerSDKConfig / getB2BSDKConfig / updateConsumerSDKConfig / updateB2BSDKConfig | 数4 |
並べてみると、読み取り専用のツールは少数です。listProjects、getAll... 系、get...Config 系が該当し、残りは作成・更新・削除のどれかを行います。シークレットには作成と削除しかなく、一覧を取るツールはありません。
Stytchの説明では、ツール名に厳密に合わせて頼む必要はなく、自然な言葉で依頼すれば足ります。「Stytchのプロジェクトを一覧して」と頼むだけで、listProjects が選ばれる想定です。
認証基盤としてのStytchとは別の話
Stytchには、自作のMCPサーバーに認証層を足す用途もあります。本記事で扱うのはそちらではなく、Stytch自身がMCPサーバーとして動き、Stytchの設定を外から操作させる使い方です。
Claude Codeに接続する
StytchのドキュメントはCursorを例に手順を載せています。ほかのツールでも、設定する場所が変わるだけで、同じURLを指定すれば足ります。Claude Codeでは、リモートHTTPサーバーを追加するコマンドにそのURLを渡します。
claude mcp add --transport http stytch https://mcp.stytch.dev/mcp追加しただけでは認証が済んでいません。接続直後は「Needs authentication」と表示されます。Claude Codeでも同様に、セッション内で /mcp を開いてブラウザのログインを進めます。
/mcpシェルから直接済ませたいときは、claude mcp login stytch でOAuthの流れを始められます。手順の詳細はclaude mcp login/logoutの解説にあります。
ブラウザの画面では、Stytchのワークスペースへのアクセスを許可します。完了すると、Cursorの例では「21 tools enabled」と表示され、ツールの一覧を展開して確かめられます。Claude Codeでは /mcp のサーバー詳細から同じ確認ができます。
認証が済むまでは、stytchのツールは呼び出せません。登録されているかどうかだけを手早く見たいときは、シェルで claude mcp list を実行すると、サーバーごとの接続状態が一覧に並びます。個別の状態は claude mcp get stytch で表示できます。「21 tools enabled」に相当する表示が出てから、最初の問い合わせに進みます。
保存先のスコープを選ぶ
claude mcp add は既定で、現在のプロジェクトだけに有効なローカルスコープへ書き込みます。複数のプロジェクトで使い回すなら --scope user を付けます。チームで共有する .mcp.json に入れる --scope project も選べます。URLにシークレットは含まれないので、.mcp.json で共有しても問題ありません。OAuthの認証は各自で済ませます。
claude.aiのコネクタから使う
StytchはClaudeのコネクタ一覧にも載っており、「Anthropic verified」と表示されています。分類は開発者ツールで、サインインが必要です。コネクタのURLは https://mcp.stytch.dev/mcp で、Claude Codeに手動で追加するものと同じです。
claude.aiの claude.ai/customize/connectors で追加し、そこで認証を済ませると、同じアカウントでログインしたClaude Codeにも自動で現れます。Claude Code側では /mcp の一覧に、claude.ai由来であることを示す表示付きで並びます。TeamやEnterpriseのプランでは、サーバーを追加できるのは管理者だけです。
コネクタ経由のツールは、権限ルールでは mcp__claude_ai_<サーバー名>__<ツール名> の形で扱われます。手動で追加した場合の mcp__stytch__... とは名前が違うので、次節の許可設定を書くときは、どちらの経路で入れたかを先に確認してください。
削除系のツールに歯止めをかける
Stytch MCPには deleteSecret、deletePublicToken、deleteRedirectURL、deleteEmailTemplate の4つの削除ツールがあります。認証まわりの設定を消すと、ログインが通らなくなる可能性があるため、会話の流れで勝手に実行されない仕組みを置く価値があります。
Stytchのドキュメントによると、Cursorは状態を変えうるコマンドを自動実行せず、ツール呼び出しごとに許可を求めます。承認待ちで止まったエージェントが固まって見える、という注意書きもあります。Claude Codeでは、権限ルールで特定のツールを「確認」に固定できます。削除系を対象にした設定例です。
{
"permissions": {
"ask": [
"mcp__stytch__deleteSecret",
"mcp__stytch__deletePublicToken",
"mcp__stytch__deleteRedirectURL",
"mcp__stytch__deleteEmailTemplate"
],
"allow": [
"mcp__stytch__listProjects",
"mcp__stytch__getAllRedirectURLs",
"mcp__stytch__getAllPublicTokens",
"mcp__stytch__getAllEmailTemplates"
]
}
}ツール1つを指す書き方は mcp__<サーバー名>__<ツール名> です。ここでは claude mcp add で付けた名前 stytch を使っています。読み取りだけを allow に入れておけば、状態確認は聞かれず、変更だけが止まります。削除を完全に禁じたいなら deny に移します。
設定を保存したら、セッション内で /permissions を開くと、ask と allow に入れたルールが反映されているかを確かめられます。
READMEに設定手順を書いておく
Stytchのドキュメントが「最も面白い使い方」として挙げるのが、リポジトリのREADMEにエージェント向けの設定手順を書く方法です。Stytch公式のVercel用サンプルリポジトリは、その実例になっています。
サンプルのREADMEの末尾には、Claude CodeやCursorなどのエージェントに向けた手順があります。流れは次のとおりです。
listProjectsでテスト環境の消費者向けプロジェクトを探す。複数あれば利用者に確認し、無ければcreateProjectで作るupdateConsumerSDKConfigでSDKを有効にし、http://localhost:3000での動作を許可する。メールのマジックリンクとOAuthを有効にするgetAllRedirectURLsを確かめ、不足ならリダイレクトURLを登録する。ログインとサインアップの既定の戻り先はhttp://localhost:3000/authenticategetAllPublicTokensまたはcreatePublicTokenで公開トークンを取り、.env.localに書くcreateSecretでシークレットを作り、同じく.env.localに書く
これを自分のプロジェクトに写すなら、CLAUDE.mdに同じ型で書いておく形が考えられます。例えば次のような断片です(上のREADMEの構成に沿った例で、実行結果ではありません)。
## Stytchの初期設定(MCP経由)
- 対象は TEST 環境のプロジェクトのみ。LIVE には触れない
- 読み取り(listProjects / getAll...)を先に実行し、結果を報告してから変更する
- シークレットは .env.local にだけ書き、会話やコミットに貼らない
- delete 系のツールは必ず私に確認してから実行するREADMEやCLAUDE.mdに手順を置くと、設定の再現が人にもAIにも読める形で残ります。Stytchのドキュメントも、メールテンプレートをgitで管理し、変更のたびにエージェントへアップロードを頼む運用を例に挙げています。
依頼の書き方の例
ツール名を覚える必要はありませんが、対象と環境を言葉に入れておくと、意図しない操作を避けやすくなります。次のような依頼文が、読み取りと変更の境目を保ちやすい例です。
- 「テスト環境のプロジェクトで、登録済みのリダイレクトURLを一覧して。まだ変更はしないで」
- 「
http://localhost:3000/authenticateが、ログインとサインアップの既定の戻り先として登録されているか確かめて。無ければ追加案だけ出して」 - 「リポジトリの
email/welcome.htmlの内容で、ウェルカムメールのテンプレートを更新して。実行前に差分を見せて」
3つ目は、メールテンプレートをgitで管理する運用に対応します。テンプレートの正本をリポジトリに置き、変更をClaudeに反映させると、ダッシュボードで手作業の貼り付けをせずに済みます。更新後は getAllEmailTemplates で結果を読み戻してもらうと、反映の確認までが1回の会話で完結します。
読み取りの結果を先に報告させ、変更はその後に出すという順序は、上のCLAUDE.mdの断片に書いた規約とも対応します。
つまずきやすい点
- 「Needs authentication」のまま進まない: OAuthが済んでいません。
/mcpからstytchを選んで再認証します。 - 非対話の実行で使えない:
claude -pやAgent SDKの実行にはOAuthの画面がありません。先に対話セッションかclaude mcp login stytchで認証を済ませます。 - ツールが動かず止まって見える: 許可待ちのプロンプトが出ていないかを確認します。
- 別の環境に影響する: プロジェクトはテストと本番で分かれます。どちらのプロジェクトIDを渡したかを会話内で明示してください。
Stytchのドキュメントは、ときどき再認証が必要になるとも説明しています。その場合も同じ手順でやり直します。
試す順番
最初は読み取りだけに絞ります。「StytchのプロジェクトIDを一覧して」から始め、次にリダイレクトURLの一覧、メールテンプレートの一覧へ進めます。書き込みは、テスト環境のプロジェクトで1件ずつ試すと影響を追いやすくなります。
同種のMCP接続では、Statsig MCPサーバーの解説やHarness MCPサーバーの解説も、確認つきの操作の組み方が参考になります。Claude Code自体の全体像はClaude Codeの完全ガイドにまとめています。
まとめ
Stytch MCPは、ワークスペース設定の21の操作をClaudeに渡す接続です。URLは1つ、認証はOAuthで、Claude Codeでもclaude.aiのコネクタでも同じサーバーに届きます。変更系のうち取り返しのつきにくい削除は ask に固定し、設定手順はCLAUDE.mdに残す、という形が扱いやすい構成です。