Infy Mcp Playwright
FreeMaintainedMCP Playwright server for web app testing automation via HTTP API
About
MCP Playwright server for web app testing automation via HTTP API
README
MCP Playwright server for web app testing automation. Exposes an HTTP API to run Playwright tests (navigation, clicks, link checks, screenshots). This tool can be used for quick website validation, smoke testing, link validation, accessibility testing, performance checks, and basic SEO testing. It reduces the need to manually create a separate Playwright framework for every small testing requirement.
Install
npm install infy-mcp-playwright
Or install globally:
npm install -g infy-mcp-playwright
Start the server
Local project:
npm start
Global CLI:
infy-mcp-playwright
The server prints:
MCP Server Running on Port 3000
Set PORT to change the listen port (default: 3000). Set HEADLESS=false to open a visible browser window.
Health check
Verify the server is running without starting a browser test:
curl http://localhost:3000/health
Expected response:
{
"status": "ok",
"service": "infy-mcp-playwright"
}
Run a test request
curl -X POST http://localhost:3000/run-test \
-H "Content-Type: application/json" \
-d '{
"url": "https://perfectqaservices.com",
"checkLinks": {
"selector": "a"
}
}'
Request body options
| Field | Description |
|---|---|
url |
Page URL to open (required) |
steps |
Array of user actions to run after the page loads (see below) |
type |
{ selector, value } — fill an input (legacy single-step shortcut) |
press |
Keyboard key (e.g. "Enter") |
click |
{ selector } — click an element |
checkLinks |
{ selector } — visit each matching link and report status |
Multi-step actions
After the page loads, steps runs a real user flow. Each step is recorded in stepResults. If a step fails, the test stops and returns status: "failed" with the failed step.
action |
Fields | What it does |
|---|---|---|
click |
selector, optional timeout |
Click an element |
type / fill |
selector, value, optional timeout |
Clear and type into an input |
press |
key (or value), optional selector |
Press a keyboard key |
wait |
selector and/or timeout |
Wait for an element, or wait a number of ms |
assertText |
selector, text |
Fail if the element does not contain text |
screenshot |
optional name |
Save a full-page screenshot under artifacts/ |
curl -X POST http://localhost:3000/run-test \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com/login",
"steps": [
{ "action": "type", "selector": "#email", "value": "[email protected]" },
{ "action": "type", "selector": "#password", "value": "secret" },
{ "action": "click", "selector": "button[type=submit]" },
{ "action": "wait", "selector": ".dashboard", "timeout": 10000 },
{ "action": "assertText", "selector": "h1", "text": "Welcome" },
{ "action": "screenshot", "name": "after-login" }
]
}'
Programmatic API
const { runTest } = require('infy-mcp-playwright');
const result = await runTest({
url: 'https://example.com',
checkLinks: { selector: 'a' }
});
Enhanced checks and outputs
worker.js performs additional runtime checks and produces reports and artifacts automatically. Notable request options and outputs:
Request body options:
browser:chromium|firefox|webkit— choose the engine (default:chromium).headless:boolean— run with a visible browser whenfalse(default:true).mobile:boolean— emulateiPhone 13whentrue.darkMode:boolean— set page color scheme to dark whentrue.slowMo:number— slow motion in ms for Playwright (default:200).
Runtime checks performed: performance metrics (dns, tcp, ttfb, dom/load times), memory usage, empty-page detection, infinite-loader detection (common loader selectors), basic SEO extraction (title, meta description, h1, canonical), broken images, console errors, page JS errors, failed requests and network failures (status >= 400), slow API detection (>5s), and accessibility scans via
axe-core.Link checking: visits links matched by
checkLinks.selector(defaulta) with up to 3 retries, captures a screenshot per visited page, and marks each asPASSEDorFAILED.Artifacts & reports: saved under
artifacts/,videos/,json-reports/andreports/. The worker writes a JSON report (json-reports/report-<ts>.json) and an HTML report (reports/report-<ts>.html) and stores screenshots inartifacts/.Response object: the API returns a structured object containing
status,browser,loadTime,performanceMetrics,memoryUsage,seo,totalPages,passed,failed,brokenImages,consoleErrors,jsErrors,failedRequests,networkFailures,slowApis,accessibilityIssues,stepResults,checkedPages,aiSummary,htmlReport,jsonReport, andscreenshot(final screenshot path).
Example curl request using the new options:
curl -X POST http://localhost:3000/run-test \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com",
"browser": "firefox",
"headless": false,
"mobile": false,
"darkMode": true,
"slowMo": 100,
"checkLinks": { "selector": "a" }
}'
Publish to npm
- Log in:
npm login - Dry-run:
npm pack --dry-run - Publish:
npm publish
License
ISC
Install Infy Mcp Playwright in Claude Desktop, Claude Code & Cursor
unyly install infy-mcp-playwrightInstalls into Claude Desktop, Claude Code, Cursor & VS Code — handles npx, uvx and build-from-source repos for you.
First time? Get the CLI: curl -fsSL https://unyly.org/install | sh
Or configure manually
Run in your terminal:
claude mcp add infy-mcp-playwright -- npx -y infy-mcp-playwrightStep-by-step: how to install Infy Mcp Playwright
FAQ
Is Infy Mcp Playwright MCP free?
Yes, Infy Mcp Playwright MCP is free — one-click install via Unyly at no cost.
Does Infy Mcp Playwright need an API key?
No, Infy Mcp Playwright runs without API keys or environment variables.
Is Infy Mcp Playwright hosted or self-hosted?
Self-hosted: the server runs locally on your machine via the install command above.
How do I install Infy Mcp Playwright in Claude Desktop, Claude Code or Cursor?
Open Infy Mcp Playwright on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Changes
Versions and requested access over time.
- New version published
- New version published
- New version published
- New version published
- New version published
- New version published
- New version published
- New version published
Related MCPs
Playwright
Browser automation, scraping, screenshots
by MicrosoftPuppeteer
Browser automation and web scraping.
by modelcontextprotocolGarmin Connect
An MCP server for Garmin Connect that provides access to fitness activities, health statistics, and sleep data by routing requests through a headless browser to
by etweisbergHiggsfield Unlimited
MCP server for Higgsfield AI that enables unlimited-mode image, video, audio generation, uploads, and job management via multiple parallel accounts, using brows
by nukIeeropentabs-dev/opentabs
Plugin-based server and Chrome extension that gives AI agents access to web apps through your authenticated browser session, with a plugin SDK.
by opentabs-devhlydecker/ucsc-genome-mcp
Interact with the UCSC Genome Browser API to find genomes, chromosomes and more.
by hlydecker34892002/bilibili-mcp-js
Search Bilibili content, with LangChain integration examples.
by 34892002achiya-automation/safari-mcp
Native Safari browser automation without a Chrome dependency.
by achiya-automationagent-infra/mcp-server-browser
Browser automation using Puppeteer, supporting local and remote browser connections.
by bytedanceaparajithn/agent-scraper-mcp
Web scraping: clean content extraction, CSS-selector scraping, Playwright screenshots, link and metadata extraction, and Google search.
by aparajithnCompare Infy Mcp Playwright with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All browse MCPs
