Introduction

WelcomeServices map

Guides

AcceptSpend

Legal

SecurityPrivacyTerms

PreviousWebhooksNextSearch tools
BlogPrivacyTerms

Rill MCP

Connect Cursor, Claude, Grok Bot, or your own agents to Rill: sellers host pay links; agents fund a wallet and pay those links (or any verified payment_ready URL).


Connect in seconds

Add Rill to your agent. Hosted endpoint: https://mcp.userill.com/mcp

Add to CursorAdd to Grok Bot
{
  "mcpServers": {
    "rill": {
      "url": "https://mcp.userill.com/mcp"
    }
  }
}

Environment

  • RILL_API_URL

    API base URL. Defaults to http://localhost:3001 for local development.

  • RILL_VW_KEY

    Wallet key (rill_vw_* or rill_vw_test_*). Used for spend tools such as rill_pay_url. The session can also adopt a key after rill_register_agent or rill_create_wallet.

  • RILL_SELLER_KEY

    Seller key (rill_sk_* or rill_sk_test_*). Required for Accept tools: pay links, resources, Connect, and withdraw.

  • RILL_OWNER_JWT

    Owner JWT for claim, fund, create wallet, create seller, webhooks, and recycle. Pass as owner_jwt on the tool when the session is not already authenticated.

  • RILL_ENVIRONMENT

    live (default) or test. Sets X-Rill-Environment for owner JWT tools. Or pass environment=live|test on register, claim, fund, create_wallet, rill_sellers, webhooks, and related tools.

  • RILL_MCP_TRANSPORT

    stdio for local Cursor, or http for the hosted MCP endpoint.

Guest HTTP

Hosted guest MCP at https://mcp.userill.com/mcp/guest needs no API key. It exposes discovery, register, fund, pay, balance, and verify, the full Spend cold-start. Call rill_fund with action=checkout and an amount (optional environment=test): the session auto-registers a bootstrap wallet key, returns a Stripe Checkout URL for a human, then you poll action=intent until paid and call rill_pay_url. Save the wallet key once, it is not shown again. Accept/seller tools stay on the full MCP endpoint.

Using guest MCP, a wallet key, or the hosted endpoint is use of the Service under the Terms of use.

Owner cold-start

On the full MCP endpoint, authenticate with an owner JWT for Accept and custom wallets. The org slug is assigned when the account wallet is created. Fund with rill_fund, then create a wallet via rill_create_wallet. Guest Spend does not need an owner JWT, bootstrap agents fund via hosted Checkout with their VW key. Prefer rill_pay_url against capabilities.urls.seed_gate or a seller gate_url; use rill_discover for the curated can-pay set (Accept gates and partners). The full bazaar is rill_list_directory.

Accept go-live (gate URL + webhook)

Org path: get paid on MPP/x402 without us accessing your API. rill_sellers list or create → save rill_sk_* → rill_create_pay_link → copy gate_url → rill_enable_payments → rill_webhooks payment.succeeded to unlock on your product. Share the gate URL with agents, not a pricing page. pay_page_url is the same SKU for humans. Test with a funded wallet via rill_pay_url (Spend is the test buyer). Connect Stripe (rill_connect, pass country) so Accept pays Transfer to your account.

Connect off-ramp

Open-rail Accept credits seller balance, then Transfers to the connected Stripe account (Express by default, or a linked Standard account) when payouts are enabled. Call rill_connect with action=onboard (pass country) for Express, or action=link for an existing Stripe account. Agent bootstrap keys cannot open Connect. Send the human to https://userill.com/accept?connect=start. Poll action=sync until payouts_enabled. Then withdraw with rill_withdraw, or wait for auto payout. Recycle moves seller balance into the owner wallet without Stripe.

Cursor HTTP

Point your MCP client at the hosted HTTP endpoint (or a local http transport). For guest bootstrap without keys, use https://mcp.userill.com/mcp/guest.

cursor
{
  "mcpServers": {
    "rill": {
      "url": "https://mcp.userill.com/mcp"
    }
  }
}

MCP resources

The server also exposes markdown docs as MCP resources at rill://docs/authentication, rill://docs/money, rill://docs/idempotency, rill://docs/webhooks, rill://docs/errors, and rill://docs/recipes. Prefer rill_capabilities for live policy numbers instead of hardcoding limits.