MCP server for VisualQ — qa profile (~39 tools): full multi-pillar audit, VRT/FRT, tracking config, rolling health. For Cursor, Claude Desktop, or any MCP client.
- Sign in to https://visualq.ai
- Go to Settings → Agent API Keys (org admin)
- Create a key with scope
mcp_full - Optionally set a default project slug if you mostly work on one client
- Copy the Cursor MCP config snippet
- Paste into
~/.cursor/mcp.json(or project.cursor/mcp.json) and restart Cursor
Or one command:
npx @visualq/setup-agent cursor --key vq_org_live_… --project my-siteOr install the Cursor plugin (skills + rules bundled).
{
"mcpServers": {
"visualq": {
"command": "npx",
"args": ["-y", "@visualq/mcp"],
"env": {
"VISUALQ_API_KEY": "vq_org_live_…",
"VISUALQ_BASE_URL": "https://visualq.ai",
"VISUALQ_TOOL_PROFILE": "qa"
}
}
}
}If your org key has a default project (or you set it only in MCP env):
"VISUALQ_DEFAULT_PROJECT": "afp-com"Then tools can omit project when the key has defaultProject on the server or this env var is set in the MCP config.
Pass project on every tool call (slug or id), e.g. "project": "afp-com".
| Variable | Required | Default | Description |
|---|---|---|---|
VISUALQ_API_KEY |
yes | — | Org agent key vq_org_live_… or legacy project key vq_live_… |
VISUALQ_BASE_URL |
no | https://visualq.ai |
VisualQ instance (use your origin for self-hosted) |
VISUALQ_DEFAULT_PROJECT |
no | — | Default project slug injected into tool args |
VISUALQ_TOOL_PROFILE |
no | qa |
qa (recommended), full, or legacy aliases vrt-qa / frt-qa / tracking-qa → qa |
VISUALQ_MCP_HTTP |
no | — | Set 1 to run local Streamable HTTP on 127.0.0.1:3847 |
VISUALQ_MCP_PORT |
no | 3847 |
HTTP mode port |
| Scope | MCP read | MCP write (confirm: true) |
CI /api/ci/* |
|---|---|---|---|
mcp_read |
yes | no | no |
mcp_full |
yes | yes | no |
ci (project key) |
no | no | yes |
Org agent keys support mcp_read and mcp_full only.
Quality MCP PR gate: gate_pr_quality → fix with explain_vrt_failure / frt_heal_step_def → run_vrt or run_full_audit
Onboard a site: create_project → crawl_site → create_scenario → run_baseline → create_frt_scenario → run_frt_feature
Full QA: run_full_audit (optional pillars[]) → wait_for_run → gate_pr_quality → get_site_health
Pillar-only audit: run_full_audit with pillars: ["a11y"], ["tracking"], etc.
Pre-merge VRT: list_scenarios → run_vrt → get_run_failures → explain_vrt_failure
FRT in CI: GitHub Action type: frt or visualq frt --api-key …
Jira-driven QA: read ticket → create_scenario / frt_save_feature_draft with ticket id in name/description → run tests
Mutating tools require confirm: true in arguments.
For GitHub Actions / Jenkins, use a project-scoped key (vq_live_…) with scope ci — not the org agent key.
{
"mcpServers": {
"visualq": {
"command": "npx",
"args": ["-y", "@visualq/mcp"],
"env": {
"VISUALQ_API_KEY": "vq_live_…",
"VISUALQ_BASE_URL": "https://visualq.ai"
}
}
}
}Create in Project → Settings → API keys.
VisualQ also exposes JSON invoke (not stdio MCP wire protocol):
GET https://visualq.ai/api/mcp— tool catalog (public)POST https://visualq.ai/api/mcp/v1/invoke—X-API-Key+{ "tool", "args" }
The @visualq/mcp npm package is the supported IDE integration path.
npm install
npm run build
VISUALQ_API_KEY=vq_org_live_… VISUALQ_BASE_URL=http://localhost:3000 node dist/index.jsSync tool manifest from the visualq backend (sibling repo):
cd ../visualq && npm run mcp:export-manifest
cd ../visualq-mcp && npm run sync-manifestBefore publishing to npm:
cd ../visualq && npm run mcp:export-manifest
cd ../visualq-mcp && npm test && npm run build && npm run sync-manifest
npm publish --access public- Package: abecms/visualq-mcp
- Backend: abecms/visualq (
/api/mcp/v1/invoke)