Persqo

com.persqoPublished by persqo.comOfficial publisherv1.1.0Updated Nov 7, 2026

AI personas test your site like real users and return scored reports with fix prompts.

VerifiedStreamable HTTPWeb executableBrowser AutomationDeveloper ToolsSecurity & Monitoring

Overview

AI-generated overview

Persqo runs AI personas through your live or preview website in a real browser and returns scored reports, replays and ready-to-paste fix prompts.

What you can do
  • Create and list projects and sites, and start, poll and inspect test runs
  • Read run replays, scores, findings, page-level results, trends and weekly insights
  • Generate, save and list personas, and filter or update findings by severity and status
  • Pull fix prompts for a test or finding, and queue retests
  • Manage daily or weekly schedules, public share links, email notifications and webhooks
  • List synced Jira and Monday tickets and reproduce them with a matching persona
When to use it
Useful when you want an assistant to exercise a deployed or preview web app as different kinds of users, then turn the resulting usability, accessibility or mobile findings into concrete code fixes inside the same session. Also fits teams that want scheduled regression checks or ticket reproduction without leaving the coding agent.
Requirements
Remote HTTP endpoint at persqo.com/api/mcp, or a local stdio bridge launched with npx from a GitHub repository (not published to npm), which needs Node.js. Authentication is OAuth or an API key sent as an Authorization Bearer header, read from PERSQO_API_KEY; the optional PERSQO_API_BASE overrides the base URL. A Persqo account and workspace are required, and the tested site must be reachable over public https.
Before you install
The API key is a workspace-wide secret that can read and change every site on the account; keep it in the environment or a secret store, not in a URL. Runs consume sessions and tests report a cost. Several tools change state: creating projects, personas, schedules, shares and webhooks, deleting schedules and webhooks, updating finding status and notification switches, and confirming runs or ticket reproductions. Webhook signing secrets are shown only once. Test credentials passed via the auth…

Installation

In SourceWeft

  1. Open Persqo in the dashboard and add it to a workspace.
  2. Connect the required credentials. They are stored privately and never shown on public pages.
  3. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/com.persqo%2Fpersqo/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config. The client completes OAuth sign-in on first connect.

{
  "mcpServers": {
    "persqo": {
      "type": "http",
      "url": "https://persqo.com/api/mcp"
    }
  }
}

README

Persqo MCP Server

AI personas test your web app like real users, then hand your coding agent ready-to-paste fix prompts.

Persqo runs AI personas (first-time visitor, impatient mobile user, accessibility-dependent user, and more) through your live or preview site in a real browser. Every run gives you step-by-step recordings, screenshots, and prioritized findings. This MCP server lets Claude, Claude Code, Cursor, Codex, and any MCP client start a test, wait for it, read findings, and pull a fix prompt straight into the session.

The live remote server is https://persqo.com/api/mcp. This package is the stdio bridge for clients that launch a local command. It calls the Persqo API with Authorization: Bearer and the key from PERSQO_API_KEY. persqo-mcp is not published to npm.

Get an API key

Sign up at https://persqo.com and create an API key (pq_live_...) in Settings, then API keys. The secret is shown once. Put it in PERSQO_API_KEY. Do not put the key in the URL.

A key belongs to the workspace, not one project. It can read and change every site on that account. Pass project_id or a site URL when the workspace has more than one project. One project is selected for you. Several matches come back as project_choice.

Remote server

HTTP clients send Authorization: Bearer plus the key. The examples below read that key from PERSQO_API_KEY so the secret stays in the environment.

Claude Code

bash
claude mcp add --transport http persqo https://persqo.com/api/mcp --header "Authorization: Bearer $PERSQO_API_KEY"
json
{  "mcpServers": {    "persqo": {      "type": "http",      "url": "https://persqo.com/api/mcp",      "headers": {        "Authorization": "Bearer ${PERSQO_API_KEY}"      }    }  }}

Cursor

json
{  "mcpServers": {    "persqo": {      "url": "https://persqo.com/api/mcp",      "headers": {        "Authorization": "Bearer ${env:PERSQO_API_KEY}"      }    }  }}

Or open the Cursor install link. Put the key in Cursor's secret store as PERSQO_API_KEY.

Codex and other MCP clients

Use the same URL and header. Clients that speak stdio can use the local command in the next section instead.

json
{  "mcpServers": {    "persqo": {      "type": "http",      "url": "https://persqo.com/api/mcp",      "headers": {        "Authorization": "Bearer ${PERSQO_API_KEY}"      }    }  }}

Claude and ChatGPT can also connect with OAuth at the same URL. That flow does not use an API key. API-key clients always send the Bearer header above.

Local stdio server

package.json maps the persqo-mcp command to bin.js, which is what npx executes. The process reads PERSQO_API_KEY and sends Authorization: Bearer <key>.

bash
npx -y github:YaakovTzedek/persqo-mcp
json
{  "mcpServers": {    "persqo": {      "command": "npx",      "args": ["-y", "github:YaakovTzedek/persqo-mcp"],      "env": { "PERSQO_API_KEY": "pq_live_YOUR_KEY" }    }  }}

Claude Code:

