スキル browsing-with-playwright
📦

browsing-with-playwright

コンテンツリビジョン r1 高リスク ⚙️ 外部コマンド🌐 ネットワークアクセス📁 ファイルシステムへのアクセス

Playwright MCP でブラウジングを自動化

手動のブラウザテストやデータ収集は時間がかかり、再現も難しいことがあります。このスキルは、Claude、Codex、Claude Code に、制御されたブラウザ操作のためのローカル Playwright MCP ワークフローを提供します。

対応: Claude Codex Code(CC)
⚠️ 38 不十分

自分のエージェントでインストール

このリクエストをエージェントにコピーしてください。正規の Skill ページとマニフェストが含まれています。

エージェントリクエスト
Review the Skillstore skill "browsing-with-playwright" from https://skillstore.io/skills/asmayaseen-browsing-with-playwright.md and its manifest at https://skillstore.io/api/skills/asmayaseen-browsing-with-playwright/manifest. Verify the artifact. Stop and obtain explicit user consent before installing or changing files.

エージェントは引き続き計画を提示し、セキュリティポリシーで必要な確認を求める必要があります。

エージェントが読めるリソース

AI エージェント、クローラー、スクリプトがページ全体ではなく整理されたコンテキストを必要とする場合は、これらのリンクを使ってください。

テストする

「browsing-with-playwright」を使用しています。 サインアップページが読み込まれ、メールアドレスとパスワードのフィールドがあるか確認してください。

期待される結果:

ページは正常に読み込まれました。スナップショットにはメールアドレスとパスワードのフィールド、送信ボタン、利用規約のチェックボックスが表示されています。確認用のスクリーンショットを取得しました。

「browsing-with-playwright」を使用しています。 テスト値で問い合わせフォームを送信し、結果を確認してください。

期待される結果:

フォームに入力して送信しました。ページには成功メッセージが表示され、最終画面を証跡として保存しました。

「browsing-with-playwright」を使用しています。 カタログページに表示されている商品名を抽出してください。

期待される結果:

  • カタログページを開きました。
  • 読み込み後のページ状態を取得しました。
  • 表示されている商品名を返し、ページネーションの背後に隠れている項目を記録しました。

セキュリティ監査

高リスク

Most static findings are false positives from Markdown examples, JSON Schema URLs, generated reference documentation, or fixed health-check commands. Real risks remain because the skill can launch a user-supplied stdio MCP command, send MCP requests to configured endpoints, manage local processes through /tmp PID files, and execute arbitrary Playwright code in a shared browser context.

6
スキャンされたファイル
1,567
解析済み行数
23
レビュー項目
0
誤検知を無視

確認済みのセキュリティ上の懸念 (2)

高
Arbitrary browser code execution capability
The skill instructs users to call browser_run_code with supplied Playwright code. This is a powerful browser automation feature that can read page content and act in the active shared browser context if misused.
The documented workflow explicitly passes a code string to browser_run_code. The risk is contextual because trusted users may need it, but untrusted prompts could abuse it.
中
Shared browser context may expose session state
The skill requires --shared-browser-context so browser state persists across MCP client calls. Persistent session state can expose authenticated pages or cookies during later browser automation tasks.
The documentation clearly requires a shared browser context and advises keeping the server running for long sessions. This creates a real privacy boundary concern, although it is not inherently malicious.
機能レビュー項目 (23)

これらは、このスキルに期待される可能性のある実際のローカル機能であるため、レビューが必要ですが、確認済みの悪意ある動作としてはカウントされません。

