--- title: Playwright Extension description: Add Playwright MCP Server as a Goose Extension for Modern Web Testing --- import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; import YouTubeShortEmbed from '@site/src/components/YouTubeShortEmbed'; This tutorial covers how to add the Playwright MCP Server as a Goose extension, to enable cross-browser testing and web automation across Chromium and Webkit. :::tip TLDR [Launch the installer](goose://extension?cmd=npx&arg=-y&arg=@playwright/mcp@latest&id=playwright&name=Playwright&description=Modern%20web%20testing%20and%20automation) **Command** ```sh npx -y @playwright/mcp@latest ``` ::: ## Configuration :::info Note that you'll need [Node.js](https://nodejs.org/) installed on your system to run this command, as it uses `npx`. ::: 1. [Launch the installer](goose://extension?cmd=npx&arg=-y&arg=@playwright/mcp@latest&id=playwright&name=Playwright&description=Modern%20web%20testing%20and%20automation) 2. Press `Yes` to confirm the installation 3. Scroll to the top and click `Exit` from the upper left corner 1. Run the `configure` command: ```sh goose configure ``` 2. Choose to add a `Command-line Extension` ```sh ┌ goose-configure │ ◇ What would you like to configure? │ Add Extension (Connect to a new extension) │ ◆ What type of extension would you like to add? │ ○ Built-in Extension // highlight-start │ ● Command-line Extension (Run a local command or script) // highlight-end │ ○ Remote Extension (SSE) │ ○ Remote Extension (Streaming HTTP) └ ``` 3. Give your extension a name ```sh ┌ goose-configure │ ◇ What would you like to configure? │ Add Extension (Connect to a new extension) │ ◇ What type of extension would you like to add? │ Command-line Extension │ ◆ What would you like to call this extension? │ Playwright └ ``` 4. Enter the command ```sh ┌ goose-configure │ ◇ What would you like to configure? │ Add Extension (Connect to a new extension) │ ◇ What type of extension would you like to add? │ Command-line Extension │ ◇ What would you like to call this extension? │ Playwright │ ◆ What command should be run? │ npx -y @playwright/mcp@latest └ ``` 5. Enter the number of seconds Goose should wait for actions to complete before timing out. Default is 300s ```sh ┌ goose-configure │ ◇ What would you like to configure? │ Add Extension (Connect to a new extension) │ ◇ What type of extension would you like to add? │ Command-line Extension │ ◇ What would you like to call this extension? │ Playwright │ ◇ What command should be run? │ npx -y @playwright/mcp@latest │ ◆ Please set the timeout for this tool (in secs): │ 300 └ ``` 6. Choose to add a description. If you select "Yes" here, you will be prompted to enter a description for the extension. ```sh ┌ goose-configure │ ◇ What would you like to configure? │ Add Extension (Connect to a new extension) │ ◇ What type of extension would you like to add? │ Command-line Extension │ ◇ What would you like to call this extension? │ Playwright │ ◇ What command should be run? │ npx -y @playwright/mcp@latest │ ◇ Please set the timeout for this tool (in secs): │ 300 │ ◆ Would you like to add a description? │ No └ ``` 7. Choose No when asked to add environment variables ```sh ┌ goose-configure │ ◇ What would you like to configure? │ Add Extension (Connect to a new extension) │ ◇ What type of extension would you like to add? │ Command-line Extension │ ◇ What would you like to call this extension? │ Playwright │ ◇ What command should be run? │ npx -y @playwright/mcp@latest │ ◇ Please set the timeout for this tool (in secs): │ 300 │ ◇ Would you like to add a description? │ No │ ◆ Would you like to add environment variables? │ No │ └ Added Playwright extension ``` ## Example Usage Let's use Goose with the Playwright extension to create a cross-browser testing suite. In this example, we'll demonstrate how Goose can help you: 1. Test a web application across multiple browsers 2. Generate maintainable test code 3. Capture screenshots for visual comparison :::info LLM Anthropic's Claude 3.5 Sonnet was used for this task. ::: ### Goose Prompt ``` Test the random redesign generator app (https://blackgirlbytes.github.io/random-redesign-picker/) in Chromium and WebKit. For each browser: 1. Navigate to the page 2. Click the "Pick My Combo" button 3. Verify the text changes 4. Take a screenshot Then generate a Playwright test that works across all browsers. ``` ### Goose Output ``` Let's start with Chromium: ─── browser_navigate | playwright ────────────────────────── url: https://blackgirlbytes.github.... Now let's wait for and click the button: ─── browser_click | playwright ────────────────────────── element: button with text "Pick My Combo" ref: