📘
Playwright MCPのbootでハマった。Cannot find module './parsers/any.js'を解決した記録
TL;DR
-
npx @playwright/mcp@latest
を叩いたらCannot find module './parsers/any.js'
で即死。 - 原因は依存パッケージ zod-to-json-schema の壊れたバージョン。
- キャッシュ削除 & 最新版インストールで解決。
この記事はハマり〜復旧までの手順を時系列でまとめる備忘録です。
背景
- Cursor の MCP 機能で Playwright を使い、ブラウザ操作用ツールを呼び出したかった。
-
mcp.json
に以下を追記し、Cursor から reload したところクラッシュ。
mcp.json
"playwright": {
"command": "npx",
"args": ["@playwright/mcp@latest"]
}
発生したエラー
$ npx @playwright/mcp@latest
Error: Cannot find module './parsers/any.js'
at ...
Node v18.20.2 上で再現。Stack trace には zod-to-json-schema/dist/cjs/selectParser.js
が登場。
1. 原因追跡
1-1. Stack trace から依存関係を遡る
@playwright/mcp → zod-to-json-schema → ./parsers/any.js (missing!)
1-2. npm registry を覗く
npm info zod-to-json-schema versions | tail -n 5
# ... 3.24.0, 3.24.1, 3.24.2, 3.24.3, 3.24.4
3.24.0〜3.24.2
までは CJS ビルドに any.js が同梱されていない ことを確認。
1-3. Issue 調査
- GitHub Issue: colinhacks/zod-to-json-schema#151
- 同様の報告が Astro, Vite プラグイン界隈でも散見
結論: 壊れたバージョンをインストールしていた。
2. 解決までのステップ
手順 | コマンド | 補足 |
---|---|---|
① npm キャッシュ削除 | rm -rf ~/.npm/_npx/* |
npx の一時ディレクトリをクリーンに |
② 最新版で再インストール | npx @playwright/mcp@latest |
依存解決で 3.24.4 が入る |
③ MCP 再起動 | Cursor 設定画面で Reload | “Connected” と表示されるのを確認 |
成功するとログにこう出る👇
Connected to stdio server, fetching offerings
Found 25 tools
3. もしまだ動かない場合のチェックリスト
-
npm ls zod-to-json-schema
でバージョン確認。3.24.4 以上か? - Proxy や FW が npm tgz を途中で切っていないか?
- Playwright のブラウザバイナリが未インストール →
npx playwright install chromium
4. 固定バージョンで運用する場合
mcp.json
"playwright": {
"command": "npx",
"args": [
"--package=zod-to-json-schema@3.24.4",
"@playwright/mcp@latest"
]
}
あるいは npm 8+ なら overrides
に
package.json
{
"overrides": {
"zod-to-json-schema": "^3.24.4"
}
}
5. 学び & ベストプラクティス
- ``** は依存を毎回解決する** → キャッシュ汚染の影響を受けやすい。
- 壊れたリリースが流れてきたら キャッシュ削除 + バージョン固定 が鉄板。
- MCP サーバは内部で別 Node を fork する場合がある。Node 本体のバージョンが新しくても油断しない。
参考リンク
- colinhacks/zod-to-json-schema#151 — any.js 欠落 Issue
- microsoft/playwright-mcp — MCP リポジトリ
- Playwright Docs — ブラウザ自動化の公式ドキュメント
以上。誰かのハマりが解消されれば幸いです💦
Discussion