To capture a website screenshot with Playwright MCP in GitHub Actions, the workflow must run an MCP client that starts or connects to the Playwright MCP server, navigate to the page, call its screenshot tool, and upload the resulting file as an artifact. The server alone is not a complete workflow: a client has to invoke its tools. If you only need browser automation in CI and do not need MCP, direct Playwright code is the simpler alternative documented by Playwright.
How the MCP screenshot workflow fits together
There are three moving parts: GitHub Actions runs the job, the Playwright MCP server exposes browser tools, and an MCP client calls those tools. Playwright’s documentation describes browser interaction through structured accessibility snapshots and provides a separate tool for taking a screenshot (Playwright MCP; installation guidance).
The MCP client must be able to start the server or reach a server process, make the navigation and screenshot calls, and save the image somewhere the workflow can upload. The official setup configuration is an MCP-client fragment, not a ready-made GitHub Actions workflow. The official sources do not provide a ready-made action that handles the entire MCP client and server orchestration for you.
Configure Playwright MCP for headless CI
The documented setup requires Node.js 20 or newer and an MCP-compatible client. Its server entry uses npx to run @playwright/mcp@latest; the browser downloads on first use. Playwright’s browser is headed by default, so CI configuration should include --headless to run without a visible window.
#1 Best Overall
- Includes Raspberry Pi 5 with 2.4Ghz 64-bit quad-core CPU (8GB RAM)
- Includes 128GB Micro SD Card pre-loaded with 64-bit Raspberry Pi OS, USB MicroSD Card Reader
- CanaKit Turbine Black Case for the Raspberry Pi 5
- CanaKit Low Noise Bearing System Fan
- Mega Heat Sink - Black Anodized
{
"mcpServers": {
"playwright": {
"command": "npx",
"args": ["@playwright/mcp@latest", "--headless"]
}
}
}
This configuration tells a compatible MCP client how to launch the server. It does not specify how a GitHub Actions job starts that client, invokes tools, or collects output. Your workflow needs a client process or script that understands this configuration and manages the server lifecycle.
Make versions reproducible
The documented example tracks latest. That is convenient for a quick start but can change over time. For a repeatable CI setup, pin and review the package version and GitHub Action versions you use; version pinning is a maintenance choice, not a guarantee made by the quick-start snippet.
Rank #2
- Includes Raspberry Pi 5 16GB with 2.4Ghz 64-bit quad-core CPU (16GB RAM)
- Includes 128GB Micro SD Card pre-loaded with 64-bit Raspberry Pi OS, USB MicroSD Card Reader
- CanaKit Turbine Black Case for the Raspberry Pi 5
- CanaKit Low Noise Bearing System Fan
- Mega Heat Sink - Black Anodized
Navigate and capture a screenshot
After the client connects to the server, it can use browser navigation and call the browser_take_screenshot tool. The tool supports a filename, image type, full-page capture, and scale. If you omit a filename, it saves an automatically named file in the configured output directory. For artifact uploads, choose a predictable output directory and filename in the client’s tool call, then verify that the file exists at that path before uploading it.
- Start the MCP client: Configure it to launch or connect to the Playwright MCP server with headless mode enabled.
- Navigate: Use the client to call the browser navigation tool for the target URL.
- Capture: Call
browser_take_screenshot, setting the output filename and any needed image type, full-page option, or scale. - Check the output: Confirm the expected screenshot was written to the directory that the workflow will upload.
The exact client invocation depends on the MCP client or script you choose. Do not treat the server configuration JSON by itself as an executable screenshot command: it defines how a client can launch the server, while the client performs the browser calls.
Rank #3
- CanaKit Raspberry Pi 5 Essentials Starter Kit
Upload the screenshot as a workflow artifact
Files on a GitHub-hosted runner do not remain available after the job ends unless you preserve them. Use actions/upload-artifact with a path that matches the screenshot directory and a clear artifact name. GitHub documents uploading files or directories, downloading artifacts later, and configuring retention within the limits set for the repository, organization, or enterprise (GitHub Actions artifacts documentation).
- name: Upload screenshots
uses: actions/upload-artifact@v4
with:
name: website-screenshots
path: screenshots/
This is the upload step; it assumes the MCP client has already saved the screenshot under screenshots/. Set a retention period if you need something other than the repository’s default, while respecting the applicable repository or organization limits.
Rank #4
- All-in-One Complete Kit: This SANOOV RPi 5 bundle comes with Raspberry Pi 5 4GB RAM single board, active cooler, durable ABS case and screwdriver. No extra parts needed, ready to use right out of the box for beginners and hobbyists
- Powerful Single Board Computer: Equipped with 4GB RAM and high-performance processor, delivers fast running speed for 4K playback, AI projects, programming and daily computing tasks. SANOOV for raspberry pi 5 4GB is equipped with broadcom 64 quad-core Arm Cortex A76 processor with gigabit ethernet and upgraded with IEEE 802.11ac Wi-Fi, Bluetooth 5.0 dual-band 2.4Ghz and 5Ghz and Power Over Ethernet (POE). Upgrading delivers 2-3 x speed vs Pi 4, redefining the experience
- Efficient Active Cooler: Effectively lowers operating temperature and prevents performance throttling. Runs quietly even under long-time heavy load, ensures stable operation all day long. SANOOV RPi 5 4GB kit offer an active cooler, which combines an aluminium heatsink with a high-performance PWM fan. Active cooler is fully compatible with the Pi OS, which can effectively reduce the temperature of RPi5 and ensure its good performance during long-term high load operation
- Sturdy ABS Protective Case: Well-fitted for Raspberry Pi 5 board, can be secured with 4 screws to effectively protect the Pi 5 motherboard from damage, reserves full access to all ports and buttons. SANOOV uses ABS material to produce the case, which has a softer texture and feel. Meanwhile, SANOOV case adopts a layered design for easy disassembly and installation. (Tip: The Case cannot install M.2 HAT Add on Board and Solid State Drive!)
- Wide Application & Full Compatibility: Seamlessly compatible with official OS and mainstream peripheral accessories for Raspberry Pi 5. Whether you are a beginner, student, electronics hobbyist or professional developer, this all-in-one kit meets your diverse needs. It excels in IoT projects, robotics design, retro gaming devices, home media servers and other DIY creations. Backed by a large global community, you can easily find guides, technical support and shared projects online
Keep token permissions narrow
A screenshot-only job generally does not need broad repository write access. Set GITHUB_TOKEN permissions at the workflow or job level to only the scopes the job actually uses. When you specify any permissions, GitHub sets omitted scopes to none. GitHub also documents that workflows triggered by pull requests from forks ordinarily have write permissions reduced to read-only (GitHub token authentication documentation).
This matters if the workflow runs on contributed code: avoid relying on write access that a forked pull-request run will not have, and do not grant write scopes simply to capture and upload an image.
Quick wins for a faster PC:
Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Clear out junk files and repair common Windows errorsFree Scan →Best Value
- 【What you Get】You will get 1*Pi 5 8GB Single Board,1*RasTech Case,1*Active Cooler,1*Screwdriver,1*Installation instructions,12-month free warranty, lifetime service, 24-hour prompt and friendly response.
- 【More Connectors】There are two USB 3.0 ports(5Gbps simultaneously) and two USB 2.0 ports, which triple total bandwidth ,support any combination of up to two cameras or displays. Peak SD card performance is doubled through support for the SDR104 high-speed mode. It provides a smooth desktop experience for you. Offer Gigabit Ethernet and a PCIe interface, along with dual-band Wi-Fi and Bluetooth 5.0/BLE wireless capability. The RasTech Pi 5 Kit use the new 27W 5.1V 5A USB-C power connector.
- 【 Support Dual 4Kp60 Display 】Each of the two microHDMI sockets can control a 4K display at 60 Hertz, now support HDR, offering super HD video for media streaming projects. RPi 5 is the first RPi model that comes with a PCI Express port (PCIe 2.0 x1 with 500 MB/s) to attach SSDs (requires separate M.2 HAT).
- 【 Excellent Chips And Applications】Pi 5 is a full-size Pi computer using silicon built in-house at Pi. The RP1 “southbridge” provides the bulk of the I/O capabilities for Pi 5. Pi 5 is more friendly and convenient in the development of Internet of Things, Web development, machine identification, automatic control and other electronic equipment applications and network.
- 【 Faster CPU, Better GPU 】 Pi 5 features a Broadcom BCM2712 64-bit quad-core Arm Cortex-A76 processor running at 2.4GHz, it delivers a 2–3× increase in CPU performance relative to RaspberryPi 4. The 800MHz VideoCore VII GPU is compatible to OpenGL ES 3.1 and Vulkan 1.2, substantial uplift in graphics performance. Pi 5 Offers lightning-fast CPU speed, a PCI Express interface, a Real Time Clock (RTC) and a power button and runs significantly cooler than Pi 4.
Choose MCP or direct Playwright
| Approach | Best fit | What the workflow must do |
|---|---|---|
| MCP client plus Playwright MCP | You need an agent or another MCP client to use browser tools. | Configure a client, manage the server lifecycle, invoke navigation and screenshot tools, and save output to a known path. |
| Direct Playwright in CI | The job only needs browser automation and screenshot output, with no MCP interoperability requirement. | Install project dependencies and browser binaries, run your Playwright code or tests, and upload the resulting files or report. |
Playwright’s CI guide demonstrates the direct route: install dependencies with npm ci, install browsers with npx playwright install --with-deps, run the test command, and archive the report (Playwright CI documentation). That example is a direct Playwright CI workflow; its test command does not invoke the MCP server.
Troubleshoot common failures
- The workflow starts a server but creates no screenshot: A server exposes tools; an MCP client still needs to connect and call navigation and
browser_take_screenshot. Add or configure a client invocation. - The browser cannot open in CI: Check that the MCP server is launched with
--headless, since its documented default is headed mode. - The upload step says no files were found: Compare the screenshot tool’s output directory and filename with the artifact step’s
path. Use a deterministic location and verify the file exists before upload. - The first browser launch fails or takes a different path than expected: The browser downloads on first use. Allow for that setup in the job and check that the runner can complete the browser installation.
- The workflow behaves differently after an update: If configuration follows
@latestor unpinned action versions, review and pin versions where reproducibility matters. - A pull-request job cannot write to the repository: Fork pull-request workflows ordinarily have read-only token permissions. A screenshot job should generally upload an artifact rather than depend on repository write access.
Or skip the browser setup
If you want a screenshot without setting up a browser and MCP client in the workflow, ScreenshotNeo provides a website screenshot API and MCP server. Its API accepts one GET request for a URL and returns an image or PDF. Cookie and consent banners, newsletter popups, and chat widgets are removed before capture; bot checks, blank pages, failed loads, timeouts, and cache hits are not billed. Its MCP server lets AI agents use screenshot tools, and the free plan includes 1,000 screenshots a month without a card; paid plans start at $5 for 3,000 shots. See the ScreenshotNeo website and API documentation.
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
Sign up for ScreenshotNeo’s free plan: 1,000 screenshots a month, no card required.
Frequently Asked Questions
Does Playwright MCP automatically upload screenshots to GitHub Actions?
No. The workflow needs an MCP client to call the screenshot tool, then a separate artifact-upload step to preserve the resulting file.
Free tools Windows power users keep installed
One-click scans. No signup required.
Can I use Playwright MCP without an MCP client?
The server exposes browser tools, but a client or other program must connect to it and invoke those tools.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

