Labsco
MCP SERVER

Periscope MCP

by segentic-lab

74 Playwright tools built for QA rather than browsing — assertions return a verdict, form filling is one call, and a whole site audits itself.

Automated Testing & QA
Summary
The tools encode the testing, which is the whole difference.

Raw browser control makes an agent reinvent the QA loop every session: click, screenshot, squint, decide. Here the decision is the return value — `assert_condition` gives a boolean and the value it read, and silent no-ops such as an ignored drag come back flagged instead of as fake success. `test_project` is the one to reach for first on an unfamiliar site, because it produces a saved report rather than a transcript. This is not a replacement for a general browsing server; it is what you connect when the job is finding and reporting defects.

What it is

An MCP server that gives an agent a browser shaped for testing. It drives headless Chrome through Playwright, but the tools are higher level than the browser API: assertions return pass or fail with the actual value, a form is filled in one call, and a site-wide crawl plus accessibility, SEO, visual and functionality checks is a single tool.

What you get
  • Hard verdicts instead of screenshots to interpret — `assert_condition` returns `passed` with the value it saw, and `assert_all` runs a batch without aborting on the first failure
  • Site-wide work in one call — `test_project` crawls and audits every page and saves a report; `test_url` covers a single page; `crawl_project` just discovers what exists
  • Persistent authenticated sessions, including form, basic and cookie auth, and a visible interactive login for 2FA, SSO or CAPTCHA that then continues headless
  • Multi-step flows through `interact_and_test`, which batches 25 step actions from click and fill through drag, upload and evaluate_js
  • Form work that does not take a call per field — `auto_fill_form` detects the fields, infers realistic data, and reports per-field failures
  • Debugging captured without setup — `get_console_errors`, `get_network_log`, `get_response_body` for the actual API body behind a 500, and `intercept_network` to mock a response and test the error state
  • Real measurements rather than proxies — `run_lighthouse` for genuine Lighthouse scores and `get_interaction_log` for INP measured from the interactions it drove
  • Audits a browser binding cannot give you — accessibility, SEO, colour contrast against WCAG, and a GEO check covering robots.txt AI-crawler access, llms.txt, WebMCP annotations and JSON-LD
  • State handling for tricky flows — `page_state` snapshots, restores and diffs; `select_page` adopts a popup as a drivable session; `select_iframe` steps inside a frame
  • `describe_tools` returns the whole catalog with workflows and tips, so an agent can orient itself without you pasting documentation
Requirements

Python 3.11 or higher, plus Playwright and Chromium. On Debian or Ubuntu the install script does the whole thing — prerequisites, virtual environment, dependencies, Chromium, a headless self-test — and writes an `mcp-config.json` with absolute paths for your machine; `--system-chromium` uses a browser you already have. On other platforms it prints the commands rather than changing anything. A Docker compose setup is included. The client points at `venv/bin/python server.py` over stdio. `run_lighthouse` additionally needs Node.js.

Setup effort

Build from source — clone the repository and build it, then point your client at the binary