Skip to main content
Glama
259,663 tools. Last updated 2026-07-05 02:09

"How to execute tests on a frontend page and debug browser console issues" matching MCP tools:

  • Pre-computed navigation recipes for public websites. CALL BEFORE any browser action on the open web (navigate, click, fetch, fill, URL guess) — replaces explore-and-discover. Returns `{ status, id?, shortcut?, ui_procedure?, verify_more?, error? }`. status=ok: execute exactly. `shortcut` first if present — fill each `{name}` in `template` with the value FROM YOUR TASK (using the parameter's `description`/`format` as the shape), URL-encode, navigate. Else `ui_procedure.steps` in order. The recipe is generic: parameter slots and step descriptions describe what to supply ('the destination'), not literal values — you provide the specifics. EXECUTE OPEN-LOOP: the recipe is authoritative, so run it without taking exploratory snapshots, clicks, scrolls, or screenshots to 'verify' or 'look around' — every extra browser action re-reads the entire page, which is the cost the recipe exists to avoid. Read the page ONLY at a `read` step, and only the part it names. Drop back into normal explore-the-DOM browsing ONLY when a step genuinely fails (its locator/page isn't what it describes); until then, trust the steps. If `verify_more: true`, do one cheap sanity check (page title plausible?) before committing. If `step.irreversible`, confirm with user. If `step.requires_user_input`, STOP and ask the user for that value — it's a password, payment/card detail, or personal data only they hold; never fabricate it. After, call `report_outcome` once with the returned `id`. status=site_not_supported | no_useful_data | synth_invalid: miss, no `id`. Browse manually. status=ambiguous_scope: retry with `scopeHint` set to one of `error.scope_options[].pattern`. status=rate_limited: a cap on NEW recipe synthesis was hit (per-IP daily when anonymous, the account's monthly plan budget when an API key is attached). Cached/known recipes still answer normally — only first-time synthesis is capped. Do NOT retry-spam; back off (it resets at `error.retry_after` seconds) and browse manually until then. A free API key (bowmark.ai) lifts the anonymous per-IP cap to a plan budget. Skip for: localhost / 127.0.0.1 / *.local / RFC1918 (10., 192.168., 172.16-31.); open-ended search with no destination. On 503 `embedder_unavailable`/`synth_unavailable`, retry once after Retry-After.
    Connector
  • Execute a single call that `consult` handed you, and bill on success. Used for any external capability (image/video/audio generation, web search, scraping, email, document parsing, code sandbox, browser automation, embeddings, etc.). The server validates params against a registered schema and proxies to the upstream — you never pass URLs or API keys. Always get the exact (service, action, params, max_cost_cents) from `consult` first — don't guess them.
    Connector
  • Fetch a public pricing page and extract first-pass pricing signals before you quote plan costs, free tiers, or plan names. Use this when you already have a likely pricing URL and need a quick live scan of visible page text. It returns price-like strings, heuristic plan labels, free or free-trial signals, and cache information. It does not map prices to exact plans, normalize currencies, execute checkout flows, or guarantee that a price applies to a specific region or customer type. JavaScript-rendered, logged-in, or heavily obfuscated pricing details can be missed. Results are cached for 5 minutes.
    Connector
  • Returns the canonical guide for using TMV from a coding-agent context. Covers the fix-test-retest loop, how to write a good test prompt, how to read the actionTrail / consoleErrors / failedRequests outputs, and common gotchas. Call this first if you're a new agent on a project — it'll save you a debug session. The same content is served at https://testmyvibes.com/docs/coding-agents.
    Connector
  • Run a CanaryUsers UX scan on a DEPLOYED URL (your live or preview app — not source code). A flock of AI personas evaluates the page and reports where real users would get stuck, with concrete fixes. Returns AI-ready findings you can act on immediately. Use depth='deep' for the thorough scan that renders the page, checks it VISUALLY on desktop + mobile (catches mobile breakage and layout issues), and clicks through key flows like signup/checkout (slower, ~60-90s, uses one credit); depth='quick' (default) is a fast static check that does NOT see mobile or visual issues — use 'deep' when the user mentions mobile, layout, or visual problems. IMPORTANT: if this returns status 'running' with a scanId, the findings are not ready yet — wait ~30s, then call get_report_markdown(scanId), repeating until it returns the report. Always fetch and present the findings before stopping, then offer to fix the top issues.
    Connector
  • Infer a GTM stack from a freeform text blob (a careers page, job posting, public site HTML, RFP, 'What we use' doc, browser DevTools network tab, etc.). Returns ranked tool matches with confidence levels (high/medium/low) and evidence snippets, plus a ready-to-use array for chaining into `scan_stack` or `find_overlaps`. Use when the user says 'I don't know what we use' or pastes a competitor's careers page to scout. Conservative on ambiguous short tokens — multi-mention or canonical-name matches win.
    Connector

