Skip to main content
Glama
525,695 tools. Updated 2026-09-06 22:41

"playwright" matching MCP tools:

  • Full Schedule Health Dashboard HTML report — DCMA-14 + CPLI + BEI + variance/slip register against the baseline. Wraps the CPP Schedule Health Review skill, which produces a self-contained ~1.3 MB HTML dashboard. The dashboard renders DCMA metrics, charts, baseline-vs-current variance, slip register, GAO/AACE compliance bands, and a reproducibility manifest. Baseline XER is OPTIONAL as of Round 7 (Fix MCP-8). When omitted, the tool runs in "degraded mode": the current XER is used as its own baseline for a synthetic 0-variance run. The result carries ``degraded_mode: true`` and ``degraded_mode_reason`` explaining that BEI / variance / slip register KPIs are NOT meaningful in this mode. Supply baseline_xer_path or baseline_xer_content to get the real two-XER variance dashboard. REQUIRES Node + Playwright on the server (the dashboard renders via headless Chromium). The tool returns a clear error if either prerequisite is missing. Use this tool when you need the formal HTML deliverable. Do NOT treat ``critical_path_validator`` as a JSON view of this tool. It runs a SECOND, independent DCMA-14 implementation (``critical-path-validator/scripts/dcma14.py``) with its own criterion numbering, its own activity-eligibility rules and its own CPLI definition. Measured across the real-export corpus on 2026-08-25, the two engines return different verdicts on individual criteria for the same XER, and on some criteria they differ by construction on every file. Two separate DCMA-14 implementations, neither derived from the other. Cite one engine per matter and name which. If what you wanted was the JSON shape of THESE numbers, it is already in this tool's own return: ``dcma_14``, ``metrics`` and ``headline`` are extracted verbatim from the HTML this call produced, so they cannot disagree with the deliverable the client is reading. === HOW TO PASS THE XER FILES === For each XER (current, baseline) you supply EXACTLY ONE of: - ``*_xer_path`` — filesystem path on the server. Use this when the MCP server runs locally and the file is already accessible to it. - ``*_xer_content`` — full text of the XER file as a string. Use this when calling a HOSTED MCP server from your local Claude — the server has no access to your local filesystem, so you must send the content over the wire. The server writes it to a tempfile, runs the pipeline, and cleans up afterward. If both are supplied for the same XER, content wins (the path is ignored). If neither is supplied, the call returns an error. Args: current_xer_path: server-side path to the current XER. baseline_xer_path: server-side path to the baseline XER. current_xer_content: full text of the current XER (alternative). baseline_xer_content: full text of the baseline XER (alternative). output_path: optional output HTML path. Ignored when content is supplied (output goes to a tempdir alongside). timeout_seconds: per-step Playwright timeout (default 120s). debug: pipe Playwright stderr / browser console to stderr. return_html_inline: when True (default), the generated HTML is read off disk and returned as ``html_content`` in the response. Required for hosted/remote use; set False to save bandwidth when calling a local server where you can open ``html_path`` directly. Returns: { "ok": True, "html_path": "absolute path on the server", "html_content": "<!DOCTYPE html>..." (when return_html_inline), "current_xer": "...", "baseline_xer": "...", # ── Deliverable headline — the SAME figures the HTML # renders in its header / gauge / DCMA footer # ("GRADE C · 69% · YELLOW"). Extracted verbatim from the # dashboard's embedded payload; NOT recomputed here. These # are the authoritative grade for citing the deliverable. "grade": "C", # letter grade A-F (or None) "health_score": 69, # gauge percent = round(PASS/SCORED*100) "status_band": "YELLOW", # GREEN | YELLOW | RED "headline": { # full block (None if absent) "grade": "C", "grade_label": "Acceptable", "health_score": 69, "health_score_exact": 68.75, "status_band": "YELLOW", "passed": int, "failed": int, "scored": int, "not_scored": int, "basis": "health_score = round(passed / scored * 100); " "scored excludes not-scored criteria", }, # NOTE: result["health_score"] (the gauge percent) and # dcma_14.summary.pass_rate are now the SAME ratio on the # SAME basis — PASS / SCORED, where SCORED excludes the # unscored (status "NONE" / pass:null) criteria. So # round(dcma_14.summary.pass_rate * 100) == health_score # (e.g. 0.692 → 69), matching the HTML "69% compliance". # (Before 2026-06-28 pass_rate divided by total-criteria — # 9/14 = 0.643 — and silently contradicted the 9/13 = 69% # dashboard; that is the report-safety bug this fixed.) Cite # `health_score` / `grade` / `status_band` for the headline; # use dcma_14.summary for the raw criterion tallies. "dcma_14": { # ← sibling of html_content; # same dict SHAPE as # critical_path_validator's block. # The VALUES are this engine's and # are not interchangeable with that # tool's — see the note above. "criteria": {1: {...}, 2: {...}, ...}, # Each criterion carries `scored` (bool) and a TRI-STATE # `pass`: # "scored": True/False — did the dashboard reach a # PASS/FAIL/WARN verdict? False means the criterion # was NOT evaluated (e.g. C10 Resources when the # TASKRSRC section is absent; status "NONE"). # "pass": True — scored and PASSED # "pass": False — scored and FAILED/WARNED # "pass": null — NOT scored (no verdict). null is # distinct from false: to count failed criteria, # filter pass == False (or scored == True and not # pass), NOT pass != True — an unscored criterion is # not a failure. `summary.fail` already excludes it. # `scored` = pass + fail + warn (the dashboard's # denominator); `pass_rate` = pass / scored, NOT # pass / total. `unscored` (status NONE) is excluded from # `scored`. In degraded mode `not_applicable` counts the # baseline-dependent criteria excluded from the score and # `degraded: true` + `degraded_note` are stamped inline. "summary": {"total": int, "scored": int, "pass": int, "fail": int, "warn": int, "unscored": int, "pass_rate": float | None}, }, "metrics": { # ← DEPRECATED — alias for dcma_14 # DEPRECATED. Identical payload to `dcma_14`. Retained # for backward-compat with clients written against the # pre-Round-4 schema. New code should read `dcma_14`. # The `deprecated_alias_for` key is set on every # response to make migration explicit. This key may be # removed in a future major version. "deprecated_alias_for": "dcma_14", "criteria": {1: {...}, 2: {...}, ...}, "summary": { # identical payload to dcma_14.summary "total": int, "scored": int, "pass": int, "fail": int, "warn": int, "unscored": int, "pass_rate": float | None, }, } } On error: {"error": "..."} Note: the inline HTML payload can be ~1.3 MB. Some MCP transport stacks have request/response size limits (typically 5-20 MB). For very large XERs / very long dashboards, this may fail at the transport layer; in that case set ``return_html_inline=False`` and arrange to fetch the file from ``html_path`` separately.
    ConnectorNo auth
  • Get the Designesy WCAG 2.2 AA accessibility verification framework: 11 conformance checks (a01-a11) plus a ready-to-run Playwright + axe-core 4.13.0 script template targeting your URL. Use this to audit a site for accessibility violations. When NOT to use: for a full design-contract score (not just a11y), use designesy_score. Does NOT run the scan — axe-core needs a real browser DOM. Returns the 11 checks + a Playwright script you execute locally (npm i -D @axe-core/playwright). The score comes from your local run, not from this tool. Returns JSON: { checks[{id (a01–a11), name, status: "PENDING_EXECUTION"}], playwright_script, install_command, run_command }. Pass config (JSON string) to customize axe.configure() — e.g. branding overrides, rule disables. Omit for standard WCAG 2.2 AA.
    ConnectorNo auth
  • Give any agent hands. Pass a URL + natural-language instruction → x711 executes it: fills and submits forms, follows links, extracts structured data (tables, lists, prices). No Playwright. No Puppeteer. No browser setup. Together with x711_agent_see this is a full browser in two tool calls — agents that can see + act can navigate the entire internet autonomously. Instruction examples: 'fill the email field with user@example.com and submit', 'extract all product prices', 'follow the login link and return the page'. Returns: { action_performed, result, page_status }. JS SPA warning included if detected. Cost: $0.05. Requires API key.
    Connector
    Destructive
    No auth
  • Give any agent eyes. Pass any public URL → get back a structured intelligence report: page title, meta tags, all headings (H1–H6), full body text, every form mapped with fields and input types, all links, images, and pattern detection (prices, emails, dates). Anomaly flags included: JS-heavy SPA, Cloudflare challenge, CAPTCHA, access restrictions. One tool call turns a blind agent into one that can observe anything on the internet. No Playwright config. No browser infra to spin up. x711 is the browser — agent never touches it. Returns: { title, meta, headings, body_text, links, forms, images, detected: {prices, emails, dates}, anomalies, note }. Cost: $0.03. Pair with x711_agent_act to complete the full browser loop.
    ConnectorNo auth
  • Give any agent eyes. Pass any public URL → get back a structured intelligence report: page title, meta tags, all headings (H1–H6), full body text, every form mapped with fields and input types, all links, images, and pattern detection (prices, emails, dates). Anomaly flags included: JS-heavy SPA, Cloudflare challenge, CAPTCHA, access restrictions. One tool call turns a blind agent into one that can observe anything on the internet. No Playwright config. No browser infra to spin up. x711 is the browser — agent never touches it. Returns: { title, meta, headings, body_text, links, forms, images, detected: {prices, emails, dates}, anomalies, note }. Cost: $0.03. Pair with x711_agent_act to complete the full browser loop.
    ConnectorNo auth

