Control a browser for web automation tasks using Playwright on Cloudflare Workers.
This project demonstrates how to use Playwright with Cloudflare Workers as a Model Control Protocol (MCP) server using Cloudflare Playwright MCP.
It enables AI assistants to control a browser through a set of tools, allowing them to perform web automation tasks like navigation, typing, clicking, and taking screenshots.
The server can be used with various AI platforms including Cloudflare AI Playground, Claude Desktop, and GitHub Copilot in VS Code.
Follow these steps to set up and deploy the project:
npm ci
npx wrangler deploy
Cloudflare playground AI is a great way to test MCP servers using LLM models available in Workers AI.
llama-3.3-70b-instruct-fp8-fast
https://[my-mcp-url].workers.dev/sse
You can now start to interact with the model, and it will run necessary tools to accomplish what was requested.
[!TIP] For best results, give simple instructions consisting of one single action, e. g., "Create a new todo entry", "Go to cloudflare site", "Take a screenshot"
Example of a conversation:
Role | Message |
---|---|
User | Go to demo.playwright.dev/todomvc |
Assistant | runs browser_navigate tool The page has been navigated to https://demo.playwright.dev/todomvc/. The page title is "React • TodoMVC". The page snapshot shows the content of the page, including a heading, a textbox, and several links. |
User | Create some todo entry |
Assistant | runs browser_type tool A new todo entry "Buy groceries" has been created. The page snapshot shows the updated content of the page, including the new todo entry. |
User | Nice. Now create a todo in parrot style |
Assistant | runs browser_type tool A new todo entry "Polly wants a cracker" has been created in parrot style. The page snapshot shows the updated content of the page, including the new todo entry. |
User | And create another todo in yoda style |
Assistant | runs browser_type tool A new todo entry "A walk, I must take" has been created in Yoda style. The page snapshot shows the updated content of the page, including the new todo entry. |
User | Take a screenshot |
Assistant | runs browser_take_screenshot tool ![]() |
User | Now click the checkbox of the parrot todo entry |
Assistant | runs browser_clickt tool The checkbox of the parrot todo entry "Polly wants a cracker" has been clicked. The page snapshot shows the updated content of the page, with the checkbox now checked. |
User | Take a screenshot |
Assistant | runs browser_take_screenshot tool ![]() |
User | Remove completed todo entries |
Assistant | runs browser_clickt tool The "Clear completed" button has been clicked. The page snapshot shows the updated content of the page, with the completed todo entry "Polly wants a cracker" removed. |
User | Take a final screenshot |
Assistant | runs browser_take_screenshot tool ![]() |
As of now, Claude Desktop only supports local MCP servers. To use playground-mcp
with Claude Desktop we make use of mcp-remote, a tool that proxies remote MCP servers and exposes them locally. Use the following configuration:
mcpServers
section:{
"mcpServers": {
"cloudflare-playwright-mcp": {
"command": "npx",
"args": [
"mcp-remote",
"https://[my-mcp-url].workers.dev/sse"
]
}
}
}
This setup ensures that Claude Desktop can communicate with the Cloudflare Playwright MCP server.
Here's an example of a session opening the TODO demo app, adding "buy lemons" and doing a screenshot, taking advantage of playwright-mcp tools and Browser Rendering:
You can install the Playwright MCP server using the VS Code CLI:
# For VS Code
code --add-mcp '{"name":"cloudflare-playwright","type":"sse","url":"https://[my-mcp-url].workers.dev/sse"}'
# For VS Code Insiders
code-insiders --add-mcp '{"name":"cloudflare-playwright","type":"sse","url":"https://[my-mcp-url].workers.dev/sse"}'
After installation, the Playwright MCP server will be available for use with your GitHub Copilot agent in VS Code.
Fetch YouTube subtitles
Download video and audio from various platforms like YouTube, Facebook, and TikTok using yt-dlp.
A MCP server to retrieve up-to-date jobs from company career sites.
Playwright MCP server
Discover, extract, and interact with the web - one interface powering automated access across the public internet.
Enable AI agents to get structured data from unstructured web with AgentQL.
A server for browser automation using Google Chrome, based on the MCP framework.
Easy web data access. Simplified retrieval of information from websites and online sources.
Access YouTube video transcripts and translations using the YouTube Translate API.
Fetches and caches daily articles from GeekNews using web scraping.