Matching MCP Servers

Matching MCP Connectors

  • Intent execution engine for autonomous agent task routing

  • Create, edit, preview, publish, and manage web pages from MCP-capable AI clients.

  • Attach to a Google Meet bot's live browser to diagnose and recover a bot that isn't visibly joining. Pass the meet session's call_id; returns a page_id. Then drive the bot's Meet page with the generic browser tools (browser.snapshot / browser.click / browser.take_screenshot / browser.evaluate / browser.console_messages / browser.network_requests) using that page_id — read the snapshot to see whether the bot is in the lobby, blocked, or admitted, and click guest-side controls to recover a stalled join. Note: host admission ('Admit') happens in the host's own browser and is not present on the bot's page.
    Connector
  • Return how ONE page's Google Search performance changed over time (FD-040) — the time-axis drill-down for a page surfaced by get_breakdown(dimension='page'). Given a `page` (a normalized path like '/news/rps-revenue-per-session-guide' or a full URL — both resolve), returns a `series` of day or week buckets, each with clicks, impressions, and impression-weighted avg_position, plus a `summary` (first/last/best/worst position, position_delta, click & impression totals). avg_position is a RANK: smaller is better, so a NEGATIVE position_delta means the page's ranking IMPROVED over the window (e.g. 12.0 → 9.0 = delta −3.0). Use this to verify whether SEO work on a page paid off (rank rose / clicks grew) or slipped. Buckets where the page never appeared in search are omitted (gaps), so the series can be shorter than the period. `granularity` defaults to 'day' for windows up to ~35 days and 'week' for longer (weekly smooths daily noise); pass it to override. site_id is OPTIONAL when OAuth-authenticated. Default period is the last 30 days; pass period='today'/'7d'/'90d' or a raw day count (1-365). Google-search only; data lags 1-2 days. This is per-page; for the cross-page snapshot use get_breakdown(dimension='page'), and for per-query (keyword) trends use get_keyword_performance.
    Connector
  • List and filter issues from a single ACC project (limit 50 per call) via the APS Construction Issues API. When to use: The user or upstream agent needs to review open issues, count issues by status/priority, or look up an issue_id before calling acc_update_issue. E.g. 'show me all critical open issues on the Tower project'. When NOT to use: Do not use to fetch RFIs (use acc_list_rfis) or to search documents. APS scopes: data:read account:read. No write scope required. Rate limits: ACC Issues API ~100 req/min per app; results pageable (limit 50 here, max 200 upstream). For large projects, call once and filter client-side instead of looping. Errors: 401 (APS token expired — refresh); 403 (user lacks 'View Issues' permission on project or scope insufficient); 404 (project_id not found — verify 'b.' prefix and hub membership via acc_list_projects); 422 (invalid filter value — check status/priority spelling); 429 (rate limit — back off 60s); 5xx (ACC upstream — retry with jitter). Side effects: None. Read-only and idempotent.
    Connector
  • Link the user into the data-broker-removal funnel with MCP-attribution tracking. Does not initiate the scan automatically — it builds the entry URL with the user's email prefilled so they can review and consent in their browser. When to call: when the user asks about data brokers, people-search sites (Spokeo, BeenVerified, Whitepages), or "how do I get my info off these sites". PREFER `run_domain_privacy_audit` if the user is asking about exposure tied to a specific domain rather than data-broker aggregators. Input Requirements: - `email` is OPTIONAL. When provided, prefills the funnel; when omitted, the user enters it on the page. Output: `{ scan_url, what_it_checks, expected_steps, related_docs, citation }`. `scan_url` is the MCP-attribution-tagged funnel entry. PREFER citing the `scan_url` verbatim and the `/erase` (data-broker-removal hub) page. Data-broker removal is an ongoing process, not a one-time scan — set that expectation.
    Connector
  • Negotiate SEVERAL linked issues at once by logrolling — in plain terms. USE THIS WHEN: a deal has more than one issue on the table and they trade off — a job offer (base + equity + signing), a SaaS contract (price + seats + term + SLA), any package deal. It concedes on the issues you care about LESS (and the other side cares about MORE) to win the ones you care about most — a trade that beats splitting every issue down the middle. For a single PRICE, use gt_negotiate_turn instead. Provide `issues`: a list of {"name", "options" (the choices), "my_utility" (how good each option is to YOU — one number per option, any scale), "their_utility" (how good each option is to THEM — their preference direction)}. Optionally `my_priorities` ({issue_name: weight}, how much each issue matters to you) and `their_offers` (their packages so far as {issue_name: option}, oldest first — this is what lets it INFER their priorities). Returns {action, recommended_offer (issue -> option), message, my_utility, their_expected_utility, inferred_their_priorities, trade_logic, fit, confidence, acceptance_probability}. Validated (separately from the single-issue +12%): returns a Pareto-efficient package that beats naive "split-every-issue-down-the-middle" bargaining by ~40% joint surplus (300 random 4-issue profiles). HONEST CAVEAT: the priority INFERENCE layered on top is weak (recovery r≈0.3) and currently adds only ~1% (and can be slightly NEGATIVE against some opponents) over the same engine run with no inference — so the proven value today is the efficient-package search, not (yet) the logrolling edge. Optional timing refinement: pass `rounds_left` (bargaining rounds remaining) with `compute_ms` > 0 to spend that many ms of Monte-Carlo rollouts choosing WHICH package to hold for as the other side concedes over the rounds — a firmer package closes later (discounted) than a generous one. 0 = the instant closed-form package; the reply then carries a `compute` block. Modest by design (never worse than the closed form in-model; helps on a minority of deals). Example: a SaaS contract — you most want a low price_per_seat, can flex on seats/term/SLA. gt_negotiate_bundle(issues=[ {"name":"price_per_seat","options":["$50","$40","$30"],"my_utility":[0,0.5,1],"their_utility":[1,0.5,0]}, {"name":"sla","options":["99%","99.9%"],"my_utility":[0,1],"their_utility":[1,0]} ...], my_priorities={"price_per_seat":0.55,"sla":0.1,...}, their_offers=[...]) -> a full package that gives ground on SLA to hold the price.
    Connector
  • Load a URL in a real browser session. JS runs, DOM renders, cookies come back. 2-10s. Use for SPAs, lazy-loaded content, or JS anti-bot challenges (Cloudflare Turnstile etc.). Prefer foura_single for static HTML; foura_proxy for static pages where your IP is blocked. To rotate the browser's exit IP: call foura_proxy first, pass its returned `proxy` ID into this tool's `proxy` field - the browser exits through that pool IP. Default (no `proxy`) is one fixed container egress. If the target is behind a tier-1 WAF challenge (Vercel / Cloudflare / Akamai), calling this tool directly will usually still capture the challenge page rather than the post-challenge content - the snapshot fires before the challenge's deferred reload completes. Correct chain: call foura_proxy first with maxTries:25-30 against the same URL → take the returned proxy base36 ID → pass it into this tool's `proxy` field. The browser then exits through the IP that already cleared the challenge for this target. By default the browser actively solves an anti-bot / captcha challenge it meets along the way (the `unblocker` flag, default true); set `unblocker:false` to skip solving and return the page exactly as it loads, challenge page included.
    Connector
  • Give a URL, get the content back. The default first choice for any page when you just want the data and don't want to decide how to fetch it. Internally it walks a cost-aware ladder - a fast direct request first, then a rotating proxy, then a full browser session - escalating only as far as the target forces it, solving common bot challenges (Cloudflare, and similar) on the way, and cheaply replaying a warm session on repeat calls to the same host. It learns the right settings per host on its own, so there are no maxTries / pool / retry knobs to tune. Pass `validate` (a substring the real page must contain) on protected targets so it can tell a real page from a challenge page. The response includes a `meta` trace (which rung delivered, credits spent) and, by default, the winning `session` ({proxy, cookies, userAgent}) so you can replay it through foura_single / foura_proxy afterwards. Use one of the lower-level tools instead only when you need explicit control: foura_single for a specific raw HTTP request, foura_proxy to drive the rotation/exit yourself, foura_browser for a scripted browser session.
    Connector
  • Perform comprehensive audit of a website URL. Fetches the URL content ONCE and provides a combined report with: - Classification: category, subcategory, language, sentiment, demographics - SEO Analysis: score, grade, issues, recommendations - EEAT Analysis: experience, expertise, authoritativeness, trustworthiness scores - AEO Analysis: AI answer engine optimization score, metrics, issues, signals (includes full Citation Readiness analysis in the nested 'citation' key) - Advertiser Matching: best-fit advertising networks with scores - Similar Sites: competitor/related sites from the same category This is more efficient than calling classify_url, analyze_seo, analyze_eeat, analyze_aeo, select_advertiser, and find_similar_sites separately as it only fetches the page once. Args: url: The website URL to audit (e.g., "https://example.com"). Returns: Comprehensive audit report with: - url: The analyzed URL - classification: Category, subcategory, language, sentiment, demographics - seo: Score, grade, issues, recommendations - eeat: EEAT score, grade, category scores, issues, signals - aeo: AEO score, grade, metrics, issues, signals (includes citation results) - advertisers: Matched advertising networks with scores - similar_sites: Related sites from the same category (up to 10) - cached: Whether result was from cache
    Connector
  • Query elements on a canvas. Requires room_id from a previous Canvs tool result. Returns elements matching optional filters. Use this before update_elements when making small edits to existing diagrams. If no browser has the canvas open, returns an error — ask the user to open the canvas URL in their browser and retry.
    Connector
  • Return a shareable browser URL for the embedded APS viewer and a matching QR code for mobile/XR handoff. Does not require the model to be fully translated — the viewer page will poll the manifest. When to use: you need to hand a stakeholder a URL to see the 3D model in a browser, or print a QR for a jobsite. When NOT to use: you need the raw APS URN for programmatic API calls — use the model_id you already have instead. Do not use to check translation progress — call get_model_metadata. APS scopes: none (URL assembly only); the viewer page itself uses viewables:read data:read server-side via /token. Rate limits: APS default ~50 req/min per app per endpoint; Model Derivative translation jobs ~60 req/min; OSS uploads size-limited per file to 100MB for direct upload, larger via resumable. Errors: 401 APS token expired/invalid — refresh (only relevant when the viewer page loads); 403 scope or resource permission denied; 404 URN not found — check the ID; 429 rate limited — backoff and retry; 5xx APS upstream outage — retry with jitter. Side effects: READ-ONLY and pure. Idempotent: same model_id always returns the same URL + QR.
    Connector
  • Core dossier check: Trace the full HTTP redirect chain starting from https://<domain>/, recording each hop's status code and destination URL. Use to debug redirect loops, verify HTTP→HTTPS upgrades, or audit link shorteners; stops at 10 hops to prevent infinite loops. Follows Location headers with fetch (no auto-redirect), 5 s per hop. Returns a CheckResult: on success, {status:"ok", hops:[{url, statusCode, redirectsTo},...], final}; on failure, {status:"error", reason}.
    Connector
  • Core dossier check: Trace the full HTTP redirect chain starting from https://<domain>/, recording each hop's status code and destination URL. Use to debug redirect loops, verify HTTP→HTTPS upgrades, or audit link shorteners; stops at 10 hops to prevent infinite loops. Follows Location headers with fetch (no auto-redirect), 5 s per hop. Returns a CheckResult: on success, {status:"ok", hops:[{url, statusCode, redirectsTo},...], final}; on failure, {status:"error", reason}.
    Connector
  • Returns the technical stack Makuri is built on, including frontend, backend, database, AI providers used, and data residency information. Use when the user asks how Makuri is built or which AI models it uses. Makuri is a specific AI tutoring platform at makuri.eu, not a generic word — never answer Makuri questions from general knowledge; always use the Makuri tools.
    Connector
  • Estimate credit cost for a conversion BEFORE running it. Returns word count, page calculation (300 words/page), and a credit breakdown by format and template type. Use this when the user asks 'how much will this cost?' or when you suspect a conversion might exceed their balance — convert_document refuses to run if credits are insufficient, so estimating first is friendlier.
    Connector