Skip to main content

ProvaLab MCP — Testing Infrastructure for Claude Code

ProvaLab exposes 71 testing tools over the Model Context Protocol (MCP). Point your Claude Code (or any MCP-capable agent) at our endpoint and your AI assistant can drive real browser sessions, run security scans, execute API tests, and manage test cases — all with your own LLM subscription paying for the chat side, and ProvaLab charging only for the infrastructure (browsers, scans, device time, storage) that actually runs.

Who this is for​

  • You use Claude Code, Claude Desktop, Cursor, Zed, or any MCP-capable agent
  • You want your AI assistant to actually run tests, not just talk about them
  • You'd rather pay a few cents per browser-minute than a flat SaaS fee for AI you're already paying for elsewhere

5-minute install​

1. Install the auth helper (one-time, per machine).

The plugin needs a short-lived OAuth token for every MCP call. The provalab-auth CLI handles the device-flow login + silent refresh.

macOS / Linux:

curl -sSf https://plugins.provalab.io/install.sh | sh
provalab-auth login

Windows (PowerShell):

irm https://plugins.provalab.io/install.ps1 | iex
provalab-auth login

provalab-auth login opens a browser (or prints a code + URL for headless machines), you sign in to ProvaLab, and the token is cached at ~/.config/provalab/auth.json.

2. Install the plugin.

/plugin marketplace add provalab-dev/claude-code-plugin
/plugin install provalab@provalab-marketplace

Restart Claude Code, then run /mcp — the provalab server should show as connected. You now have the ProvaLab tool list plus /provalab-test, /provalab-status, /provalab-results slash commands and the run/triage skills.

Direct MCP URL (Claude Desktop, Cursor, Zed, custom clients)​

ProvaLab's MCP endpoint speaks the streamable-HTTP transport. Point your client at the URL below — it handles OAuth automatically on first use, so no provalab-auth CLI needed.

claude mcp add provalab https://mcp.provalab.io/mcp

Or in your client's MCP config:

{
"mcpServers": {
"provalab": {
"type": "http",
"url": "https://mcp.provalab.io/mcp"
}
}
}

Don't use /mcp/sse with "type": "sse". The legacy SSE transport is still mounted but is deprecated and connections time out after 30s. Always use /mcp with "type": "http".

What you can ask Claude once installed​

The tools group into four testing pillars + one data layer.


Pillar 1 — UI Testing​

Run real browser automation on ProvaLab's cloud infrastructure. Chrome, Firefox, Edge, mobile emulators, device cloud.

Tools​

ToolWhat it does
execute_pytestRun a pytest suite against a target. Returns pass/fail + logs + screenshots
provision_browserSpin up a headless/VNC-visible browser with a chosen version
create_browser_sessionOpen an interactive browser session (persistent, user can watch)
close_browser_sessionTear down a session + reclaim resources
authenticate_sessionLog into an app via OTP from a real device (SMS/email)
crawl_siteWalk a site's routes to discover pages
save_test_artifactsAttach screenshots, videos, HAR files to a run
get_session_artifactsRetrieve screenshots / videos / logs from a session
get_execution_resultFetch the structured result of a prior run
analyze_pageExtract elements / selectors / accessibility hints from a page

Example prompts​

"Open https://staging.example.com in Chrome and screenshot the pricing page."

"Run the smoke suite I have in pytest-tms format against staging, then show me any failures with screenshots."

"Log into my app at app.example.com using my test credentials, grab the OTP from my phone, then verify the dashboard loads."

Infrastructure consumed (what you pay for)​

  • Browser session minutes
  • Mobile emulator / real-device time
  • Video recording GB-months
  • Screenshot & artifact storage

Pillar 2 — API Testing​

Execute HTTP requests, inspect responses, maintain a catalog of your APIs.

Tools​

ToolWhat it does
execute_api_requestFire a one-shot HTTP request with full headers/body/auth. Returns full response + timing
get_api_catalogList the APIs your project has registered
get_api_workbenchFetch saved request collections (Postman-style)

Example prompts​

"POST a login request to api.example.com/auth with these credentials, and show me the full response headers."

"Run the entire users collection against staging and tell me which endpoints return non-2xx."

"Hit /health on all three environments and compare the response times."

Infrastructure consumed​

  • API requests per month
  • Request/response storage

Coming soon​

  • api_contract_validate — OpenAPI spec vs. live-service drift detection
  • api_regression — compare current response vs. recorded baseline
  • api_mock_server — spin up a mock service from a spec

Pillar 3 — Security Testing​

OWASP ZAP-backed scanning with active and passive modes, fuzz testing, formatted reports.

Tools​

ToolWhat it does
security_scanRun a baseline or active ZAP scan against a URL. Returns findings with severity
security_fuzzFuzz endpoints with injection / XSS / auth-bypass payloads
security_reportProduce a human-readable security report (PDF/Markdown) from a scan