Matching MCP Servers

  • A
    license
    A
    quality
    Not graded
    maintenance
    Enables browser automation through Playwright using accessibility tree snapshots instead of screenshots. Supports web scraping, form interactions, testing, and connecting to existing browser sessions with logged-in accounts.
    22
    23
    9,320
    5
    -
  • F
    license
    B
    quality
    D
    maintenance
    Playwright MCP server enables AI-driven Playwright test generation by allowing interaction with web pages and element inspection. Integrated with IDEs like Cursor, it provides real-time context to enhance test accuracy and efficiency.
    5
    9,320
    32
    -

Matching MCP Connectors

  • Give any agent hands. Pass a URL + natural-language instruction → x711 executes it: fills and submits forms, follows links, extracts structured data (tables, lists, prices). No Playwright. No Puppeteer. No browser setup. Together with x711_agent_see this is a full browser in two tool calls — agents that can see + act can navigate the entire internet autonomously. Instruction examples: 'fill the email field with user@example.com and submit', 'extract all product prices', 'follow the login link and return the page'. Returns: { action_performed, result, page_status }. JS SPA warning included if detected. Cost: $0.05. Requires API key.
    Connector
    Destructive
    No auth
  • Use this when you need to LOOK at a kernelCAD model — render its script to deterministic PNG views for visual self-check (the visual half of the evaluate → render → inspect → fix loop), with NO studio or dev server required. Pass { code } (inline source) or { file } (a .kcad.ts path), exactly one. Renders the canonical engineering views (front, right, top, iso — pass { views } for a subset, e.g. ["iso"] for fastest iteration) plus an optional { pose: "<az>,<el>" } arbitrary camera angle (degrees; az=0,el=0 is front, +az rotates CCW around +Z, +el lifts the camera). NO STUDIO / DEV-SERVER REQUIRED: a prebuilt static player (dist/headless-player) is served from an ephemeral local port automatically; a running studio dev server is used as fallback, and { base_url } forces one. The only environment dependency is playwright chromium (npx playwright install chromium). Pass { focus } or { hide } (arrays of feature ids or assembly part names, mutually exclusive) to isolate parts — same semantics as `kernelcad render --focus/--hide`. PNGs are written to { out_dir } (default: a fresh temp session directory) and returned as absolute paths with per-view camera descriptions (kernelCAD is Z-up). Mechanism truth runs first, same protocol as `kernelcad render`: a broken mechanism still renders but every tile is watermarked MECHANISM BROKEN (KERNELCAD_RENDER_STRICT=1 refuses instead); read { mechanism, mechanism_failure_codes }. The probe runs full BREP interference sweeps and can dominate latency on large assemblies — pass { no_mechanism_check: true } for fast iteration (the preview then reports mechanism: "unverified"; ignored under strict mode). Returns { ok, images: [{ name, path, description }], out_dir, bounds, mechanism, render_source, render_ms, diagnostics }. PATHS ARE LOCAL to the machine running the MCP server — local stdio clients read them directly; hosted/remote clients should use open_in_studio instead.
    ConnectorNo auth
  • Start a load test against a target. Max 100 concurrent connections, max 5 min duration, 1 test at a time per target, 60s cooldown between tests. Modes: HTTP_FLOOD (autocannon), BROWSER_USERS (Playwright), COMBINED (both). OWNER/ADMIN only.
    ConnectorNo auth
  • Get the full directory entry for one MCP server by id ('owner--repo', e.g. 'microsoft--playwright-mcp'). Includes install hint, license, stars, category, and editorial fields. Any install_hint is a best-effort guess from the repository language, not a verified command: relay the install_hint_caveat with it rather than presenting it as ready to run.
    ConnectorNo auth
  • Scrape a URL then use AI to extract structured JSON data matching your schema description. Combines Playwright scraping with Grok LLM extraction.
    ConnectorNo auth
  • Create a custom browser test flow for a target. Steps are executed sequentially in a Playwright browser. Supports actions: navigate, click, type, fill, select, assert, wait, screenshot, scroll, hover, use_fragment. Variables like {{LOGIN_EMAIL}} are resolved from the target secrets vault.
    ConnectorNo auth