はじめに
結論から言うと、ログインが必要なサイトをClaude Codeで調べるなら、MCPに新しいChromeを起動させてはいけません。
Claude Codeでブラウザ操作をさせると、chrome-devtools-mcp やPlaywright MCPがMCP専用の新しいChromeを勝手に立ち上げます。ログイン不要のサイトなら問題ありませんが、ログインが要るサイトを調べたいときはこれが厄介でした。新しく起動したChromeにはCookieもログイン履歴もないので、Xの認証で毎回弾かれてしまうのです。
私も、競合Xアカウントの週次の動きをClaude Codeに分析させようとして、このログインで足止めを食らいました。
そこで本記事では、その回避手順を後で自分が見返せる形でまとめておきます。やることはシンプルで、chrome-devtools-mcp に新しいChromeを起動させるのをやめ、自分で立ち上げたログイン済みのChromeに接続させるだけです。コマンドはそのままコピペで動きます。Xに限らず、ログインが必要なサイトをClaude Codeで扱いたいときに使えます。
この記事で分かること
-
chrome-devtools-mcpが新規Chromeを起動してしまう問題の回避方法 -
--browser-urlで既存Chromeに接続する手順(コピペで再現可能) - ログイン状態を保ったまま調査するためのプロファイル運用
- 誤操作を防ぐためのプロンプトの書き方
- ショートカット.appでChrome起動をワンクリックにする方法
対象読者
- Claude Codeでブラウザ操作をしたい
-
chrome-devtools-mcpを使っている - ログインが必要なサイトで、MCPが起動する専用ブラウザだとログインできない
- Playwright MCPではなく、既存Chromeを使って調査したい
何が問題か
デフォルトのままだと、chrome-devtools-mcp(やPlaywright MCP)はMCP専用の新規Chromeを起動します。これがX側からはこう見えています。
新しいChromeプロファイル / Cookieなし / ログイン履歴なし / 自動操作ブラウザに近い挙動
普段ログインに使っているブラウザとは別物なので、毎回まっさらな状態から認証を求められます。その結果、追加認証が出たりログインできなかったりして止まってしまう、というわけです。
解決方針
MCPに起動させるのをやめて、自分のChromeへ接続だけさせます。
Claude Code → chrome-devtools-mcp → 127.0.0.1:9222 → 自分で起動したChrome → ログイン済みタブ
カギは chrome-devtools-mcp の --browser-url オプションです。これを付けると、MCPの動きが「新しく起動する」から「すでにあるものに接続する」に変わります。
手順
1. ChromeをRemote Debugging Port付きで起動する
macOSなら以下です。
open -na "Google Chrome" --args \
--remote-debugging-port=9222 \
--user-data-dir="$HOME/chrome-mcp-x-profile" \
--no-first-run \
--no-default-browser-check
それぞれの意味は次のとおりです。
-
--remote-debugging-port=9222:外部から操作するための接続口(http://127.0.0.1:9222)を開く -
--user-data-dir:MCP確認用のプロファイルを固定する。ここで一度手動ログインしておけば、次回もログイン状態が残る。なおChrome 136以降は、デフォルト以外の--user-data-dirを指定しないとRemote Debuggingが使えなくなった1 -
open -naの-n:普段使いのChromeとは別インスタンスで起動する。これがないと、起動済みのChromeにフォーカスするだけで引数が効かないことがある
2. 起動を確認する
curl http://127.0.0.1:9222/json/version
webSocketDebuggerUrl を含むJSONが返ってくれば、MCPから接続できる状態です。
3. Claude CodeにMCPを追加する
新規起動ではなく既存接続用のMCPを chrome-devtools-existing という名前で登録します。
claude mcp add chrome-devtools-existing --scope user -- npx -y chrome-devtools-mcp@latest --browser-url=http://127.0.0.1:9222
確認します。
claude mcp list
chrome-devtools-existing: npx -y chrome-devtools-mcp@latest --browser-url=http://127.0.0.1:9222 - ✓ Connected
4. Xに手動ログインする
自分で起動したChromeで https://x.com を開き、ログインと2FA、CAPTCHAは自分の手で済ませます。終わったらそのタブを開いたままにしておきます。
5. Claude Codeで接続を確認する
claude
/mcp
chrome-devtools-existing ・ connected になっていればOKです。
Claude Codeに渡すプロンプト
使うMCPを名指しして、状態を変える操作を禁止しておくのがコツです。
あなたは電子書籍アプリのグロース戦略を担当するシニアアナリストです。
競合Xアカウントの「今週の変化」を特定し、前回分析結果との差分から戦略変化を読み取り、
自社サービスの改善施策に落とし込んでください。
Playwright MCPは使用しないでください。新しいブラウザを起動しないでください。
使用するMCPは chrome-devtools-existing のみ、操作対象は 127.0.0.1:9222 の既存Chromeのみです。
ログイン・認証・投稿・返信・いいね・リポスト・フォロー・DMなど状態を変更する操作は禁止です。
確認対象は公開情報、または既に表示済みのXページに限定してください。
分析結果はMarkdownファイルとして指定フォルダに保存してください。
127.0.0.1:9222 に接続できない場合は、代替手段を使わずに作業を停止してください。
Playwright MCPが入っていると、プロンプトが曖昧なときにそちらが選ばれることがあります。chrome-devtools-existing だけを使うよう明示するか、claude plugin disable playwright@claude-plugins-official --scope <scope> で一時的に切っておいてください。
毎回の起動を省力化する(ショートカット.app)
この方式ではChromeを先に起動しておく必要があります。chrome-devtools-existing は「起動する」設定ではなく「すでに起動しているChromeに接続する」設定なので、毎回手で打つのは地味に面倒です。
そこで、Chromeの起動だけをmacOS標準の「ショートカット」アプリにまとめ、Dockから1クリックで叩けるようにします。Claude Code本体は対話型のCLIなので、ショートカットからは無理に動かさず、起動後に自分で claude と打ちます。準備だけワンクリック、あとはいつもどおり、という分担です。
1. ショートカットを作る
「ショートカット」アプリで新規ショートカットを作り、「シェルスクリプトを実行」アクションを追加します。シェルを zsh(または bash)にして中身をこうします。
PROFILE_DIR="$HOME/chrome-mcp-x-profile"
DEBUG_URL="http://127.0.0.1:9222/json/version"
mkdir -p "$PROFILE_DIR"
# すでに起動していれば何もしない
if curl -s "$DEBUG_URL" >/dev/null 2>&1; then
echo "Already running on 127.0.0.1:9222"
exit 0
fi
open -na "Google Chrome" --args \
--remote-debugging-port=9222 \
--user-data-dir="$PROFILE_DIR" \
--no-first-run \
--no-default-browser-check
open -na でChromeをバックグラウンドに上げるだけなので、ショートカットとも素直に動きます。名前は Start Chrome (MCP) あたりにしておきます。
初回は「"ショートカット"がGoogle Chromeを操作することを許可しますか?」といった確認が出ることがあります。許可すれば次回以降は出ません。
2. Dock・メニューバーに置く
作ったショートカットを右クリックして「詳細を表示」を開き、「メニューバーにピン固定」や「Dockに追加」を有効にします(macOSのバージョンによっては、Finderの「アプリケーション/Shortcuts」からDockへドラッグ)。
これで、アイコンをクリックするだけでChromeがRemote Debugging Port付きで立ち上がります。
3. 実際の流れ
Dockのショートカットをクリック
→ Chrome(MCP用プロファイル)が起動
ターミナルで claude を実行
→ /mcp で chrome-devtools-existing が connected を確認
Chromeの起動はクリック1回、Claude Codeはターミナルで claude と打つだけです。Xのログインは初回だけ手動でやれば、--user-data-dir で固定したプロファイルに状態が残るので、次回からは省けます。
注意点
これはログイン制限を回避したり突破したりするための方法ではありません。MCPが勝手に起動する新規Chromeの代わりに、自分で立ち上げた検証用プロファイルへ接続して、操作対象のブラウザをはっきりさせるのが狙いです。ログインや2FA、CAPTCHA、投稿といった操作は自分の判断で行い、Claude Codeには公開情報の確認と分析だけをさせるのが安全です。利用は各サービスの規約や自動化ポリシーの範囲内で。
まとめ
MCPにChromeを起動させない
→ 自分でChromeを起動し、Remote Debugging Portを開く
→ chrome-devtools-mcp は --browser-url で接続だけ行う
→ Claude Code には chrome-devtools-existing を明示して使わせる
MCPはあくまでブラウザを動かすための道具で、価値が出るのはその先の分析です。「競合Xアカウントの週次差分分析」のような役割を与えれば、ただのブラウザ操作で終わらず、グロース戦略の材料として使えます。
参考リンク
- Chrome DevTools MCP
- Changes to remote debugging switches to improve security
- Claude Code MCP documentation
-
セキュリティ強化のため、デフォルトのユーザーデータディレクトリに対するリモートデバッグが制限されました。詳細は末尾の参考リンク参照。 ↩
