PlaywrightGen について
PlaywrightGenは、レビュー済みのPlaywrightテストと追跡可能な実行証拠を必要とするチーム向けのMCPサーバーです。承認済み要件とテストケースを、検証済み自動化およびチーム独自のCIから届く範囲付きの結果に結び付けます。
主な機能
- 01バージョン付き要件の起草と承認
- 02テストケースと要件の関連付け
- 03Playwright自動化の生成と検証
- 04実際のページでのテスト実証
- 05CI実行証拠の記録と証明リンク共有
活用シーン
- 01合意済みの動作をレビュー済みテストにする
- 02実際のアプリケーションページで自動化を検証
- 03リリース判断用の署名付き証拠を共有
MCP 対応
16個のMCPツールにより、エージェントは承認済みのテスト意図を読み、自動化や最近の失敗を確認し、実ページでテストを実証し、レビュー用の下書きを提案できます。サーバーは提案できますが、承認、受諾、共有、削除はできません。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://playwrightgen.com/api/mcpclaude mcp add --transport http com-playwrightgen-playwrightgen https://playwrightgen.com/api/mcp{"mcpServers":{"com-playwrightgen-playwrightgen":{"type":"http","url":"https://playwrightgen.com/api/mcp"}}}Cursor で開く{"servers":{"com-playwrightgen-playwrightgen":{"type":"http","url":"https://playwrightgen.com/api/mcp"}}}VS Code で開く{"mcpServers":{"com-playwrightgen-playwrightgen":{"type":"http","url":"https://playwrightgen.com/api/mcp"}}}{"mcpServers":{"com-playwrightgen-playwrightgen":{"serverUrl":"https://playwrightgen.com/api/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
https://playwrightgen.com/api/mcp認証が必要ツール
詳細
PlaywrightGen
実際のページから Playwright テストを作成し、成功するまで実行して、担当者が承認した証拠として保管します。
playwrightgen.com で公開中です。
Playwright テストを書くことは、もはや難しい作業ではありません。どのエディターにも、それを実行してくれるアシスタントがあります。しかし、監査やリリースの判断、顧客が実際に求めるものを記録し続ける機能は、どのエディターにもありません。つまり、どの挙動について誰がどのバージョンで合意し、直近の実行で何が証明されたのかという記録です。この製品は、その記録を提供します。
仕組み
入口は2つ、記録はひと続きです。
無料ツールはアカウント不要です。テスト内容を伝え、公開 URL を貼り付けると、PlaywrightGen がページを読み込み、実際のアクセシビリティツリーからテストを作成し、リモートブラウザーで実行して、成功するまで失敗したステップを修正します。実行結果で裏付けられた動作するコードを、署名付きで取得できます。その証拠は、後からワークスペースに取り込んでも保持されます。ワークスペースに取り込むまでは、永続的な記録として扱われることはありません。
ワークスペースでは、それが記録になります。
- 要件を作成、レビュー、承認します。承認すると、変更できないバージョンが記録されます。
- テストケースには、目的、手順、期待される結果を記載し、同じ方法で承認します。また、検証対象の要件にリンクします。
- 自動化は承認済みのテストケースのバージョンから生成され、決定論的なルールに照らして検証され、実際のページで実証された後、担当者が承認します。ジェネレーターやエージェントが承認することはありません。
- 実行証拠は、利用者自身の CI から届きます。テストは利用者自身のランナーで、利用者の環境とシークレットを使って実行されます。送信されるのは、範囲を限定した実行結果の概要だけです。テストタイトル内の
[pwg:...]マーカーによって、結果が証拠となる承認済みバージョンとひも付けられます。 - 証明リンクを使うと、結果をチーム外と共有できます。誰でも開ける署名付き URL で、受け入れ署名と、保存用にダウンロードできるファイルが含まれます。
この一連の記録に含まれる主張は、すべてその根拠を示します。合格したテストがない要件はそのことを明記し、スキップされた実行は何も証明していないことを示し、範囲を限定したレポートは対象外となった範囲を示します。
信頼性を保つ仕組み
- プロンプトは依頼であり、バリデーターはルールです。 プロンプトが約束する内容には、すべて決定論的なチェックがあります。フォーカスされたテストがないこと、固定時間のスリープがないこと、ファイルに認証情報が含まれないこと、テスト対象のアプリケーション以外のアドレスにリクエストしないこと、ブラウザーテストが使うべきでない Node の機能にアクセスしないことを確認します。
- 修正によってテストの条件を緩めることはできません。 失敗したアサーションを合格にする最短の方法は削除することです。そのため、渡されたテストよりチェック項目が少なくなる修正は拒否されます。
- 職務を分離します。 何かを提案した人が、それを承認することはできません。MCP サーバーには提案とコードの送信はできますが、承認、受け入れ、共有、削除を行う権限はありません。この制約は、インポートグラフを読み取るテストで検証されます。
- AI を使うすべての機能を測定します。
npm run evalsは、構造化出力に対して各プロンプトを決定論的に評価し、実行結果を人が承認したベースラインと比較します。
エージェント向け(MCP)
PlaywrightGen は MCP サーバーなので、Claude Code、Cursor、Copilot は推測するのではなく、承認済みの意図を読み取れます。要件、テストケース、承認済みの自動化、最近の失敗、実際のページでのテスト作成と実証、レビュー用のドラフト提案を扱う16種類のツールを備えています。エージェントに与えられる権限は、使用したトークンの所有者とまったく同じです。
ローカルでの実行
npm install
npm run dev
テストスイートは npm run test:run で実行します。その後、npm run typecheck、npm run lint、npm run build を実行します。統合テストには、ほかの用途には使っていないデータベースを指す TEST_DATABASE_URL が必要です。本番環境と思われるデータベースは拒否されます。
Next.js、TypeScript、PostgreSQL(Prisma)、Clerk、Tailwind、Playwright、OpenAI、Stripe で構築されています。
環境
ランタイム:
DATABASE_URL— アプリケーション用の PostgreSQL。DIRECT_URL— マイグレーションコマンドで優先される任意の直接接続。TEST_DATABASE_URL— 統合テスト用の別データベース。上記のいずれにも フォールバックしません。NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY、CLERK_SECRET_KEY、CLERK_WEBHOOK_SIGNING_SECRETOPENAI_API_KEY— サーバー専用です。用途ごとにモデルを上書きする設定もあり、 たとえばOPENAI_REQUIREMENT_REVIEW_MODELやOPENAI_FAILURE_ANALYSIS_MODELがあります。UPSTASH_REDIS_REST_URL、UPSTASH_REDIS_REST_TOKEN— AI の分単位および 日単位の利用枠。RUNNER_INGEST_SECRET— ライブ実行のレシートに署名し、そのレシートによって そのコードそのものが実行されたことを証明します。BROWSERLESS_API_KEY— 無料ツールと証明処理で使用するリモートブラウザー。EXAMPLE_EVIDENCE_PROJECT_ID— 任意:証拠が/proof/exampleで 公開される唯一のプロジェクト。
GitHub 連携(環境ごとに個別の値を設定):
GITHUB_APP_ID、GITHUB_APP_PRIVATE_KEY、GITHUB_APP_SLUG、GITHUB_APP_CLIENT_ID、GITHUB_APP_CLIENT_SECRET、GITHUB_WEBHOOK_SECRETGITHUB_SETUP_STATE_SECRET— 32 文字以上で、ほかのすべてのシークレットと 異なる値にしてください。NEXT_PUBLIC_APP_URL— GitHub コールバックのリダイレクト先となる正確なオリジン。
アプリには権限の上限が設定されており、インストールごとに確認され、上限を超えると
拒否されます。権限は metadata: read、contents: read および write、
pull_requests: read および write、issues: read です。Contents の書き込み権限は、
承認済みのテストコードでプルリクエストを作成するために使用します。プルリクエストの
書き込み権限は、証拠の注記を残すために使用します。issues の読み取り権限は、
チケットから要件のドラフトを作成するために使用します。ユーザーおよびインストールの
トークンは一時的なもので、ログへの記録や保存は一切行いません。
Clerk の Webhook は /api/webhooks/clerk に送信します。ローカル環境とデプロイ環境で
CLERK_WEBHOOK_SIGNING_SECRET を設定し、次のイベントを登録してください。
user.created、user.updated、user.deletedorganization.created、organization.updated、organization.deletedorganizationMembership.created、organizationMembership.updated、organizationMembership.deleted
ローカルで Webhook を受信するには、ローカルアプリケーションへの安全なトンネルが必要です。 Webhook シークレットをドキュメントやソース管理に含めないでください。
運用
Clerk の組織を 1 つ照合します。デフォルトではドライランです。
npm run clerk:reconcile -- --organization-id org_example
# or
npm run clerk:reconcile -- --slug workspace-slug
ドライランの件数を確認してから、--apply を追加してください。すべての組織を
一括処理することはありません。
データベース:
npm run prisma:format
npm run prisma:validate
npm run prisma:generate
npm run prisma:migrate:dev
npm run test:database
認証情報、シークレット、.env、.env.local をコミットしないでください。開発用の
マイグレーションコマンドやリセットコマンドを、本番環境に対して実行しないでください。
作業内容の記録先
docs/ROADMAP.md— リリース済みの内容、次に行うこと、意図的に実施しなかったこと。docs/DECISIONS.md— アーキテクチャ上の決定と、それぞれの理由。docs/ARCHITECTURE.md、docs/PRODUCTION_READINESS.md— システムの構成と、 本番環境へのデプロイ前に満たすべき条件。examples/ci-proof— CI の一連の流れを最初から最後まで証明するための、使い捨てリポジトリ。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。