> For the complete documentation index, see [llms.txt](https://codemash.gitbook.io/codemash/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://codemash.gitbook.io/codemash/cloud/ai/mcp/providers/playwright.md).

# Playwright

Connect the Playwright MCP server.

Microsoft's Playwright MCP server lets the chat drive a browser: open pages, click, type, read the page. Transport: **Stdio**.

{% hint style="warning" %}
Playwright is a **Stdio** server: Norbix starts it as a program on the Norbix server, with the **Command** (default `docker`) and **Arguments** you give. The Norbix server image has no `docker`, `npx` or `uvx` today (checked on a local Norbix stack), so the server cannot start and the chat gets none of its tools. You can save and test it — the test only checks the stored secret. Use an **HttpStream** server ([Brave Search](/codemash/cloud/ai/mcp/providers/brave-search.md), [GitHub](/codemash/cloud/ai/mcp/providers/github.md), [Stripe](/codemash/cloud/ai/mcp/providers/stripe.md)) for now. Through the SDK, CLI and API it is saved the same way: [Save Mcp Integration](/codemash/api-reference/ai/integrations/save-mcp-integration.md).
{% endhint %}

## Get your credentials

1. Nothing to sign up for. The server program is the Playwright MCP image `mcr.microsoft.com/playwright/mcp`, started with `docker run -i --rm --init mcr.microsoft.com/playwright/mcp`.
2. The browser runs where the program runs — on the Norbix server.

More in the server's own guide: [Playwright MCP](https://github.com/microsoft/playwright-mcp).

## Connect it in Cloud

**Where:** Project → Integrations → MCP → **Add New Integration** → Playwright → **Connect** · `/projects/<project>/ai/mcps/integrations/new/playwright`

| Field            | Required | What it does                                                                                          | Example                                                                      |
| ---------------- | -------- | ----------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------- |
| Command          | no       | The program to start. Empty = `docker`.                                                               | `docker`                                                                     |
| Arguments        | no       | One argument per line.                                                                                | `run` `-i` `--rm` `--init` `mcr.microsoft.com/playwright/mcp` (one per line) |
| Headless         | no       | **Run browser in headless mode** — no visible window. On by default; passed as `PLAYWRIGHT_HEADLESS`. | on                                                                           |
| Integration Name | yes      | How the integration is listed in Norbix.                                                              | `Browser`                                                                    |

<figure><img src="https://712692422-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHy372bqsaex2cqS3ikhL%2Fuploads%2Fgit-blob-3427b8645958b4240e089ef956ded27a7e12fc7d%2Fplaywright-form-1.png?alt=media" alt="New Playwright Integration form filled with placeholder values"><figcaption><p>The filled form (secrets are made-up placeholders).</p></figcaption></figure>

Press **Save**. The title becomes *Editing Playwright integration*, the badges say **ENABLED** and **NOT TESTED**, the id (`int_…`) appears, the secret field is empty again with the note that it will not be displayed, and the test panel appears.

<figure><img src="https://712692422-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHy372bqsaex2cqS3ikhL%2Fuploads%2Fgit-blob-0533c5ec999b1fa04aee182a27c0c3a18e63ede2%2Fplaywright-saved-2.png?alt=media" alt="The Playwright integration after save: badges ENABLED and NOT TESTED, the id, and the Test integration panel"><figcaption><p>After save.</p></figcaption></figure>

## Test and set as default

**Test integration** only checks that Norbix can read the stored secret; it does not start or call the server — see [Test an MCP integration](/codemash/cloud/ai/mcp/test.md). MCP integrations have no default: every enabled one is offered to the end-user chat — see [Default MCP integration](/codemash/cloud/ai/mcp/set-default.md). To keep it away from the chat: [Disable or delete](/codemash/cloud/ai/mcp/disable.md).

## Common errors

| Message                             | Cause                                                                                        | Fix                               |
| ----------------------------------- | -------------------------------------------------------------------------------------------- | --------------------------------- |
| No tools of this server in the chat | Norbix cannot start the **Command** on its server (no `docker`, `npx` or `uvx` there today). | Use an HttpStream server for now. |