bash
claude mcp add persqo --env PERSQO_API_KEY=$PERSQO_API_KEY -- npx -y github:YaakovTzedek/persqo-mcp

Optional PERSQO_API_BASE (default https://persqo.com).

Visitor place

Personas, runs, schedules, retests, and finding filters take four place fields. A project stores the same four as defaults. Omit a field to keep the project default.

FieldMeaning
languageSpoken language, such as Hebrew or English. Auto visitors stay in one language and quote the site's own labels.
localeBrowser locale, BCP 47, such as he-IL or en-US. The run sets Accept-Language from this.
countryCountry the visitor is in. Used for timezone and geolocation.
cityCity the visitor is in. Used for timezone and geolocation.

create_project accepts these as project defaults. list_projects returns them. create_persona, list_personas, start_run, save_schedule, list_schedules, retest_finding, and list_findings accept them as overrides or filters. Persona and schedule results include the place stored on each record.

Tools

start_run and reproduce_ticket are dry runs until confirm is true. run_test with wait: true polls until the test finishes or timeout_ms (default 120000, max 600000) and then returns a summary plus the fix prompt.

The Persqo browser cannot open localhost. Use a Vercel or Netlify preview, or an ngrok or cloudflared tunnel.

Projects, runs, and tests

ToolWhat it doesParameters
list_projectsProjects in the workspace, including default language, locale, country, and city.none
list_sitesSites on the account. A key sees every site.none
create_projectCreate a project from a public https URL. Place fields become the project defaults.url required. language, locale, country, city
start_runDry run until confirm is true. personas is auto or persona ids. A new URL creates the project.confirm, url or project_id, personas, language, locale, country, city
get_runRun status.run_id
get_run_replayStep timeline, thoughts, actions, and the stuck marker.run_id
get_reportScore, counts, findings, and the PDF URL.run_id
get_report_pdfReport JSON, or PDF bytes when format is pdf.run_id, optional format
run_testStart testers against a public https URL. wait true returns a summary and the fix prompt.url required. personas, auth (email, password, login_url), wait, timeout_ms, idempotency_key, webhook_url
get_test_statusStatus, personas, findings, cost, and the report URL.test_id
list_testsRecent tests.optional limit
generate_personasSuggest personas for a URL. Does not spend a session.url

Personas and findings

ToolWhat it doesParameters
list_personasSaved personas, including place. Place fields also filter.project_id or url, language, locale, country, city
create_personaSave a custom persona.project_id or url, name, role, device, goal, tech, language, locale, country, city
list_findingsFilter findings.project_id or url, run_id, severity, status (open, fixed, ignored), page, persona, language, locale, country, city
get_findingOne finding, with Claude Code, Cursor, and Lovable prompts.finding_id
get_findingsFindings for one test, with severity, screenshots, and fix_prompt.test_id
get_fix_promptOne prompt to paste.test_id, or finding_id
update_findingSet status.finding_id, status (open, fixed, or ignored)
retest_findingQueue a retest. Place fields override the project defaults for that run.finding_id, language, locale, country, city
list_pagesPer-page score and issue counts.project_id or url
get_trendsScore over time, opened versus closed, and a two-run comparison.project_id or url, left, right
weekly_insightsWeekly summary for one project.project_id or url

Schedules, sharing, and notifications

ToolWhat it doesParameters
list_schedulesDaily and weekly schedules, including the place each one runs with.project_id or url, language, locale, country, city
save_scheduleCreate or update a schedule. Pass id to update.id, project_id or url, frequency (daily or weekly), personas, language, locale, country, city
delete_scheduleDelete a schedule.schedule_id
list_sharesPublic report links.none
create_shareShare a run.run_id
revoke_shareRevoke a share link.share_id
get_notificationsscore_drop_email and schedule_email for the key owner.none
update_notificationsSet those two email switches.score_drop_email, schedule_email
list_webhooksWebhook endpoints. The signing secret is not shown again.none
create_webhookRegister an https endpoint for test.completed. The whsec_ secret is returned once.url
revoke_webhookRevoke a webhook.webhook_id

Tickets

ToolWhat it doesParameters
list_ticketsSynced Jira and Monday tickets.source, status, reproduced, country, language, device
reproduce_ticketReproduce a ticket with a matching persona and browser. Dry run until confirm is true. environment overrides extracted place, device, and browser. Posting a comment back stays off until the workspace turns it on.ticket_id, confirm, environment (language, locale, country, city, device, browser)
get_ticket_reproductionLatest reproduction: result, replay, screenshots, console, network, root cause, and fix prompts.ticket_id

Localhost

The Persqo browser cannot open localhost. Deploy a preview (Vercel or Netlify) or tunnel the machine:

bash
ngrok http 3000cloudflared tunnel --url http://localhost:3000

Then pass that https URL to start_run or run_test.

License

MIT

Source: README.md at commit b2accc1

Tools

0
This server asks you to sign in, so SourceWeft could not read its tools without an account and has not indexed them. What a connected account sees can depend on that account and its permissions.

Version history

2
  1. v1.1.0LatestOct 29, 2026
  2. v1.0.0Oct 25, 2026

Score

83% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • LicenseNot applicable

    A hosted service is used under its provider's terms, so no license is expected here. This check is left out of the percentage.

Other Persqo integrations