@iflow-mcp/sumyapp-playwright-parallel-mcp 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.ja.md +405 -0
- package/README.md +280 -0
- package/README.zh.md +405 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +604 -0
- package/dist/index.js.map +1 -0
- package/package.json +1 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 sumyapp
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.ja.md
ADDED
|
@@ -0,0 +1,405 @@
|
|
|
1
|
+
# playwright-parallel-mcp
|
|
2
|
+
|
|
3
|
+
[](https://github.com/sumyapp/playwright-parallel-mcp/actions/workflows/ci.yml)
|
|
4
|
+
[](https://coveralls.io/github/sumyapp/playwright-parallel-mcp?branch=main)
|
|
5
|
+
[](https://www.npmjs.com/package/playwright-parallel-mcp)
|
|
6
|
+
|
|
7
|
+
[English](README.md) | **[日本語](README.ja.md)** | [中文](README.zh.md)
|
|
8
|
+
|
|
9
|
+
複数のAIエージェントが**独立したブラウザインスタンス**を並列で制御できるMCP(Model Context Protocol)サーバーです。
|
|
10
|
+
|
|
11
|
+
## セキュリティ警告
|
|
12
|
+
|
|
13
|
+
> **このMCPサーバーは、信頼できない相手に公開されると悪用される可能性のある強力なブラウザ自動化機能を提供します。**
|
|
14
|
+
|
|
15
|
+
- **`run_script`**: ブラウザコンテキストで任意のJavaScriptを実行
|
|
16
|
+
- **`upload_file`**: ファイルアップロードのためファイルシステムにアクセス
|
|
17
|
+
- **`generate_pdf`** / **`add_init_script`**: (Fullモードのみ)追加のファイルシステムアクセスとスクリプト挿入機能
|
|
18
|
+
|
|
19
|
+
**信頼できないユーザーやAIエージェントにこのサーバーを公開しないでください。** 接続可能なすべてのクライアントを信頼できる、管理された環境でのみ使用してください。
|
|
20
|
+
|
|
21
|
+
## 課題
|
|
22
|
+
|
|
23
|
+
既存のブラウザ自動化MCPサーバー(Chrome DevTools MCP、Playwright MCP)は、すべてのセッションで単一のブラウザインスタンスを共有するため、複数のAIエージェントが同時に使用しようとすると競合が発生します。
|
|
24
|
+
|
|
25
|
+
## 解決策
|
|
26
|
+
|
|
27
|
+
playwright-parallel-mcpは**各セッションに分離されたブラウザインスタンス**を作成し、真の並列ブラウザ自動化を実現します。
|
|
28
|
+
|
|
29
|
+
## セッション分離保証
|
|
30
|
+
|
|
31
|
+
**各セッションは100%分離されています。** これはアーキテクチャレベルで保証され、包括的なテストで検証されています。
|
|
32
|
+
|
|
33
|
+
### アーキテクチャ
|
|
34
|
+
|
|
35
|
+
```
|
|
36
|
+
セッションA セッションB セッションC
|
|
37
|
+
│ │ │
|
|
38
|
+
▼ ▼ ▼
|
|
39
|
+
┌─────────┐ ┌─────────┐ ┌─────────┐
|
|
40
|
+
│ブラウザ │ │ブラウザ │ │ブラウザ │
|
|
41
|
+
│プロセス │ │プロセス │ │プロセス │
|
|
42
|
+
│ (OS) │ │ (OS) │ │ (OS) │
|
|
43
|
+
└────┬────┘ └────┬────┘ └────┬────┘
|
|
44
|
+
│ │ │
|
|
45
|
+
▼ ▼ ▼
|
|
46
|
+
┌─────────┐ ┌─────────┐ ┌─────────┐
|
|
47
|
+
│コンテキスト│ │コンテキスト│ │コンテキスト│
|
|
48
|
+
│(Cookie) │ │(Cookie) │ │(Cookie) │
|
|
49
|
+
└────┬────┘ └────┬────┘ └────┬────┘
|
|
50
|
+
│ │ │
|
|
51
|
+
▼ ▼ ▼
|
|
52
|
+
┌─────────┐ ┌─────────┐ ┌─────────┐
|
|
53
|
+
│ ページ │ │ ページ │ │ ページ │
|
|
54
|
+
│ (DOM) │ │ (DOM) │ │ (DOM) │
|
|
55
|
+
└─────────┘ └─────────┘ └─────────┘
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
### 分離されるリソース
|
|
59
|
+
|
|
60
|
+
| リソース | 分離? | 方法 |
|
|
61
|
+
|----------|-------|------|
|
|
62
|
+
| ブラウザプロセス | ✅ はい | セッションごとに独立したOSプロセス |
|
|
63
|
+
| Cookie | ✅ はい | 独立したBrowserContext |
|
|
64
|
+
| localStorage | ✅ はい | 独立したBrowserContext |
|
|
65
|
+
| sessionStorage | ✅ はい | 独立したBrowserContext |
|
|
66
|
+
| DOM | ✅ はい | 独立したPageインスタンス |
|
|
67
|
+
| ナビゲーション履歴 | ✅ はい | 独立したPageインスタンス |
|
|
68
|
+
| コンソールログ | ✅ はい | セッションごとに保存 |
|
|
69
|
+
| ネットワークログ | ✅ はい | セッションごとに保存 |
|
|
70
|
+
|
|
71
|
+
### テストカバレッジ
|
|
72
|
+
|
|
73
|
+
セッション分離は**17の専用テスト**で検証されています:
|
|
74
|
+
|
|
75
|
+
- ブラウザプロセスの分離
|
|
76
|
+
- ナビゲーションの分離
|
|
77
|
+
- DOMの分離
|
|
78
|
+
- Cookieの分離
|
|
79
|
+
- localStorage/sessionStorageの分離
|
|
80
|
+
- コンソールログの分離
|
|
81
|
+
- ネットワークログの分離
|
|
82
|
+
- 並行操作の安全性
|
|
83
|
+
- セッションIDの一意性(UUID v4)
|
|
84
|
+
|
|
85
|
+
`pnpm test`を実行して分離保証を確認できます。
|
|
86
|
+
|
|
87
|
+
## 特徴
|
|
88
|
+
|
|
89
|
+
- **並列セッション** - 各セッションが独自のブラウザインスタンスを持つ
|
|
90
|
+
- **複数ブラウザ対応** - Chromium、Firefox、WebKitをサポート
|
|
91
|
+
- **22種類のツール** - 必須のブラウザ自動化機能(Fullモードでは63種類)
|
|
92
|
+
- **低コンテキスト使用量** - 約14kトークン(@playwright/mcpと同等)
|
|
93
|
+
- **コンソールログ** - デバッグ用にコンソール出力をキャプチャ
|
|
94
|
+
- **ダイアログ処理** - alert、confirm、promptダイアログを処理
|
|
95
|
+
- **アクセシビリティスナップショット** - ARIAスナップショット形式(Playwright 1.49以降)
|
|
96
|
+
- **無料&ローカル** - クラウドサービス不要
|
|
97
|
+
|
|
98
|
+
## インストール
|
|
99
|
+
|
|
100
|
+
### Claude Codeで使用
|
|
101
|
+
|
|
102
|
+
MCP設定に追加:
|
|
103
|
+
|
|
104
|
+
```json
|
|
105
|
+
{
|
|
106
|
+
"mcpServers": {
|
|
107
|
+
"playwright-parallel": {
|
|
108
|
+
"command": "npx",
|
|
109
|
+
"args": ["playwright-parallel-mcp"]
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
### npmで使用
|
|
116
|
+
|
|
117
|
+
```bash
|
|
118
|
+
npm install -g playwright-parallel-mcp
|
|
119
|
+
playwright-parallel-mcp
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
## 利用可能なツール(22種類)
|
|
123
|
+
|
|
124
|
+
### セッション管理(3ツール)
|
|
125
|
+
| ツール | 説明 |
|
|
126
|
+
|------|------|
|
|
127
|
+
| `create_session` | 新しい分離されたブラウザセッションを作成(chromium/firefox/webkit) |
|
|
128
|
+
| `close_session` | ブラウザセッションを閉じる |
|
|
129
|
+
| `list_sessions` | すべてのアクティブなセッションを一覧表示 |
|
|
130
|
+
|
|
131
|
+
### ナビゲーション(4ツール)
|
|
132
|
+
| ツール | 説明 |
|
|
133
|
+
|------|------|
|
|
134
|
+
| `navigate` | URLに移動 |
|
|
135
|
+
| `go_back` | ブラウザ履歴を戻る |
|
|
136
|
+
| `reload` | 現在のページを再読み込み |
|
|
137
|
+
| `get_url` | 現在のURLとページタイトルを取得 |
|
|
138
|
+
|
|
139
|
+
### ページ検査(2ツール)
|
|
140
|
+
| ツール | 説明 |
|
|
141
|
+
|------|------|
|
|
142
|
+
| `snapshot` | アクセシビリティツリーを取得(ARIAスナップショット形式) |
|
|
143
|
+
| `screenshot` | スクリーンショットを撮影(PNG/JPEG、フルページまたは要素) |
|
|
144
|
+
|
|
145
|
+
### ユーザー操作(6ツール)
|
|
146
|
+
| ツール | 説明 |
|
|
147
|
+
|------|------|
|
|
148
|
+
| `click` | 要素をクリック(左/右/中央ボタン) |
|
|
149
|
+
| `fill` | フォーム入力にテキストを入力 |
|
|
150
|
+
| `type` | リアルなキー入力でテキストを入力 |
|
|
151
|
+
| `press_key` | キーボードキーを押す(例:Enter、Control+A) |
|
|
152
|
+
| `hover` | 要素にホバー |
|
|
153
|
+
| `select_option` | ドロップダウンから選択 |
|
|
154
|
+
|
|
155
|
+
### その他のツール(7ツール)
|
|
156
|
+
| ツール | 説明 |
|
|
157
|
+
|------|------|
|
|
158
|
+
| `wait_for_timeout` | 指定時間待機 |
|
|
159
|
+
| `set_dialog_handler` | 自動ダイアログ処理を設定(承諾/却下) |
|
|
160
|
+
| `upload_file` | ファイル入力要素にファイルをアップロード |
|
|
161
|
+
| `drag_and_drop` | 要素をドラッグして別の要素にドロップ |
|
|
162
|
+
| `run_script` | ブラウザコンテキストでJavaScriptを実行 |
|
|
163
|
+
| `get_console_logs` | コンソールログを取得(log/info/warn/error/debug) |
|
|
164
|
+
| `set_viewport` | ビューポートサイズを変更 |
|
|
165
|
+
|
|
166
|
+
## 使用例
|
|
167
|
+
|
|
168
|
+
### 基本的なナビゲーション
|
|
169
|
+
|
|
170
|
+
```
|
|
171
|
+
ユーザー: example.comを開いてスクリーンショットを撮って
|
|
172
|
+
|
|
173
|
+
Claude: ブラウザセッションを作成し、example.comに移動します。
|
|
174
|
+
|
|
175
|
+
[create_session] -> sessionId: "abc123"
|
|
176
|
+
[navigate sessionId="abc123" url="https://example.com"]
|
|
177
|
+
[screenshot sessionId="abc123"]
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
### 並列セッション
|
|
181
|
+
|
|
182
|
+
```
|
|
183
|
+
ユーザー: 2つのウェブサイトのホームページを並べて比較して
|
|
184
|
+
|
|
185
|
+
Claude: 2つのブラウザセッションを並列で作成します。
|
|
186
|
+
|
|
187
|
+
[create_session] -> sessionId: "session-a"
|
|
188
|
+
[create_session] -> sessionId: "session-b"
|
|
189
|
+
[navigate sessionId="session-a" url="https://example.com"]
|
|
190
|
+
[navigate sessionId="session-b" url="https://google.com"]
|
|
191
|
+
[snapshot sessionId="session-a"]
|
|
192
|
+
[snapshot sessionId="session-b"]
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
### フォーム操作
|
|
196
|
+
|
|
197
|
+
```
|
|
198
|
+
ユーザー: ログインフォームに入力して
|
|
199
|
+
|
|
200
|
+
Claude: フォームフィールドに入力して送信します。
|
|
201
|
+
|
|
202
|
+
[fill sessionId="abc123" selector="input[name='email']" value="user@example.com"]
|
|
203
|
+
[fill sessionId="abc123" selector="input[name='password']" value="***"]
|
|
204
|
+
[click sessionId="abc123" selector="button[type='submit']"]
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
### コンソールログ
|
|
208
|
+
|
|
209
|
+
```
|
|
210
|
+
ユーザー: ページのコンソール出力をチェックして
|
|
211
|
+
|
|
212
|
+
Claude: コンソールログとエラーを確認します。
|
|
213
|
+
|
|
214
|
+
[get_console_logs sessionId="abc123" types=["error", "warn"]]
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
### ダイアログ処理
|
|
218
|
+
|
|
219
|
+
```
|
|
220
|
+
ユーザー: 確認ダイアログを処理して
|
|
221
|
+
|
|
222
|
+
Claude: 自動ダイアログ処理を設定します。
|
|
223
|
+
|
|
224
|
+
[set_dialog_handler sessionId="abc123" autoRespond=true accept=true]
|
|
225
|
+
[click sessionId="abc123" selector="#delete-button"]
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
## ツールリファレンス
|
|
229
|
+
|
|
230
|
+
### create_session
|
|
231
|
+
|
|
232
|
+
新しい分離されたブラウザセッションを作成します。
|
|
233
|
+
|
|
234
|
+
**パラメータ:**
|
|
235
|
+
- `browser`(オプション): "chromium" | "firefox" | "webkit"(デフォルト: "chromium")
|
|
236
|
+
- `headless`(オプション): boolean(デフォルト: true)
|
|
237
|
+
- `viewport`(オプション): { width: number, height: number }
|
|
238
|
+
|
|
239
|
+
**戻り値:** `{ sessionId, browser, createdAt }`
|
|
240
|
+
|
|
241
|
+
### navigate
|
|
242
|
+
|
|
243
|
+
URLに移動します。
|
|
244
|
+
|
|
245
|
+
**パラメータ:**
|
|
246
|
+
- `sessionId`: string
|
|
247
|
+
- `url`: string(有効なURL)
|
|
248
|
+
- `waitUntil`(オプション): "load" | "domcontentloaded" | "networkidle"(デフォルト: "load")
|
|
249
|
+
|
|
250
|
+
**戻り値:** `{ url, title, status }`
|
|
251
|
+
|
|
252
|
+
### snapshot
|
|
253
|
+
|
|
254
|
+
ARIAスナップショット形式でアクセシビリティツリーを取得します。
|
|
255
|
+
|
|
256
|
+
**パラメータ:**
|
|
257
|
+
- `sessionId`: string
|
|
258
|
+
|
|
259
|
+
**戻り値:** YAML形式のアクセシビリティツリー
|
|
260
|
+
|
|
261
|
+
### run_script
|
|
262
|
+
|
|
263
|
+
ブラウザコンテキストでJavaScriptを実行します。
|
|
264
|
+
|
|
265
|
+
**パラメータ:**
|
|
266
|
+
- `sessionId`: string
|
|
267
|
+
- `expression`: 評価するJavaScript式
|
|
268
|
+
|
|
269
|
+
**戻り値:** `{ success: boolean, result?: any, error?: string }`
|
|
270
|
+
|
|
271
|
+
## 比較
|
|
272
|
+
|
|
273
|
+
| 機能 | Chrome DevTools MCP | Playwright MCP | **本プロジェクト** |
|
|
274
|
+
|------|---------------------|----------------|-------------------|
|
|
275
|
+
| 並列セッション | なし | なし | **あり** |
|
|
276
|
+
| セッション分離 | なし | なし | **あり(APIレベル)** |
|
|
277
|
+
| ツール数 | 約26 | 約22 | **22(Lite)/ 63(Full)** |
|
|
278
|
+
| コンテキストトークン | 約17k | 約14k | **約14k(Lite)/ 約40k(Full)** |
|
|
279
|
+
| コンソールログ | あり | あり | **あり** |
|
|
280
|
+
| ダイアログ処理 | あり | なし | **あり** |
|
|
281
|
+
| JavaScript実行 | あり | あり | **あり** |
|
|
282
|
+
| ファイルアップロード | なし | あり | **あり** |
|
|
283
|
+
| 料金 | 無料 | 無料 | **無料** |
|
|
284
|
+
|
|
285
|
+
### コンテキストトークン使用量(実測値)
|
|
286
|
+
|
|
287
|
+
Claude Codeで MCP ツールとして読み込んだ際のトークン消費量(`/context` コマンド):
|
|
288
|
+
|
|
289
|
+
| MCPサーバー | ツール数 | 総トークン | 平均/ツール |
|
|
290
|
+
|------------|---------|-----------|------------|
|
|
291
|
+
| **playwright-parallel-mcp (Lite)** | 22 | 約14,000 | 640 |
|
|
292
|
+
| **playwright-parallel-mcp (Full)** | 63 | 40,343 | 640 |
|
|
293
|
+
| [@playwright/mcp](https://github.com/microsoft/playwright-mcp) | 22 | 14,534 | 661 |
|
|
294
|
+
| [chrome-devtools-mcp](https://github.com/ChromeDevTools/chrome-devtools-mcp) | 26 | 17,668 | 680 |
|
|
295
|
+
|
|
296
|
+
> **Liteモード(デフォルト)** は@playwright/mcpと同じツール数で同等のトークン使用量を提供しながら、並列実行のためのセッション分離を追加しています。
|
|
297
|
+
|
|
298
|
+
## 環境変数
|
|
299
|
+
|
|
300
|
+
| 変数 | デフォルト値 | 説明 |
|
|
301
|
+
|------|-------------|------|
|
|
302
|
+
| `PLAYWRIGHT_PARALLEL_MODE` | `lite` | モード: `lite`(22ツール)または `full`(63ツール) |
|
|
303
|
+
| `MAX_SESSIONS` | 10 | 同時ブラウザセッションの最大数 |
|
|
304
|
+
| `SESSION_TIMEOUT_MS` | 3600000 | セッション非アクティブタイムアウト(1時間) |
|
|
305
|
+
|
|
306
|
+
## 要件
|
|
307
|
+
|
|
308
|
+
- Node.js 20以上
|
|
309
|
+
- Playwrightブラウザ(自動インストール)
|
|
310
|
+
|
|
311
|
+
## 開発
|
|
312
|
+
|
|
313
|
+
```bash
|
|
314
|
+
git clone https://github.com/sumyapp/playwright-parallel-mcp
|
|
315
|
+
cd playwright-parallel-mcp
|
|
316
|
+
pnpm install
|
|
317
|
+
pnpm build
|
|
318
|
+
pnpm start
|
|
319
|
+
```
|
|
320
|
+
|
|
321
|
+
### テスト実行
|
|
322
|
+
|
|
323
|
+
```bash
|
|
324
|
+
pnpm test
|
|
325
|
+
```
|
|
326
|
+
|
|
327
|
+
### プロジェクト構造
|
|
328
|
+
|
|
329
|
+
```
|
|
330
|
+
src/
|
|
331
|
+
index.ts # MCPサーバーエントリポイント、全ツール定義
|
|
332
|
+
session-manager.ts # ブラウザセッションライフサイクル管理
|
|
333
|
+
```
|
|
334
|
+
|
|
335
|
+
## Fullモード
|
|
336
|
+
|
|
337
|
+
Fullモードは**`run_script`では代替できない**機能を提供し、特定のユースケースに不可欠です。
|
|
338
|
+
|
|
339
|
+
### Fullモードを使用すべき場合
|
|
340
|
+
|
|
341
|
+
| ユースケース | 必要なツール | run_scriptで代替できない理由 |
|
|
342
|
+
|-------------|-------------|----------------------------|
|
|
343
|
+
| **API監視** | `get_network_logs` | ヘッダー、タイミング、ステータスコードを含むすべてのHTTPリクエスト/レスポンスをキャプチャ |
|
|
344
|
+
| **パフォーマンス分析** | `get_metrics` | Navigation Timing API、メモリ使用量、ペイントメトリクスへのアクセス |
|
|
345
|
+
| **PDFレポート生成** | `generate_pdf` | ページフォーマットオプション付きのブラウザレベルPDFレンダリング |
|
|
346
|
+
| **iframe自動化** | `frame_click`, `frame_fill` | JavaScriptからアクセスできないクロスオリジンiframeへのアクセス |
|
|
347
|
+
| **JSエラー検出** | `get_page_errors` | 失われる前にキャッチされない例外をキャプチャ |
|
|
348
|
+
| **アクセシビリティ監査** | `get_accessibility_tree` | コンプライアンステスト用の完全なARIAツリー構造 |
|
|
349
|
+
|
|
350
|
+
### 例:ネットワークログを使用したAPIテスト
|
|
351
|
+
|
|
352
|
+
```
|
|
353
|
+
ユーザー: ログインAPIをテストしてレスポンスを確認して
|
|
354
|
+
|
|
355
|
+
Claude: ログイン中のネットワークリクエストを監視します。
|
|
356
|
+
|
|
357
|
+
[get_network_logs sessionId="abc" resourceTypes=["fetch","xhr"]]
|
|
358
|
+
→ キャプチャ: POST /api/login (200, 145ms, レスポンスボディあり)
|
|
359
|
+
```
|
|
360
|
+
|
|
361
|
+
これが`run_script`では不可能な理由:
|
|
362
|
+
- Fetch/XHRのインターセプトはリクエスト前にセットアップが必要
|
|
363
|
+
- レスポンスボディは完了後にアクセス不可
|
|
364
|
+
- タイミング情報は失われる
|
|
365
|
+
|
|
366
|
+
### 設定
|
|
367
|
+
|
|
368
|
+
```json
|
|
369
|
+
{
|
|
370
|
+
"mcpServers": {
|
|
371
|
+
"playwright-parallel": {
|
|
372
|
+
"command": "npx",
|
|
373
|
+
"args": ["playwright-parallel-mcp"],
|
|
374
|
+
"env": {
|
|
375
|
+
"PLAYWRIGHT_PARALLEL_MODE": "full"
|
|
376
|
+
}
|
|
377
|
+
}
|
|
378
|
+
}
|
|
379
|
+
}
|
|
380
|
+
```
|
|
381
|
+
|
|
382
|
+
### 追加ツール(41ツール、約40kトークン)
|
|
383
|
+
|
|
384
|
+
<details>
|
|
385
|
+
<summary>クリックして全ツールリストを展開</summary>
|
|
386
|
+
|
|
387
|
+
- **ナビゲーション**: go_forward
|
|
388
|
+
- **ページ検査**: get_content, get_html
|
|
389
|
+
- **ユーザー操作**: check, uncheck
|
|
390
|
+
- **待機ツール**: wait_for_selector, wait_for_load_state, wait_for_url, wait_for_function
|
|
391
|
+
- **ダイアログ**: get_dialogs
|
|
392
|
+
- **要素状態**: get_element_state, get_attribute, get_bounding_box, count_elements, get_all_texts
|
|
393
|
+
- **スクロール**: scroll, scroll_into_view
|
|
394
|
+
- **マウス**: mouse_move, mouse_click, mouse_down, mouse_up, mouse_wheel
|
|
395
|
+
- **エミュレーション**: set_geolocation, set_offline, set_extra_http_headers
|
|
396
|
+
- **ストレージ/Cookie**: get_cookies, set_cookies, get_storage, set_storage
|
|
397
|
+
- **ネットワーク**: get_network_logs
|
|
398
|
+
- **PDF/フレーム**: generate_pdf, list_frames, frame_click, frame_fill, frame_get_content
|
|
399
|
+
- **デバッグ**: get_page_errors, clear_logs, expose_function, add_init_script, get_metrics, get_accessibility_tree
|
|
400
|
+
|
|
401
|
+
</details>
|
|
402
|
+
|
|
403
|
+
## ライセンス
|
|
404
|
+
|
|
405
|
+
MIT
|