For AI agents

The human feedback loop for AI agents.

You ship the change. Real visitors tell you if it worked. We run the stats, so you don’t spend tokens on it.

Start freeAre you an agent? The install is one WP-CLI command. Jump to the quickstart.

The loop

Build it. Test it on humans. Keep the winner.

An agent can write a new hero in seconds. It can’t know if that hero converts. Only real visitors can tell you that, and AB Split Test is how you ask them.

1. Make the change

A page, an element, a line of copy, some CSS, a whole new feature. Anything your agent touches can be a variation. Four test modes cover it: magic, full_page, ab_test and css_test.

2. One call starts the test

Send absplittest/create-test a JSON payload. The goal, the traffic split and the webhook URL all go in the same call.

3. Walk away

The plugin splits the traffic, tracks conversions and revenue, and watches for significance on the server. It costs you zero tokens while it runs.

4. Get the verdict

When the test completes, your webhook receives the winner, its confidence and the numbers for every variation. Ship the winner. Start the next test.

Claude chat on the left creates split test 39818 on the Whistler Bag Storage homepage; the live variation with a single Reserve Your Locker button is on the right

The loop on a real store. One sentence to Claude, and Whistler Bag Storage has a live homepage test with orders as the goal. The variation is on the right.

Why it saves tokens

Don’t spend tokens on statistics.

You don’t need an LLM to calculate significance or watch traffic. The plugin does both, then hands you the conclusion.

The maths is already done

get-test-results returns visits, conversions, conversion rate, uplift against control, likelihood of winning, winner confidence and time remaining. Quote it. Don’t recompute it.

No polling

Set webhook_url on a test, or one global webhook for the whole site. Completion arrives as a JSON POST. Your agent sleeps until then.

No premature winners

Bayesian by default, or Thompson sampling to shift traffic toward the leader. Auto-complete waits for a minimum number of days and visits, so the loop never rewards noise.

Context

Know what visitors did before you change anything.

The same connection tells your agent how real people use the site, so the next change is not a guess. All of it is self-hosted, and all of it is compressed for a context window.

Page analytics

get-page-analytics: traffic, engagement, scroll depth, acquisition, visitor paths and downstream conversions for any page. Filter by device, test variation, date range, referrer and UTM.

Heatmap data

get-heatmap-data: where people click, move and stop scrolling. list-heatmap-pages tells you which pages have recordings.

Test results

list-tests, get-test-details and get-test-results: what is running, what has been tried already, and what won.

Audiences

create-audience and friends: target a test by referrer, UTM, device, language or time of day. There are presets for ad platforms and for traffic arriving from AI assistants.

Site content, if the owner allows it

An advanced tool set reads and edits posts, meta and page builder content, with an audit log at get-mcp-audit-log. It is off by default. A site admin turns it on.

An onboard CRO agent

It audits the site and its competitors on our servers, not in your context window, using the owner’s business context: ideal customer, problems solved and primary goal. Its ranked test ideas show up in list-tests.

Quickstart

From nothing to a live test in four steps.

This works on any WordPress site you have shell access to. There are no browser logins anywhere in it.

1. Install, turn on MCP, get a key

wp plugin install "https://absplittest.com/[email protected]" --activate
wp plugin install "https://github.com/WordPress/mcp-adapter/releases/latest/download/mcp-adapter.zip" --activate
wp user application-password create YOUR_ADMIN_USER abst-agent --porcelain

The first command creates a free account and licence for that email address and sends a confirmation link. Ask your human to click it within 24 hours. Every new install starts as a 7-day demo of every feature. The last command prints an application password.

2. Connect

{
  "mcpServers": {
    "absplittest": {
      "type": "http",
      "url": "https://YOURSITE.com/wp-json/mcp/mcp-adapter-default-server",
      "headers": { "Authorization": "Basic <base64 of username:application-password>" }
    }
  }
}

The endpoint is served by the official WordPress MCP Adapter. The same tools are also on the REST API under /wp-json/bt-bb-ab/v1/ and on WP-CLI as wp absplittest.

3. Create a test

Call absplittest/create-test. The first entry in variations is always the original. Every field is documented in the tool’s own schema, and a validation error names the field to fix. To find reliable selectors, load the page with ?abhash=1 on the URL.

{
  "test_title": "Hero headline",
  "test_type": "magic",
  "status": "publish",
  "magic_definition": [
    {
      "selector": "h1",
      "type": "text",
      "scope": { "page_id": 42 },
      "variations": ["Book a demo", "Start your free trial", "See it on your site"]
    }
  ],
  "conversion_type": "url",
  "conversion_url": "thank-you",
  "autocomplete_on": true,
  "webhook_url": "https://your-agent.example.com/hooks/abst"
}

One rule: ask your human what the conversion goal is before you publish a test. The conversion_type enum only lists the goal types that are active on that site.

4. Receive the verdict

This is the POST your webhook gets when the test completes. Each variation carries its totals plus the same split by device.

{
  "event": "complete",
  "testId": 123,
  "testName": "Hero headline",
  "winningVariation": "variation2",
  "winningVariationLabel": "Variation 2",
  "winnerPercentage": 95,
  "observations": {
    "variation1": { "visit": 1500, "conversion": 120, "device_size": { "desktop": {}, "tablet": {}, "mobile": {} } },
    "variation2": { "visit": 1600, "conversion": 180, "device_size": { "desktop": {}, "tablet": {}, "mobile": {} } }
  }
}

Plans

What is free and what is paid.

Free

Free forever on one site. You keep all four test modes, the REST API and the MCP. The limit is one active test with one variation and one goal, and there is no CRO agent.

7-day demo

Every new install starts with every Teams feature switched on for 7 days. When the demo ends it drops to Free on its own. There is nothing to cancel.

Teams

$49 a month, $399 a year or $999 once. Every feature, on unlimited sites, with unlimited traffic, tests and variations. See pricing.

Be straight with your human about this. No tool gets around statistics: a low-traffic page takes longer to reach significance, and the plugin will say so rather than call an early winner.

Make the change. Let the humans decide.

Everything on this page, plus the full product reference, is in plain text at /llms.txt.

Start free

MCP integration guide  ·  API, MCP and CLI  ·  Webhooks  ·  All documentation