Provar MCP
Beta: Provar MCP is currently in Beta. This is offered to all Provar users at no additional cost, and is an open-source project hosted on GitHub here. General Availability is coming soon. We welcome feedback via GitHub Issues (github.com/ProvarTesting/provardx-cli/issues).
What is Provar MCP?
Provar MCP is an AI-assisted quality layer built directly into the Provar DX CLI. It implements the Model Context Protocol (MCP), an open standard that lets AI assistants call tools on your behalf and exposes a rich set of Provar project operations to AI clients such as Claude Desktop, Claude Code, and Cursor.
Once connected, your AI assistant can:
• Inspect your Provar Automation project and surface coverage gaps
• Generate Java Page Objects and XML test case skeletons
• Validate every level of the test hierarchy (test cases, suites, plans, and the full project) against 30+ quality rules
• provardx-properties.json run configuration
• Trigger Provar Automation test runs and Provar Quality Hub managed runs all from inside a chat session
The MCP server runs entirely on your local machine. No project files, test code, or credentials are transmitted to Provar servers.
Prerequisites
Before you can use Provar MCP, ensure the following are in place:
| Requirement | Version | Notes |
| Provar Automation | ≥ 2.18.2 or ≥ 3.0.6 | Must be installed with an activated license on the same machine. The MCP server reads the license state from ~/Provar/.licenses/. |
| Salesforce CLI (sf) | ≥ 2.x | Install with: npm install -g @salesforce/cli |
| Provar DX CLI plugin | ≥ 1.5.0-beta | Install with: sf plugins install @provartesting/provardx-cli |
| Node.js | ≥ 18 | Installed automatically with the Salesforce CLI |
| An MCP-compatible AI client | – | Claude Desktop, Claude Code (VS Code / CLI), or Cursor |
| An existing Provar Automation project | – | The MCP server works best when pointed at a real project directory. Project context (connections, environments, Page Objects, test cases) is what the AI reads and reasons over. |
License requirements
Provar MCP requires an active Provar Automation license on the machine where the server runs. Validation is automatic:
1. The server reads ~/Provar/.licenses/*.properties, the same files written by Provar Automation Desktop, and checks that a license is activated and was last verified online within 48 hours.
2. Successful validations are cached for 2 hours, so frequent server restarts do not cause repeated disk reads.
3. If no valid license is found, the server exits immediately with a clear error message. Open Provar Automation IDE and ensure your license is activated, then retry.
There is no separate MCP license. Your existing Provar Automation license covers MCP usage.
Installation
Step 1 – Install the Salesforce CLI
npm install -g @salesforce/cli
sf –version
Step 2 – Install the Provar DX CLI plugin
sf plugins install @provartesting/provardx-cli
sf provar mcp start –help
Step 3 – Configure your AI client
Claude Desktop
Edit the Claude Desktop MCP configuration file:
• macOS / Linux: ~/Library/Application Support/Claude/claude_desktop_config.json
• Windows: %APPDATA%\Claude\claude_desktop_config.json
{
“mcpServers”: {
“provar”: {
“command”: “sf”,
“args”: [“provar”, “mcp”, “start”, “–allowed-paths”, “/path/to/your/provar/project”]
}
}
}
Restart Claude Desktop after saving. The Provar tools will appear in the tool list automatically.
Claude Code (VS Code / CLI)
Add to your project’s .claude/mcp.json:
{
“mcpServers”: {
“provar”: {
“command”: “sf”,
“args”: [“provar”, “mcp”, “start”, “–allowed-paths”, “/path/to/your/provar/project”]
}
}
}
Or add directly from a Claude Code session:
/mcp add provar sf provar mcp start –allowed-paths /path/to/project
Cursor
In Cursor Settings → MCP, add:
{
“provar”: {
“command”: “sf”,
“args”: [“provar”, “mcp”, “start”, “–allowed-paths”, “/path/to/your/provar/project”]
}
}
Important: Set –allowed-paths to the root of your Provar Automation project directory. This is the folder containing your .testproject file. The server will only read and write files within this boundary.
Verify the connection
Once your AI client is configured, ask it:
“Call provardx.ping with message ‘hello'”
Expected response:
{ “pong”: “hello”, “ts”: “2026-04-07T…”, “server”: “provar-mcp@1.0.0” }
If this fails, see the Troubleshooting section below.
Use cases
Inspect your project
Get an instant inventory of your Provar project – file counts, coverage gaps, and missing configurations.
Prompt:
“Inspect my Provar project at /workspace/MyProvarProject and tell me what you find – how many test cases are there, and which ones aren’t covered by any test plan?”
What you get back:
• Total test case count, suite structure, Page Object count
• A list of test cases not referenced by any test plan (coverage gaps)
• Whether a provardx-properties.json config file exists
Validate a test case
Score an existing test case for schema compliance and best-practice quality issues – the same scoring formula used by the Provar Quality Hub API.
Prompt:
“Validate the test case at /workspace/MyProvarProject/tests/regression/LoginTest.testcase and explain any issues.”
What you get back:
• validity_score (schema compliance, 0–100) and quality_score (best practices, 0–100)
• Specific rule violations with IDs, severities, and descriptions
• Actionable suggestions (e.g. “Add a missing XML declaration”, “Test case ID is not a valid UUID”)
Generate a Page Object
Have the AI scaffold a new Java Page Object for a Salesforce page with correct annotations and @FindBy stubs.
Prompt:
“Generate a Salesforce Page Object for the Account Detail page. Include fields for Account Name (input), Industry (select), and a Save button. Write it to /workspace/MyProvarProject/src/pageobjects/accounts/AccountDetailPage.java.”
What you get back:
• A valid Java file with @SalesforcePage annotation
• @FindBy annotations for each field using sensible locator strategies
• File written to disk (use dry_run: true in the tool call to preview without writing)
Generate a test case
Scaffold a new XML test case with a proper UUID, sequential step IDs, and a clean structure ready for Provar Automation.
Prompt:
“Generate a test case called ‘Verify Account Creation’ with steps for navigating to the Accounts page, clicking New, filling in Account Name, and saving. Write it to /workspace/MyProvarProject/tests/smoke/VerifyAccountCreation.testcase.”
Set up your run configuration
Let the AI create and validate a provardx-properties.json – the properties file that tells the Provar DX CLI how to run your tests.
Prompt:
“Generate a ProvarDX config file at /workspace/MyProvarProject/provardx-properties.json with projectPath set to /workspace/MyProvarProject and provarHome set to /Applications/Provar. Then validate it and tell me if anything is missing.”
Validate the full project hierarchy
Get a single quality score for your entire project – test cases, suites, plans, connections, environments, and cross-cutting rules all evaluated together.
Prompt:
“Validate the full test project at /workspace/MyProvarProject. The project has connections named SandboxOrg and ProdOrg, and environments QA and UAT. Give me a quality report.”
What you get back:
• Overall project quality score (0–100)
• Test plan coverage percentage
• Breakdown of violations by rule ID
• Per-plan quality scores
Trigger a Provar Automation test run
Ask the AI to run your local Provar Automation test suite and report results.
Prompt:
“Load the properties file at /workspace/MyProvarProject/provardx-properties.json, compile the project, then run the tests and tell me the results.”
The AI will chain:
1. provar.automation.config.load – registers the properties file
2. provar.automation.compile – compiles Page Objects
3. provar.automation.testrun – executes the test run
4. provar.testrun.report.locate – finds the JUnit/HTML report paths
Trigger a Quality Hub managed test run
Kick off a managed test run via Provar Quality Hub and poll until it completes.
Pre-requisite: Authenticate the Salesforce CLI against your Quality Hub org first:
sf org login web -a MyQHOrg
sf provar quality-hub connect -o MyQHOrg
Prompt:
“Connect to the Quality Hub org MyQHOrg, start a test run using config file config/smoke-run.json, and poll every 30 seconds until it completes or fails.”
The AI will chain:
1. provar.qualityhub.connect – connects to the org
2. provar.qualityhub.testrun – triggers the run
3. provar.qualityhub.testrun.report – polls status in a loop
4. Reports final pass/fail status and a summary of results
Root cause analysis after a test run failure
After a failed run, ask the AI to classify failures and identify patterns.
Prompt:
“My test run just finished. Analyse the results at /workspace/MyProvarProject/Results/ and classify any failures – tell me which are pre-existing issues and which look like new regressions.”
What you get back:
• Classified failure categories (environment issue, assertion failure, locator issue, etc.)
• Identification of Page Objects involved in failures
• Suggested next steps
Create a Quality Hub defect from a failed test
Turn a failed test execution directly into a Quality Hub defect, without leaving your AI chat.
Prompt:
“The test ‘LoginTest’ failed in the last run. Create a defect in Quality Hub for it.”
Available tools (reference)
| Tool | What it does |
| provardx.ping | Sanity check – verifies the server is running |
| provar.project.inspect | Inventory project artefacts and surface coverage gaps |
| provar.project.validate | Full project quality validation from disk |
| provar.pageobject.generate | Generate a Java Page Object skeleton |
| provar.pageobject.validate | Validate Page Object quality (30+ rules) |
| provar.testcase.generate | Generate an XML test case skeleton |
| provar.testcase.validate | Validate test case XML (schema + best-practices scores) |
| provar.testsuite.validate | Validate a test suite hierarchy |
| provar.testplan.validate | Validate a test plan with metadata completeness checks |
| provar.testplan.add-instance | Wire a test case into a plan suite |
| provar.testplan.create-suite | Create a new test suite inside a plan |
| provar.testplan.remove-instance | Remove a test instance from a plan suite |
| provar.properties.generate | Generate a provardx-properties.json from the standard template |
| provar.properties.read | Read and parse a provardx-properties.json |
| provar.properties.set | Update fields in a provardx-properties.json |
| provar.properties.validate | Validate a provardx-properties.json against the schema |
| provar.ant.generate | Generate an ANT build.xml for CI/CD pipeline execution |
| provar.ant.validate | Validate an ANT build.xml |
| provar.automation.setup | Detect or download/install Provar Automation binaries |
| provar.automation.config.load | Register a properties file as the active config |
| provar.automation.compile | Compile Page Objects after changes |
| provar.automation.metadata.download | Download Salesforce metadata into the project |
| provar.automation.testrun | Trigger a local Provar Automation test run |
| provar.qualityhub.connect | Connect to a Quality Hub org |
| provar.qualityhub.display | Display connected Quality Hub org info |
| provar.qualityhub.testrun | Trigger a Quality Hub managed test run |
| provar.qualityhub.testrun.report | Poll test run status |
| provar.qualityhub.testrun.abort | Abort an in-progress test run |
| provar.qualityhub.testcase.retrieve | Retrieve test cases by user story or component |
| provar.qualityhub.defect.create | Create Quality Hub defects from failed executions |
| provar.testrun.report.locate | Resolve JUnit/HTML report paths after a run |
| provar.testrun.rca | Classify failures and detect regressions |
Security
• Local only. The MCP server communicates via stdio – no TCP port is opened, no network listener is started.
• Path-scoped. All file operations are restricted to the directories you specify via –allowed-paths. Path traversal (../) is blocked.
• No data exfiltration. Project files, test code, and credentials are never transmitted to Provar servers.
• Credential safety. Quality Hub and Automation tools invoke the Salesforce CLI as a subprocess. Org credentials stay in the SF CLI’s own credential store and are never read or logged by the MCP server.
• Audit log. Every tool invocation is logged to stderr with a unique request ID in structured JSON format. Capture stderr to maintain an audit trail.
Troubleshooting
“No activated Provar license found” / LICENSE_NOT_FOUND
Open Provar Automation IDE → Help → Manage License → ensure the license is Activated. Then restart the MCP server.
“Warning: license validated from offline cache” (on stderr)
The server started successfully but the license cache is over 2 hours old. This is a warning only. If the cache exceeds 48 hours without a successful online re-validation, the next startup will fail. Restart the server while Provar Automation IDE is connected to the internet to refresh the cache.
SF_NOT_FOUND error from Quality Hub / Automation tools
The sf CLI binary is not on the PATH that the MCP server sees (common with macOS GUI apps). Use the full binary path in your MCP config:
{ “command”: “/usr/local/bin/sf”, “args”: [“provar”, “mcp”, “start”, “–allowed-paths”, “…”] }
PATH_NOT_ALLOWED error
The path passed to a tool is outside the –allowed-paths root. Update –allowed-paths in your client config and restart the server.
Tools not appearing in Claude Desktop
After editing claude_desktop_config.json, fully quit and reopen Claude Desktop (Cmd+Q on macOS, not just close the window).
Server starts then immediately exits
Check the plugin is installed: sf plugins | grep provardx. If missing: sf plugins install @provartesting/provardx-cli.
Support
• Bug reports and feature requests: github.com/ProvarTesting/provardx-cli/issues
• Provar Automation / Quality Hub support: Contact Provar Support through your usual channel or through the Provar Success Portal.
Resources
• Github Repo: github.com/ProvarTesting/provardx-cli/
• NPM Package: @provartesting/provardx-cli – npm
- Home
- Provar MCP
- Get Started with V3
- System Requirements
- Automation V3: Skip Welcome Screen on Launch
- Browser and Driver Recommendations
- Installing Provar Automation V3
- Updating Provar Automation V3
- Licensing Provar Automation V3
- Automation V3: Granting Org Permissions to Provar Automation
- Automation V3: Optimizing Org and Connection Metadata Processing in Provar
- V3 Connections
- AI with Provar Automation V3
- Closing the AI Quality Gap with Provar
- FAQ: Provar AI Capabilities
- Automation V3: Understanding Provar’s Use of AI Service for Test Automation
- Automation V3: Enable or Disable AI Features in Provar
- Automation V3: Provar Assistant
- Automation V3: Image Validator
- Automation V3: Intent Validator
- Automation V3: Test Data Generation
- Automation V3: Test Step Generation
- Automation V3: Utterance Generator
- Automation V3: Using Standardized Test Agent APIs
- Using Provar Automation V3
- Automation V3: Content Synchronization
- Automation V3: Feature-by-Feature Guide
- Automation V3: Provar Automation
- Automation V3: Creating a New Test Project
- Automation V3: Import Test Project from a File
- Automation V3: Import Test Project from a Remote Repository
- Automation V3: Import Test Project from Local Repository
- Automation V3: Commit a Local Test Project to Source Control
- Automation V3: Salesforce API Testing
- Automation V3: Behavior-Driven Development
- Automation V3: Consolidating Multiple Test Execution Reports
- Automation V3: Creating Test Cases
- Custom Table Mapping in V3
- Functions in V3
- Automation V3: Using Functions
- Automation V3: Count
- Automation V3: DateAdd
- Automation V3: DateFormat
- Automation V3: DateParse
- Automation V3: GetEnvironmentVariable
- Automation V3: GetSelectedEnvironment
- Automation V3: IsSorted
- Automation V3: Not
- Automation V3: NumberFormat
- Automation V3: Round
- Automation V3: StringNormalize
- Automation V3: StringReplace
- Automation V3: StringTrim
- Automation V3: TestCaseErrors
- Automation V3: TestCaseName
- Automation V3: TestCaseOutCome
- Automation V3: TestCasePath
- Automation V3: TestCaseSuccessful
- Automation V3: TestRunErrors
- Automation V3: UniqueId
- Automation V3: Debugging Tests
- Automation V3: Creating Custom Test Steps
- Automation V3: Defining Proxy Settings
- Automation V3: Environment Management
- Automation V3: Exporting Test Projects
- Automation V3: Japanese Language Support
- Automation V3: Customize Browser Driver Location
- Automation V3: Managing Test Steps
- CBMT in V3
- Automation V3: Provar Test Builder
- ProvarDX in V3
- Automation V3: Refresh and Recompile
- Automation V3: Reintroduction of CLI license Check
- Automation V3: Reload Org Cache
- Automation V3: Reporting
- Automation V3: Running Tests
- Automation V3: Searching Provar with Find Usages
- Automation V3: Secrets Management and Encryption
- Automation V3: Setup and Teardown Test Cases
- Automation V3: Tags and Service Level Agreements (SLAs)
- Test Cycles in V3
- Automation V3: Test Plans
- Automation V3: Testing Browser – Chrome Headless
- Automation V3: Testing Browser Options
- Automation V3: Tooltip Testing
- Using Custom APIs in V3
- Callable Tests in V3
- Data-Driven Testing in V3
- Page Objects in V3
- Automation V3: Introduction to XPaths
- Automation V3: Creating an XPath
- Automation V3: JavaScript Locator Support
- Automation V3: Maintaining Page Objects
- Automation V3: Refactoring Page Objects
- Automation V3: Mapping Non-Salesforce Fields
- Automation V3: ProvarX™
- Automation V3: Refresh and Reselect Field Locators in Test Builder
- Automation V3: Create different page objects for different pages
- Applications Testing in V3
- Automation V3: Database Connections
- Automation V3: PDF Testing
- Automation V3: Email Testing in Automation
- Automation V3: Email Testing Examples
- Automation V3: Gmail Connection in Automation with App Password
- Automation V3: App Configuration for Microsoft Connection in MS Portal for OAuth 2.0
- Automation V3: OAuth 2.0 Microsoft Exchange Email Connection
- Automation V3: Support for Existing MS OAuth Email Connection
- Automation V3: OAuth 2.0 MS Graph Email Connection
- Automation V3: Create a Connection for Office 365 GCC High
- Automation V3: Mobile Emulation (Salesforce Mobile)
- Automation V3: Using Provar with Amazon Web Services (AWS) Device Farm
- Automation V3: Web Services
- Automation V3: Integrating with Jira
- Automation V3: Provar Feature Flags and Properties Configuration
- Automation V3: Using Java Method Annotations for Custom Objects
- Automation V3: Test Palette Introduction
- Automation V3: Apex Bulk
- Automation V3: Apex Execute
- Automation V3: Assert Test Step
- Automation V3: Assert Salesforce Layout
- Automation V3: Break Test Step
- Automation V3: Extract Salesforce Layout
- Automation V3: Fail Test Step
- Automation V3: Finally Test Step
- Automation V3: For Each Test Step
- Automation V3: Generate Test Case
- Automation V3: Group Steps Test Step
- Automation V3: If Test Step
- Automation V3: List Compare
- Automation V3: Page Object Cleaner
- Automation V3: Read Test Step
- Automation V3: Set Values Test Step
- Automation V3: Set Values
- Automation V3: Sleep Test Step
- Automation V3: String Test Steps
- Automation V3: Switch Test Step
- Automation V3: UI Action
- Automation V3: UI Assert
- Automation V3: UI Connect
- Automation V3: UI Fill
- Automation V3: UI Handle Alert
- Automation V3: UI Navigate
- Automation V3: UI On Screen
- Automation V3: UI With Row
- Automation V3: Wait For Test Step
- Automation V3: While Test Step
- Automation V3: Override Auto-Retry for Test Step
- Automation V3: Using Encrypted Password Variables in Expression Editors
- DevOps with V3
- Automation V3: Introduction to Provar DevOps
- Automation V3: Introduction to Test Scheduling
- Automation V3: Setting Java Development Kit (JDK) Environment Variables
- Automation V3: Configuration on Jenkins
- Automation V3: Version Control and DevOps
- Automation V3: Setting up Continuous Integration
- Automation V3: Execution Environment Security Configuration
- Automation V3: Bitbucket Pipelines
- Automation V3: Perfecto Mobile
- Automation V3: ANT Task Parameters
- Automation V3: Provar Jenkins Plugin
- Automation V3: Running Automation Tests on Jenkins
- Automation V3: Configuring the Automation Secrets Password in Microsoft Azure Pipelines
- Automation V3: Parallel Execution in Microsoft Azure Pipelines using Test Plans
- Automation V3: Parallel Execution in Microsoft Azure Pipelines using Targets
- Automation V3: Parallel Execution in Microsoft Azure Pipelines using Multiple build.xml Files
- Automation V3: Parallel Execution in GitHub Actions using Test Plan
- Automation V3: Running Provar on Linux
- Automation V3: CircleCI Orbs
- Automation V3: CircleCI Common Build Errors
- Automation V3: CircleCI via Docker
- Automation V3: Copado Integration Introduction
- Automation V3: Copado Configuration
- Automation V3: Copado Architecture Overview
- Automation V3: Docker Runner
- Automation V3: Running Provar Tests on Docker using Docker File
- Automation V3: Docker Continuous Integration
- Automation V3: Setting up Continuous Integration with Jenkins for Docker
- Automation V3: Generating the build.xml File for Docker
- Automation V3: Flosum Configuration
- Automation V3: Flosum Integration Introduction
- Automation V3: Flosum Architecture Overview
- Automation V3: Parallel Execution in GitHub Actions using Multiple build.xml Files
- Automation V3: Parallel Execution in GitHub Actions using Targets
- Automation V3: Remote Trigger in GitHub Actions
- Automation V3: Parallel Execution in GitHub Actions using Job Matrix
- Automation V3: Gearset DevOps CI/CD via Jenkins
- Automation V3: GitLab Continuous Integration
- Automation V3: GitHub Desktop – Creating a Git Repository for Automation Projects
- Automation V3: Integrating GitHub Actions CI to Run Automation CI Task
- Automation V3: Provar Test Results Package
- Automation V3: Running a Provar CI Task in Azure DevOps Pipelines
- Automation V3: Amazon Web Service (AWS) & Jenkins Configuration
- Automation V3: ANT: Generating ANT Build File
- Automation V3: ANT Licensing
- Automation V3: Reading Data from Excel
- Automation V3: Configuration on other CI tools
- Automation V3: Setting Apache Ant Environment Variables
- Automation V3: BrowserStack Desktop
- Automation V3: Integrating with LambdaTest
- Automation V3: Sauce Labs Desktop
- Automation V3: AutoRABIT Salesforce DevOps in Provar Test
- Automation V3: Selenium Grid
- Automation V3: Working with Git
- Automation V3: Configuration for Sending Emails via the Automation Command Line Interface
- Automation V3: Parameterization using Environment Variables in GitHub Actions
- Automation V3: Slack Integration with Automation
- Automation V3: Zephyr Cloud and Server
- Automation V3: Adding a Salesforce Communities Connection
- Automation V3: Integrating with Sauce Labs Real Device
- Automation V3: Travis CI
- Automation V3: Salesforce DX Integration
- Automation V3: Variable Set Syntax
- Automation V3: Visualforce Testing
- Automation V3: List and Table Testing
- Automation V3: Salesforce Lightning Web Component (LWC) Locator Support
- Automation V3: Salesforce Console Testing
- Recommended Practices with V3
- Automation V3: Provar Naming Standards
- Automation V3: Object Mapping Between Provar Automation and Provar Manager
- Salesforce API Access Control Security Update – Impact on Provar Connections
- Automation V3: Salesforce Connection Best Practices
- Automation V3: Automation Planning
- Automation V3: Supported Testing Phases
- Automation V3: Best practices for the .provarCaches folder
- Automation V3: Best practices for .pageObject files
- Automation V3: Avoid Metadata performance issues
- Automation V3: The Best Ways to Change Callable Test Case Locations
- Automation V3: Improve Your Metadata Performance
- Automation V3: Abort Unused Test Sessions/Runs
- Automation V3: Create Records via API
- Automation V3: Test Case Design
- Automation V3: Increase auto-retry waits for steps using a global variable
- Troubleshooting with V3
- Automation V3: How to Use Keytool Command for Importing Certificates
- Automation V3: Resolving High Memory Usage
- Automation V3: Refresh Org Cache Manually
- Automation V3: Show Hidden Provar Files on Mac
- Automation V3: Add Permissions to Edit Provar.ini File
- Automation V3: Test Builder Does Not Launch
- Automation V3: Provar License Issue Solution
- Automation V3: How to Configure a Single Sign-On Connection
- Automation V3: Out of Memory Error During CI Execution
- Automation V3: Add Gmail Firewall Exception
- Automation V3: Add a License Firewall Exception
- Automation V3: Resolving Jenkins License Missing Error
- Automation V3: Increase System Memory for Provar
- Automation V3: Resolving Metadata Timeout Errors
- Automation V3: Java Version Mismatch Error
- Automation V3: Provar Manager 3.0 Install Error Resolution
- Automation V3: Test Case Does Not Run on IE Browser
- Automation V3: Test Builder Not Working Correctly
- Automation V3: Internationalization Support
- Automation V3: Salesforce Release Updates
- V3 Release Notes