BitBooth
Agent Setup
PageDelta · $0.01 per observation

Give your agent fresh web evidence—and the exact change.

page_delta renders a public page, returns bounded Markdown and exact focus evidence, and compares it with that XRPL payer's prior observation. It uses real XRPL mainnet RLUSD only after you explicitly configure a dedicated wallet and hard spend limits.

Release status: @bitbooth/mcp-fetch@2.3.1 is public on npm and clean-install verified. Official MCP Registry publication is pending separate approval and public readback. Installing it does not spend: without a payment wallet it exposes only free discovery and preflight. page_delta appears only after the operator selects xrpl-rlusd, provides a dedicated seed, and sets a per-call cap of at least 0.010000 plus an explicit daily cap.

1. Pick your MCP client

The examples below enable real-money PageDelta. Replace the seed placeholder through your MCP client's secret environment facility, use a dedicated low-balance XRPL wallet, and lower the daily cap if one observation is all you intend to authorize.

Edit ~/Library/Application Support/Claude/claude_desktop_config.json (Mac) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "bitbooth-fetch": {
      "command": "npx",
      "args": ["-y", "@bitbooth/mcp-fetch@2.3.1"],
      "env": {
        "BITBOOTH_PAYMENT_RAIL": "xrpl-rlusd",
        "BITBOOTH_XRPL_SEED": "sEdDEDICATED_LOW_BALANCE_AGENT_WALLET",
        "BITBOOTH_MAX_PER_CALL_USD": "0.010000",
        "BITBOOTH_DAILY_LIMIT_USD": "0.10"
      }
    }
  }
}

Restart Claude Desktop. Your agent now has page_delta plus the lower-priced XRPL watch tools.

claude mcp add bitbooth-fetch \
  --env BITBOOTH_PAYMENT_RAIL=xrpl-rlusd \
  --env BITBOOTH_XRPL_SEED=sEdDEDICATED_LOW_BALANCE_AGENT_WALLET \
  --env BITBOOTH_MAX_PER_CALL_USD=0.010000 \
  --env BITBOOTH_DAILY_LIMIT_USD=0.10 \
  -- npx -y @bitbooth/mcp-fetch@2.3.1

Cursor → Settings → MCP → "Edit in settings.json":

{
  "mcpServers": {
    "bitbooth-fetch": {
      "command": "npx",
      "args": ["-y", "@bitbooth/mcp-fetch@2.3.1"],
      "env": {
        "BITBOOTH_PAYMENT_RAIL": "xrpl-rlusd",
        "BITBOOTH_XRPL_SEED": "sEdDEDICATED_LOW_BALANCE_AGENT_WALLET",
        "BITBOOTH_MAX_PER_CALL_USD": "0.010000",
        "BITBOOTH_DAILY_LIMIT_USD": "0.10"
      }
    }
  }
}

Edit ~/.continue/config.json:

{
  "experimental": {
    "modelContextProtocolServers": [
      {
        "transport": {
          "type": "stdio",
          "command": "npx",
          "args": ["-y", "@bitbooth/mcp-fetch@2.3.1"],
          "env": {
            "BITBOOTH_PAYMENT_RAIL": "xrpl-rlusd",
            "BITBOOTH_XRPL_SEED": "sEdDEDICATED_LOW_BALANCE_AGENT_WALLET",
            "BITBOOTH_MAX_PER_CALL_USD": "0.010000",
            "BITBOOTH_DAILY_LIMIT_USD": "0.10"
          }
        }
      }
    ]
  }
}

If you're building your own agent client, BitBooth speaks the standard MCP 2025-06-18 protocol over stdio. To verify the package boots:

echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"my-agent","version":"1.0"}}}' | \
  BITBOOTH_PAYMENT_RAIL=xrpl-rlusd BITBOOTH_XRPL_SEED=sEdDEDICATED_LOW_BALANCE_AGENT_WALLET \
  BITBOOTH_MAX_PER_CALL_USD=0.010000 BITBOOTH_DAILY_LIMIT_USD=0.10 \
  npx -y @bitbooth/mcp-fetch@2.3.1

Returns the standard MCP initialize response without spending. Explicit XRPL RLUSD mode exposes page_delta, watch_page, and watch_xrpl_wallet; Base mode exposes fetch.

2. Enable PageDelta safely (XRPL mainnet)

1

Create a dedicated XRPL agent wallet

Do not use a personal or treasury wallet. Keep only the small RLUSD call budget and XRP fee reserve you intend this agent to control, and inject the seed through the MCP client's secret environment facility.

2

Fund only the intended call and fee budget

PageDelta costs exactly 0.010000 RLUSD per delivered observation on this MCP path. The wallet also needs the correct Ripple RLUSD trustline and a small XRP reserve for network fees. The package pins the issuer, merchant, resource, network, source tag, and one-time invoice from the fresh challenge.

3

Set explicit spend policy

The per-call cap must be at least the PageDelta price. The daily cap is your own cumulative ceiling; 0.10 permits at most ten $0.01 observations before fees and only if prior results are acknowledged.

BITBOOTH_PAYMENT_RAIL=xrpl-rlusd
BITBOOTH_XRPL_SEED=sEdDEDICATED_LOW_BALANCE_AGENT_WALLET
BITBOOTH_MAX_PER_CALL_USD=0.010000
BITBOOTH_DAILY_LIMIT_USD=0.10
4

Call page_delta deliberately

Each new paid observation needs a fresh UUID requestId. Reuse that UUID only to recover the same attempt after an uncertain delivery. Before starting another observation, explicitly acknowledge the prior completed request with acknowledgeRequestId.

3. Use it from your agent