高
Python subprocess.Popen
self._process = subprocess.Popen(
StdioTransport starts a user-supplied --stdio command with shell=True. This is intended MCP functionality, but it is real arbitrary local command execution if untrusted input reaches the argument.
中
Shell command substitution
if [ -f "$PID_FILE" ] && kill -0 $(cat "$PID_FILE") 2>/dev/null; then
The script reads a PID from a predictable /tmp file inside command substitution before passing it to kill. This is local process-control logic with limited tampering risk.
中
Shell command substitution
echo "Playwright MCP already running on port $PORT (PID: $(cat $PID_FILE))"
The script reads a PID from a predictable /tmp file inside command substitution before passing it to kill. This is local process-control logic with limited tampering risk.
中
Shell command substitution
if kill -0 $(cat "$PID_FILE") 2>/dev/null; then
The script reads a PID from a predictable /tmp file inside command substitution before passing it to kill. This is local process-control logic with limited tampering risk.
中
Shell command substitution
echo "Playwright MCP started on port $PORT (PID: $(cat $PID_FILE))"
The script reads a PID from a predictable /tmp file inside command substitution before passing it to kill. This is local process-control logic with limited tampering risk.
中
Temp directory access
PID_FILE="/tmp/playwright-mcp-${PORT}.pid"
The helper stores and reads a predictable PID file under /tmp. This is common lifecycle code, but it creates a local tampering surface.
中
Shell command substitution
PID=$(cat "$PID_FILE")
The script reads a PID file and uses the value for process termination. This is intended cleanup behavior with a limited local tampering risk.
中
Shell command substitution
python3 "$(dirname "$0")/mcp-client.py" call -u "http://localhost:${PORT}" -t browser_close -p '{}'
The script invokes a local Python MCP client and derives the script directory in shell. It is intended cleanup behavior, but it is still external command execution.
中
Temp directory access
PID_FILE="/tmp/playwright-mcp-${PORT}.pid"
The stop helper reads, deletes, and acts on a predictable /tmp PID file. This is normal lifecycle code but has a local tampering surface.
低
HTTP client library
def request(self, method: str, params: Optional[dict] = None) -> dict:
The MCP client sends JSON-RPC requests to a user-provided HTTP server URL. This is legitimate for MCP, but it is real network capability and can disclose tool parameters to that endpoint.
低
HTTP client library
def request(self, method: str, params: Optional[dict] = None) -> dict:
The MCP client sends JSON-RPC requests to a user-provided HTTP server URL. This is legitimate for MCP, but it is real network capability and can disclose tool parameters to that endpoint.
低
HTTP client library
result = self.transport.request("tools/list")
The MCP client sends JSON-RPC requests to a user-provided HTTP server URL. This is legitimate for MCP, but it is real network capability and can disclose tool parameters to that endpoint.
低
HTTP client library
result = self.transport.request("tools/call", params)
The MCP client sends JSON-RPC requests to a user-provided HTTP server URL. This is legitimate for MCP, but it is real network capability and can disclose tool parameters to that endpoint.
低
HTTP client library
result = self.transport.request("resources/list")
The MCP client sends JSON-RPC requests to a user-provided HTTP server URL. This is legitimate for MCP, but it is real network capability and can disclose tool parameters to that endpoint.
低
HTTP client library
result = self.transport.request("prompts/list")
The MCP client sends JSON-RPC requests to a user-provided HTTP server URL. This is legitimate for MCP, but it is real network capability and can disclose tool parameters to that endpoint.
低
Python HTTP libraries
from urllib.request import Request, urlopen
The imported urllib client is used to contact the configured MCP HTTP endpoint. This is expected, but it confirms runtime network access.
低
Standard device file access
if [ -f "$PID_FILE" ] && kill -0 $(cat "$PID_FILE") 2>/dev/null; then
The helper stores and reads a predictable PID file under /tmp. This is common lifecycle code, but it creates a local tampering surface.
低
Standard device file access
if kill -0 $(cat "$PID_FILE") 2>/dev/null; then
The helper stores and reads a predictable PID file under /tmp. This is common lifecycle code, but it creates a local tampering surface.
低
Standard device file access
if kill -0 "$PID" 2>/dev/null; then
The stop helper reads, deletes, and acts on a predictable /tmp PID file. This is normal lifecycle code but has a local tampering surface.
低
Standard device file access
python3 "$(dirname "$0")/mcp-client.py" call -u "http://localhost:${PORT}" -t browser_close -p '{}'
The stop helper reads, deletes, and acts on a predictable /tmp PID file. This is normal lifecycle code but has a local tampering surface.
低
Standard device file access
kill "$PID" 2>/dev/null
The stop helper reads, deletes, and acts on a predictable /tmp PID file. This is normal lifecycle code but has a local tampering surface.
低
Standard device file access
kill -9 "$PID" 2>/dev/null || true
The stop helper reads, deletes, and acts on a predictable /tmp PID file. This is normal lifecycle code but has a local tampering surface.
低
Standard device file access
pkill -f "@playwright/mcp.*--port.*${PORT}" 2>/dev/null && echo "Playwright MCP stopped" || echo "Pl
The stop helper reads, deletes, and acts on a predictable /tmp PID file. This is normal lifecycle code but has a local tampering surface.

リスク要因

⚙️ 外部コマンド (43)
🌐 ネットワークアクセス (49)
📁 ファイルシステムへのアクセス (9)
監査者: claude 監査履歴を表示 →
このレポートを共有・引用

バージョン付き評価レポート、中立的なバッジ、埋め込みカード、引用を共有できます。Skillstore は証拠を報告しますが、この Skill が安全かどうかは判断しません。

バージョン別レポートを開く
セキュリティ評価

レポートリンクをコピー

https://skillstore.io/skills/asmayaseen-browsing-with-playwright/audits/10?utm_source=security_passport&utm_medium=share&utm_campaign=versioned_report

Markdownバッジ

[![Skillstore security assessment](https://skillstore.io/badges/skills/asmayaseen-browsing-with-playwright/security.svg)](https://skillstore.io/skills/asmayaseen-browsing-with-playwright?utm_source=security_passport_badge)

HTMLバッジ

<a href="https://skillstore.io/skills/asmayaseen-browsing-with-playwright?utm_source=security_passport_badge"><img src="https://skillstore.io/badges/skills/asmayaseen-browsing-with-playwright/security.svg" alt="Skillstore security assessment" loading="lazy"></a>

埋め込みカード

<iframe src="https://skillstore.io/embed/skills/asmayaseen-browsing-with-playwright.html" title="Skillstore Security Assessment" sandbox="allow-popups allow-popups-to-escape-sandbox" loading="lazy" referrerpolicy="no-referrer" width="420" height="180"></iframe>
学術引用 (APA · BibTeX · CFF)

APA形式の引用

Asmayaseen. (2026). browsing-with-playwright security audit report (audit version 10) [Author version unspecified]. Skillstore. https://skillstore.io/skills/asmayaseen-browsing-with-playwright/audits/10

BibTeX形式の引用

@techreport{asmayaseen-asmayaseen-browsing-with-playwright-2026, author = {Asmayaseen}, title = {browsing-with-playwright security audit report (audit version 10)}, institution = {Skillstore}, year = {2026}, number = {10}, url = {https://skillstore.io/skills/asmayaseen-browsing-with-playwright/audits/10}, note = {Author version unspecified} }

CITATION.cff

cff-version: 1.2.0 message: "If you use this Skill, cite its author and this versioned security audit report." title: "browsing-with-playwright security audit report (audit version 10)" version: "unspecified" type: report authors: - name: "Asmayaseen" date-released: "2026-07-09" url: "https://skillstore.io/skills/asmayaseen-browsing-with-playwright/audits/10" identifiers: - type: other value: "skillstore:asmayaseen-browsing-with-playwright:audit:10" description: "Skillstore immutable audit report identifier"

Skillstore スコア

このスコアの理由 証拠の信頼度: 中
64
アーキテクチャ
85
保守性
87
コンテンツ
70
コミュニティ
83
仕様準拠

作成できるもの

Web フォームをエンドツーエンドでテストする

ページに移動し、フィールドに入力し、フォームを送信し、確認を待って、スクリーンショットで証跡を取得します。

ブラウザ専用ワークフローを調査する

スナップショット、クリック、待機、スクリーンショットを使用して、JavaScript 実行が必要な動的ページを理解します。

表示されているページデータを抽出する

ページを開き、スナップショットまたはブラウザ評価を通じてテキストを収集し、調査タスク向けに結果を要約します。

これらのプロンプトを試す

ページを開いて表示内容を報告する
Playwright browser skill を使用して、私が提供するページを開いてください。スナップショットを取得し、表示されているセクションを要約し、ページが正しく読み込まれたか教えてください。
シンプルなフォームに入力して送信する
Playwright MCP server を起動し、このフォームを開き、私が提供する値でフィールドを入力し、送信して、確認画面を取得してください。
動的 UI 状態をデバッグする
browser snapshots と screenshots を使用して、この UI 問題を再現してください。提示された手順に沿ってクリックし、各状態変化を待ち、観察された挙動を報告してください。
複数ステップの抽出ワークフローを実行する
Playwright MCP を使用して対象ページを移動し、要求されたデータに対して安全なページ評価を実行し、参照元ページ付きの簡潔な結果表を返してください。

ベストプラクティス

  • 要素参照を最新に保つため、クリックや入力の前に新しい browser_snapshot を取得してください。
  • ブラウザ作業が完了したら、特に認証済みセッションの後は Playwright MCP server を停止してください。
  • browser_run_code は信頼できるワークフローにのみ使用し、単純な操作には対象を絞ったツール呼び出しを優先してください。

回避

  • 直接 HTTP 取得で十分な静的ダウンロードには、このスキルを使用しないでください。
  • 無関係なユーザーや機密性の高いアカウントに対して、共有ブラウザコンテキストを再利用しないでください。
  • 信頼できないページ、プロンプト、チケットからコピーした Playwright code を実行しないでください。

よくある質問

このスキルは何を自動化しますか?
Playwright MCP を通じて、ブラウザナビゲーション、クリック、入力、フォーム入力、スクリーンショット、待機、ページ抽出を自動化します。
ローカルサーバーは必要ですか?
はい。ヘルパースクリプトがローカル Playwright MCP server を起動し、Python client が MCP リクエストを送信します。
Claude Code で動作しますか?
はい。レポートでは Claude Code、Claude、Codex が対応ツールとして記載されています。
認証が必要なサイトを閲覧できますか?
はい、ブラウザセッションが認証済みであれば可能です。ユーザーは機密性の高い作業後にブラウザを閉じる必要があります。
browser_run_code は安全ですか?
強力な機能であり、信頼できるコードにのみ使用すべきです。可能な場合は具体的なブラウザツールを優先してください。
サーバーが応答しなくなった場合はどうすればよいですか?
ローカル MCP server を停止して再起動し、ブラウザ操作を続ける前に新しいスナップショットを取得してください。

開発者情報

作成者

Asmayaseen

ライセンス

MIT

Skillstore リビジョン

r1

バージョンに関する注意

作者はバージョンを宣言していません。

参照

7db9b9f06e0ab79c575b58bc48c4d8dc9849f424

メンテナンスの新しさ

2026/7/21

利用状況

15 ダウンロード · 204 閲覧

ファイル構成