Example prompts​

"Run the 'Nightly DAST' scan for project 7 and wait for the gate."

"Fuzz the /api/users/:id endpoint for IDOR and SQL injection."

"Give me a security report for scan ID 42 — I need to share it with legal."

Infrastructure consumed​

  • Scan minutes (ZAP container runtime)
  • Report retention

Coming soon​

  • security_sast — static analysis (semgrep / bandit) on your source code
  • security_deps — dependency vulnerability scan (Trivy / Snyk-equivalent)
  • security_secrets — leaked secrets scan on repo
  • security_container — container image scan

Pillar 4 — Performance Testing​

Coming soon. We're building k6-backed load, stress, spike, and endurance testing. Target MCP tools:

  • perf_load_test — sustained load at N vUsers for M minutes
  • perf_stress_test — ramp vUsers until the service breaks
  • perf_spike_test — sudden traffic spike recovery
  • perf_endurance_test — long soak test for memory leaks
  • perf_profile_page_load — Lighthouse scores for page load
  • perf_compare — regression vs. a baseline run

Status: Design phase. Release updates are posted on provalab.io and in the plugin catalogue.


Data layer — TMS (Test Management System)​

39 CRUD tools over the ProvaLab TMS. Lets Claude manage projects, versions, modules, test cases, plans, runs, defects — all natively, no code written.

Read tools (list & inspect)​

ToolWhat it does
tms_list_projectsList projects in your organization
tms_get_projectDetails for one project
tms_get_project_statsRoll-up counts (modules, suites, cases, runs, features) for a project
tms_list_project_membersUsers on a project + their roles
tms_list_versionsProject versions / releases
tms_get_versionDetails for one version (e.g. "8.0.0")
tms_list_modulesModules in a project
tms_list_test_suitesSuites in a project or module
tms_list_test_casesTest cases (filterable by priority, type, status)
tms_list_test_runsTest runs (filterable by status, environment)
tms_get_test_run_resultsPass/fail results for a specific run
tms_list_test_plansTest plans
tms_get_test_planDetails for one plan
tms_get_plan_coverageCoverage breakdown for a plan
tms_list_requirementsRequirements
tms_get_requirement_coverageWhich requirements have tests, which don't
tms_list_featuresFeatures
tms_list_issuesIssues / defects
tms_get_issueDetails for one issue
tms_searchFree-text search across TMS entities

Write tools (require approval in interactive mode)​

ToolWhat it does
tms_create_projectNew project
tms_create_versionNew version/release
tms_create_moduleNew module
tms_create_test_suiteNew suite
tms_create_test_caseNew test case
tms_update_test_caseEdit an existing case
tms_create_test_planNew test plan
tms_create_test_runNew run (attached to a plan)
tms_report_resultReport a pass/fail for a case in a run
tms_create_requirementNew requirement
tms_update_requirementEdit requirement
tms_delete_requirementDelete requirement
tms_create_featureNew feature
tms_update_featureEdit feature
tms_delete_featureDelete feature
tms_create_issueFile a bug
tms_update_issueUpdate an issue
tms_link_test_case_to_requirementTrace case → requirement
tms_link_test_case_to_featureTrace case → feature

Example prompts​

"List all projects, then show me the one with the most open bugs."

"For project ForceFlow, create a new version 9.0.0, draft the regression test plan for it, and link every HIGH-priority requirement to the plan."

"Which test cases in Login module have no automation script? File those as 'needs automation' bugs."

Infrastructure consumed​

  • TMS CRUD operations are free during the beta period.

Supporting tools (invisible but useful)​

Claude will use these automatically when a prompt needs them — you don't call them directly.

Knowledge & context:

  • get_project_context, get_app_profile, get_tms_schema, get_domain_history

Memory:

  • save_learning, get_learnings — persist what Claude figures out about your app
  • save_working_context, get_working_context — maintain state across sessions

Workspace:

  • list_workspace_files, read_workspace_file — read files you've uploaded
  • get_ui_test_inventory — list test files Claude authored

Human-in-the-loop:

  • request_user_input — Claude pauses to ask you for approval before destructive actions

Sync:

  • publish_to_master, get_knowledge_gaps, get_session_history

Current pricing (beta)​

PillarStatusPrice
UI TestingLiveFree during beta. Fair-use session minutes, premium tier launching Q1
API TestingLiveFree during beta
Security TestingLiveFree during beta. Per-scan pricing launching Q1
Performance TestingComing soonTBD
TMS CRUDLiveFree, always (bring your own LLM)

No charge for LLM tokens. Your Claude Code / Max / Pro subscription (or any MCP-capable agent) pays for the AI side. ProvaLab charges only for the infrastructure that actually runs tests.

Next steps​

Release updates and new tools are announced on provalab.io and in the plugin catalogue.