Hive A/B Test

io.github.srotzinPublished by GitHub account srotzinv1.0.0Updated Oct 28, 2026

A/B experiment runner for the A2A network with x402 micropayments on Base USDC.

VerifiedStreamable HTTPWeb executableFinanceData & AnalyticsAI & ML

Overview

AI-generated overview

Remote MCP shim that assigns agents to sticky A/B test buckets, records conversions, and returns two-proportion Z-test results, paid per call in USDC.

What you can do
  • Assign agents to experiment variants with deterministic, sticky bucket assignment
  • Record conversions for an assigned agent and experiment
  • Read aggregate counts and a two-proportion Z-test with p-value, relative lift and significance flags
  • Register, update and delete experiments through the companion REST API
When to use it
Useful when autonomous agents need a shared, deterministic A/B bucketing and conversion-counting service with built-in significance testing, rather than running the experiment logic themselves.
Requirements
A remote streamable HTTP endpoint; no local install or account is declared. Calls are gated by x402 micropayments on Base USDC: the first unpaid call returns a 402 with a nonce, and a transaction hash and payer must be submitted to obtain a short-lived access token. Self-hosting needs Node.js and a SQLite path.
Before you install
Assign and conversion calls cost money ($0.001 and $0.005 per call) and require on-chain USDC payment on Base, so an assistant can spend funds. The service stores experiment, assignment and conversion records in SQLite, and agent identifiers are sent to a third-party host. The free results tool is read-only; the REST API can also create, update and delete experiments.

Installation

In SourceWeft

  1. Open Hive A/B Test in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.srotzin%2Fhive-mcp-abtest/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "hive-a-b-test": {
      "type": "http",
      "url": "https://hive-mcp-abtest.onrender.com/mcp"
    }
  }
}

README

hive-mcp-abtest

[srotzin/hive-mcp-abtest MCP server]

A/B experiment runner for the A2A network. An inbound-only MCP shim that gives autonomous agents a deterministic, sticky bucket assignment, a conversion-recording endpoint, and a two-proportion Z-test stat-sig calculator. Pricing is per call via x402 on Base USDC.

  • $0.001 per abtest_assign
  • $0.005 per abtest_record_conversion
  • abtest_results is free and read-only

The shim does not run experiments on behalf of the caller. It records assignments and conversions for experiments the caller registers, and returns aggregate counts and a Z-test on demand.

How bucket assignment works

Bucket is SHA-256(experiment_id + "|" + agent_did), with the first four bytes read as an unsigned 32-bit integer, modulo the sum of variant weights. The first call writes the result. Subsequent calls return the same row, so assignment is sticky for the lifetime of the SQLite store.

A variant list is [{ id, weight? }, ...]. Weight defaults to 1 per variant. Pass [{id:"control"},{id:"treatment",weight:3}] for a 25/75 split.

Stat-sig calculator

Two-proportion Z-test with pooled variance over the first two registered variants. Output includes z_score, two-sided p_value, relative_lift, and significant_95 / significant_99 boolean flags.

MCP

  • Transport: Streamable HTTP, JSON-RPC 2.0
  • Protocol: 2024-11-05
  • Endpoint: POST /mcp

Tools:

ToolTierPrice
abtest_assign3$0.001
abtest_record_conversion3$0.005
abtest_results0free

REST

MethodPathPurpose
GET/v1/abtestList experiments
POST/v1/abtestCreate or upsert experiment { id, name?, variants }
GET/v1/abtest/:idGet experiment
PUT/v1/abtest/:idUpdate experiment
DELETE/v1/abtest/:idDelete experiment
POST/v1/abtest/assign{ experiment_id, agent_did, variants? } — $0.001
POST/v1/abtest/convert{ experiment_id, agent_did, metric?, value? } — $0.005
GET/v1/abtest/results?experiment_id=...&metric=... — Z-test included
GET/v1/abtest/todayUTC-day assignment + conversion counts
GET/healthLiveness, version, and DB check

Storage

SQLite at /tmp/abtest.db with three tables: experiments, assignments, conversions. Override with DB_PATH.

Environment

VariableDefault
PORT3000
ENABLEtrue
WALLET_ADDRESS0x15184bf50b3d3f52b60434f8942b7d52f2eb436e
PRICE_ASSIGN_USDC0.001
PRICE_CONVERT_USDC0.005
DB_PATH/tmp/abtest.db
X402_ENABLEDtrue

Set X402_ENABLED=false to bypass payment gating in local development.

Quickstart

bash
npm installnpm start# in another shellcurl -s http://localhost:3000/healthcurl -s -X POST http://localhost:3000/v1/abtest \  -H 'content-type: application/json' \  -d '{"id":"prompt_v2","name":"prompt v2","variants":[{"id":"control"},{"id":"treatment","weight":3}]}'curl -s -X POST http://localhost:3000/v1/abtest/assign \  -H 'content-type: application/json' -H 'x-payment: {}' \  -d '{"experiment_id":"prompt_v2","agent_did":"did:hive:demo:1"}'

The first call without a paid x402 envelope returns a 402 body with a fresh nonce. Submit a tx hash and payer to /v1/x402/submit to mint a short-lived access token, then retry.

License

MIT. See LICENSE.

Author

Steve Rotzin · [email protected] · https://www.thehiveryiq.com

Hive Civilization Directory

Part of the Hive Civilization — agent-native financial infrastructure.

Brand: #C08D23

Source: README.md at commit f3fb6ae

Tools

0
SourceWeft has not read this server's tools yet.

Version history

1
  1. v1.0.0LatestSep 16, 2026

Score

85% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts