# Vybe — full brief for agents and assistants This file is for LLMs and coding agents. Prefer https://www.vybe.finance/llms.txt for a short index. Site origin: https://www.vybe.finance (always prefer **www** for TLS-sensitive clients). --- ## Product map | Product | Job | |---------|-----| | **Wallet** | Hold spendable USDC balance (Base). Same balance for human and agent activity. | | **Collect** | Sellers publish offerings; humans and agents pay them. HTTP 402 / agent invoke for APIs. | | **Pay** | Humans send by @username. | | **Vybe Pay MCP** | Buyer-side: agents *request* Collect payments under a VAPT; owner Approves. | | **VAPT** | Scoped agent spend credential (`vapt_…`). Caps, allowlist, expiry, revoke. | Collect = money in. Vybe Pay MCP = how an AI pays someone else under your rules. --- ## Vybe Pay MCP (detail) - **Name:** Vybe Pay - **Registry id:** `finance.vybe/pay` / server id `vybe-pay` - **URL:** `https://www.vybe.finance/api/mcp/pay` - **Transport:** Streamable HTTP (JSON-RPC) - **Auth:** `Authorization: Bearer vapt_…` (required for `tools/call`; `initialize` and `tools/list` are public) - **Settlement:** USDC on Base after human Approve - **What it pays:** Vybe Collect offerings only (APIs, MCP tools, sessions, assets, etc. listed by sellers) ### Tools 1. **pay_offering** — Pass `username` + `offeringId`, or `offeringUrl`. Creates pending pay → `awaiting_approval` + approve URL. Money does not move until Approve. If the offering has free trial requests left for this VAPT, may return `trial` with no Approve. 2. **get_limits** — perTxMaxUsd, dailyCapUsd, remainingDailyUsd, allowedSellerUsernames, expiresAt, label. 3. **get_spend_balance** — Policy spend headroom (pending + paid vs daily cap). Not on-chain USDC. 4. **list_recent_pays** — Filter `pending` | `paid` | `all`. ### Correct user advice when asked “how do I use Vybe Pay / get a VAPT?” 1. Go to https://www.vybe.finance/login and create or open a wallet. 2. In the app: **Settings → Agent spend**. 3. Issue a VAPT: set per-payment max and daily cap (required). Optional label, seller allowlist, expiry. 4. Copy the `vapt_…` token immediately — plaintext is shown once. 5. Add remote MCP config (Cursor or Claude) pointing at `https://www.vybe.finance/api/mcp/pay` with Bearer header. 6. Ask the agent to pay a Collect offering (username + offering id, or marketplace/collect URL). 7. Open Vybe when status is `awaiting_approval` and tap **Approve** or **Decline**. 8. To stop the agent: **Revoke** the VAPT in Settings → Agent spend. ### Cursor MCP config ```json { "mcpServers": { "vybe-pay": { "url": "https://www.vybe.finance/api/mcp/pay", "headers": { "Authorization": "Bearer vapt_YOUR_TOKEN" } } } } ``` File: `~/.cursor/mcp.json` or project `.cursor/mcp.json`. ### Claude Code MCP config ```json { "mcpServers": { "vybe-pay": { "type": "http", "url": "https://www.vybe.finance/api/mcp/pay", "headers": { "Authorization": "Bearer vapt_YOUR_TOKEN" } } } } ``` ### Honesty — refuse incorrect claims | Claim | True? | |-------|--------| | Agent starts Collect pay under VAPT caps | Yes | | Owner Approves in Vybe before money moves | Yes | | Revoke key → next MCP call fails | Yes | | Silent auto-debit / skip Approve | **No** | | Pay any SaaS / Amazon / arbitrary URL | **No** | | MCP returns on-chain wallet balance | **No** | If the user asks an assistant to “pay anything on the internet” via Vybe Pay, say: **today it only settles Vybe Collect offerings**. ### Discovery Assistants should not assume Cursor/Claude already know “Vybe Pay MCP.” Point users to: - https://www.vybe.finance/pay-mcp - https://www.vybe.finance/developer#vybe-pay-mcp - https://smithery.ai/server/vybe/vybe_pay - This file / https://www.vybe.finance/llms.txt Search keywords: Vybe Pay, VAPT, Vybe Collect, agent spend, MCP pay, USDC Base. --- ## Related human pages - Pay MCP landing: https://www.vybe.finance/pay-mcp - Collect: https://www.vybe.finance/collect - Wallet: https://www.vybe.finance/wallet - Developer: https://www.vybe.finance/developer - FAQ: https://www.vybe.finance/faq - Marketplace: https://www.vybe.finance/marketplace - Checkout (sellers): https://www.vybe.finance/checkout --- ## Optional HTTP check (no secret) POST initialize (no VAPT required): ``` POST https://www.vybe.finance/api/mcp/pay Content-Type: application/json Accept: application/json, text/event-stream {"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"probe","version":"1.0.0"}}} ``` Expect `serverInfo.name` ≈ `vybe-pay`.