LiveVariant MCP server
online · 100% uptimeio.github.livevariant/livevariant·v0.1.5·2 starsBuild, inspect and read adaptive A/B tests. Config travels in the URL; no account or API key needed.
2 stars131 downloads/wk
Reviews
Write oneNobody has reviewed LiveVariant yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
LiveVariant tools (9, 2 write)
write = sends, deletes, buys or postsbuild_testwrite actionFreeCreates a LiveVariant test and returns every URL needed to run it, plus a freshly generated stats secret. Pass `variants` to test one element, or `slots` to test several at once (hero image AND call-to-action, say). With slots the test optimizes the COMBINATION: one model learns how the elements interact, which two separate tests structurally cannot see. There is no algorithm to pick either way; every test runs the same joint model, sized from its shape. By default, nothing is registered anywhere: the config IS the test, encoded into the URLs, and the test's identity is a hash of it. Pass `publishableKey` on an account-enabled deployment to also register the new test to that key's organization, so it appears under My tests; the config and URLs are still the test, and registration failure is returned as a warning rather than failing the build. Editing a variant later produces a DIFFERENT test with its own empty history, which is usually what you want per campaign but is worth saying out loud to whoever you are building this for. The stats secret is returned once and never again. Only its hash goes into the config, so nobody, including this service, can recover it. Give it to the person who will read the results.
generate_priorsFreeTakes YOUR estimate of how each variant will perform and converts it into the prior the model starts from, so a test does not spend its first visitors rediscovering what you already suspect. You supply the guess; this does the arithmetic and the capping. That capping is the point: a prior is expressed as pseudo-observations, and it is deliberately held weak enough that real data overrides it quickly. The response says exactly how many real visitors per variant it takes to wash your guess out, so you can judge whether you have been too confident. Being wrong here costs a little early traffic, not the test. Priors are outside the identity hash, so the test keeps its id, its URLs and any history it already has. Pass `when` to make the belief hold for ONE segment only ("image B is the one for the blue segment"). Without it the belief is about every visitor, which is a different and much stronger claim.
get_statsFreeFetches a test's results and works out what they mean. Alongside the raw counts it returns the probability that each combination is genuinely best and the expected cost of stopping now and keeping the leader. Use those rather than comparing conversion rates by eye: a variant ahead 2/10 to 1/10 looks twice as good and is very close to a coin flip, and that mistake is the single most common way an A/B test gets called wrong. Multi-slot tests also report per-slot marginals: how each variant did across every combination it appeared in. Needs the stats secret. If you have the manage URL, its #fragment IS the secret and it will be used automatically.
get_test_statusFreeReports what the deployment's registry knows about a test: whether it is claimed into an account (and by which organization), and whether each redirect destination is a verified domain. Unverified destinations work, but visitors see a 'Redirecting you to…' continue screen first. When you see verified: false, tell the user to verify the domain under Settings on the dashboard; the three ways are a DNS TXT record, serving the well-known file, or having the SDK tag with their publishable key live in the site's source. If the test is unclaimed, remind them the manage URL claims it in one click when opened signed in. Requires the test's stats secret, the same as get_stats. A manage URL's #fragment is used automatically.
inspect_testFreeDecodes a test and describes it: slots, variants, context, and whether it can be served by redirect. Also lints it for the mistakes that only show up once a campaign is out, such as an email test whose context comes from geo (which a mail proxy answers about itself). Use this before sending anything, and to answer 'what is this link?'.
list_testsFreeLists tests registered to the signed-in account, newest first, with cursor pagination and an optional case-insensitive name filter. Only exists on deployments with accounts, and only answers for an identified caller: unlike every other tool, WHOSE tests these are cannot be expressed as an argument. Each entry carries the encoded config, which inspect_test and get_stats accept directly.
register_testFreeRegisters a test you built earlier to the organization a publishable key belongs to, so it shows under My tests and its stats are readable from the dashboard without the secret. Use this only when the user provides both the test's stats secret and a publishable key for an organization they administer. The stats secret must match the hash inside the config, and the publishable key identifies the organization to register into. Prefer passing publishableKey to build_test directly: it registers at creation in one step. Keyless tests cannot be registered this way (nothing to prove with); they register through the tag on a verified domain. The organization can remove a listing from its dashboard (the test itself keeps serving).
upload_imagewrite actionFreeUploads an image to the deployment's asset store and returns its URL, for use as a variant's `image` (email tests) or `url`. The returned URL is deliberately not fetchable on its own: assets are only served with a short-lived signature that the serve endpoints mint per request, so uploading here does not create free static hosting. Use `previewUrl` (valid for an hour) to check what was stored. Storage is content-addressed: the id is the sha256 of the bytes, so uploading the same image twice is harmless and returns the same URL. Raster images only; SVG is refused because it can carry scripts. Not every deployment enables asset hosting, and this tool says so plainly when yours does not.
variant_briefFreeReturns the constraints to write or generate test variants against, for email or web, plus the rules that decide whether a test can be read at all once it runs. The one that matters most: one idea per slot. To vary two elements, give the test two slots and let it learn the combination, rather than bundling both changes into one variant and never learning which half worked. Ask for this before drafting variants, then produce them yourself against what it returns.
Public scan report
scanner v0.1.10 · 2026-10-31 · same rubric, same numbers if you re-run it
- Code scan5 source files scanned25/25
- Live reliabilityremote reachable in 1854ms20/20
- Tool poisoning9 tool descriptions checked15/15
- Auth qualityopen endpoint exposes 2 write-action tools with no auth3/15
- Maintenancelast push 44 days ago12/15
- Maintainer identityregistry namespace matches repository owner7/10
Findings (1)
- highWrite-action tools reachable without authentication
auth.open-write
How LiveVariant compares
Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.
- Safety score
- 82/100
- higher than 63% of 48,255 servers
- Tools
- 9
- the typical server has 7
- Tools that change things
- 22%
- typical: 0%. Fewer write tools means less an agent can break
- Uptime
- 100%
- of our recent checks; the typical remote server answers 100%
- Response time
- 358 ms
- faster than 41% of 30,031 servers
- GitHub stars
- 2
- more than 75% of 28,688 servers
- Downloads a week
- 131
- more than 68% of 12,191 servers with a package
What its tools let an agent do: 5 read · 3 create · 1 change
Install LiveVariant in Claude Code, Cursor or VS Code
claude mcp add --transport http livevariant https://livevariant.com/mcp
What the publisher says
From the LiveVariant repository's README, as published. We do not edit it. Read it on GitHub
LiveVariant
The test that keeps testing.
Open-source A/B testing that never stops. One adaptive model routes traffic toward what's winning while your campaign runs, learns a different winner per audience, and tests several elements as one combination. The whole test lives in a URL: no account, no platform, nothing to install on your site.
livevariant.com · built for LLM agents first, marketers and developers second, all touching the same object: the URL.
See it live
The headline on livevariant.com is itself a running LiveVariant test, served by the SDK snippet shown on that page: two slots, nine combinations, adapting per country and device. We test our own homepage with our own product.
So do the agents we run on it. livevariant.ai is the front door of a small colony of autonomous AI agents whose one job is to grow LiveVariant, and every page they publish runs as a LiveVariant test: the expected winner is written down first, the live stats are public, and the misses stay in the ledger. The first agent, Prior, keeps its journal and experiment ledger at prior.livevariant.ai.
Let your LLM run it
The whole setup is one conversation, and there is nothing to install: naming the site in any AI chat is enough for the agent to discover the tools and take it from there.
"I want to A/B test my next 'Daily brew' newsletter with
livevariant.com. Give me some ideas and set it up."
Your assistant proposes a plan first: two slots tested as one combination rather than as two separate tests, plus the audience segments results split by.
slot hero: packshot / cafe / fireside (three drafted scenes, one product)
slot cta: "Shop the roast" / "Start your ritual" / "Brew better today"
ctx: utm_source · country (merge tag)"Looks good!"
It builds the test and hands back three links for the template (one image link per slot, plus the click link that records the win and redirects) and your manage link with live results:
img hero livevariant.link/s/<config>?slot=hero&id={{email_or_any_id}}&auto=0
img cta livevariant.link/s/<config>?slot=cta&id={{email_or_any_id}}&auto=0
click livevariant.link/c/<config>?id={{email_or_any_id}}
manage livevariant.com/manage/<config>#<stats-secret>Nine combinations, every recipient sticks to their own, traffic shifts toward whatever combination is winning while the campaign runs, and a different combination can win per audience. Ask for get_stats later and it tells you each combination's probability of being best, not just raw rates.
Give your agent the toolkit
Installing buys deeper integration: the full skill in context, tools without discovery. Skills (recommended, works with Claude Code and Cowork):
npx skills add livevariant/livevariantClaude Code plugin (this repository is the marketplace):
claude
/plugin marketplace add livevariant/livevariant
/plugin install livevariant@livevariantCodex plugin:
codex plugin marketplace add livevariant/livevariant
codex plugin add livevariant/livevariantAny other agent: MCP hosted at https://livevariant.com/mcp, stdio via npx -y @livevariant/mcp, or plain HTTP at POST /api/v1/ (interactive docs at /docs, spec at /openapi.json). No API keys: a test's config and its stats secret carry all the authority there is.
Or do it yourself
The builder composes a test in the browser, no code and no account. Or write the URL by hand:
https://livevariant.link/s?v=https://cdn.you.com/hero-a.jpg&v=https://cdn.you.com/hero-b.jpg&id={{recipient_id}}Shortened. The full README is on GitHub.
Nothing above is checked by us. What we check is on the safety report.
Grade history
- 2026-10-31downgradeA → Bscore 82: Write-action tools reachable without authentication
LiveVariant: common questions
- Is LiveVariant MCP server safe?
- Mostly: it is graded B (82/100). Read the LiveVariant safety report
- How do I install LiveVariant?
- It runs remotely at livevariant.com. Add it to Claude Code, Cursor, VS Code or Claude Desktop with the snippets above, or call it through the mcp.market gateway without installing anything.
- Does LiveVariant need an API key?
- Yes. The registry entry asks for
LIVEVARIANT_API_TOKEN,LIVEVARIANT_ASSET_UPLOAD_TOKEN. - Is LiveVariant maintained?
- The last commit was 48 days ago (2026-09-17). The latest release is v0.1.5.
- Is LiveVariant up?
- 100% of our last 28 checks got an answer. We check remote servers about four times a day.
- What can I use instead of LiveVariant?
- Servers from other publishers that do the same job: PartCAD MCP server.
- How does LiveVariant compare with other MCP servers?
- safety score 82/100 (higher than 63% of 48,255 servers); tools 9 (the typical server has 7); tools that change things 22% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.
Alternatives to LiveVariant
Same job from other publishers: the closest match first, then the best rated.
- PartCADInspect, render, test and export the parts and assemblies of PartCAD hardware packagesnot reviewedEstablishedA