Once the XRPL configuration is active, your agent has access to page_delta. Try a bounded prompt like:

"Use page_delta with a fresh UUID requestId to observe https://example.com. Use article extraction and exact focus text 'Example Domain'. Stop if the challenge is not exactly 0.010000 RLUSD or exceeds my configured limits."

The buyer validates the fresh PAYMENT-REQUIRED challenge, signs an invoice-bound XRPL payment as PAYMENT-SIGNATURE, and validates the returned PAYMENT-RESPONSE receipt against the local payment identity. Returned page content is untrusted input.

4. PageDelta + supported package tools

ToolWhat it doesBest forCanonical price
page_deltaRendered Markdown, exact focus evidence, payer-scoped diff, optional JPEGPricing, release, policy, and status evidence0.010000 RLUSD
watch_pageFingerprint → payer-scoped change statusPricing, releases, policies, status pages0.001 RLUSD
watch_xrpl_walletFee buffer + RLUSD runway + new validated activityAutonomous wallet health and destination policy0.001 RLUSD
fetch (fast or full)HTML → Markdown on a separate Base payment modeSimple fetch or article extraction0.005 USDC

page_delta is the primary product and returns the rendered content plus bounded evidence. watch_page returns change status, not page content. watch_xrpl_wallet returns OK, WARN, or CRITICAL plus wallet-health evidence. None is a background scheduler. The MCP package currently automates PageDelta payment only on XRPL RLUSD; use the live HTTP 402 challenge when integrating another advertised rail.

5. Payment modes and mainnet warnings

XRPL mode is real money. PageDelta has no testnet mode in this MCP release. The separate Base fetch mode defaults to Sepolia and requires its own explicit mainnet opt-in.

# Real Base mainnet (USDC) — 0.005 USDC per fetch (~$0.005)
export BITBOOTH_CHAIN_ID=8453
export BITBOOTH_API_URL=https://app.heinrichstech.com
export BITBOOTH_RPC_URL=https://base-rpc.publicnode.com
export BITBOOTH_AGENT_KEY=0xWALLET_FUNDED_WITH_REAL_USDC
# Real XRPL mainnet (RLUSD) — 0.010000 RLUSD per PageDelta observation
export BITBOOTH_PAYMENT_RAIL=xrpl-rlusd
export BITBOOTH_XRPL_SEED=sEdDEDICATED_LOW_BALANCE_AGENT_WALLET
export BITBOOTH_MAX_PER_CALL_USD=0.010000
export BITBOOTH_DAILY_LIMIT_USD=0.10

XRPL mode is pinned to BitBooth's HTTPS origin, merchant address, RLUSD issuer, exact resource, source tag, and one-time invoice. Its encrypted per-wallet journal persists reservations, completed proofs, and UTC-day spend across restarts. A deliberately low wallet balance remains the hard loss ceiling.

6. Configuration reference

Env varDefaultPurpose
BITBOOTH_AGENT_KEYBase only0x-prefixed EVM wallet private key. Use a dedicated wallet.
BITBOOTH_PAYMENT_RAILbasebase or the explicit real-money opt-in xrpl-rlusd.
BITBOOTH_XRPL_SEEDXRPL onlyDedicated XRPL agent-wallet seed. Never print, commit, or paste it into a prompt.
BITBOOTH_MAX_PER_CALL_USD0.10 Base / 0.001 XRPLReject a challenge above this stablecoin amount. PageDelta stays hidden unless this is explicitly set to at least 0.010000.
BITBOOTH_DAILY_LIMIT_USD1.00 Base / 0.10 XRPLPer-wallet, per-UTC-day reservation limit. XRPL accounting is persisted in the encrypted wallet journal across restarts.
BITBOOTH_CHAIN_ID8453284532 = Base Sepolia (testnet). 8453 = Base Mainnet (real money).
BITBOOTH_API_URLhttps://app.heinrichstech.comBitBooth gateway endpoint.
BITBOOTH_RPC_URLchain defaultEVM RPC node URL.
BITBOOTH_CONFIRMATIONS2Minimum Base transaction confirmations before retrying with PAYMENT-SIGNATURE.
BITBOOTH_XRPL_MAX_FEE_DROPS100Reject an autofilled XRPL transaction whose network fee exceeds this many drops.
BITBOOTH_API_KEYnoneOptional tenant API key for higher rate limits. PageDelta buyer calls do not require an account or API key.

7. Troubleshooting

SymptomFix
page_delta is missingSelect xrpl-rlusd, provide the dedicated seed, and explicitly set BITBOOTH_MAX_PER_CALL_USD to at least 0.010000.
Agent wallet key requiredThe separate Base fetch mode needs BITBOOTH_AGENT_KEY. It is not the PageDelta credential.
XRPL mode requires a dedicated seedSet BITBOOTH_XRPL_SEED through your MCP client's secret environment facility after explicitly selecting xrpl-rlusd.
Payment exceeds the configured daily limitThe client stopped before authorizing another payment. Wait for the next UTC day or deliberately approve a cap change; do not delete the journal to bypass it.
Prior PageDelta result is unacknowledgedRecover the prior result with its original requestId, inspect it, then pass that UUID as acknowledgeRequestId with a fresh UUID for the next call.
Wallet 0x... has no ETH for gasHit alchemy.com/faucets/base-sepolia with your wallet address.
Wallet 0x... has no USDCHit faucet.circle.com → Base Sepolia → 10 USDC.
Unexpected HTTP 502Gateway upstream is briefly down. Retry in ~30s. File an issue if persistent.
Tool doesn't appear in agentRestart your MCP client. Check the client's MCP server logs for boot errors.

8. What's next