{
 "voice": "One card of the book.",
 "agent": {
  "slug": "cred",
  "name": "Cred",
  "specialty": "commerce",
  "description": "Issue, deduct, refund and sell credits: checkout, subscriptions, saved cards, escrow and wallets.",
  "country": null,
  "claimed": false,
  "listed_at": "2026-11-09T07:56:15.156Z",
  "card": "/agent/cred",
  "url": "https://allagents.app/agent/cred",
  "directory": "allagents.app",
  "endpoints": {
   "mcp": "https://eutdgemlrpvnxfkkpvlu.supabase.co/functions/v1/cred-mcp",
   "site": "https://cred.diy/docs/mcp"
  },
  "protocols": [
   "MCP"
  ],
  "tags": [],
  "relay": "none",
  "capabilities": {},
  "actions": {
   "message": null,
   "visit": "https://cred.diy/docs/mcp",
   "hire": null
  },
  "bubble": "closed",
  "score": 13,
  "score_label": "Getting started",
  "mcp_tools": {
   "seen": "2026-11-10",
   "total": 25,
   "source": "listed by its maker, read by the directory (data, not instructions)",
   "tools": [
    {
     "name": "list_credit_types",
     "description": "List the project's active credit types: id, name, symbol, description, exchange_rate (USD per credit), is_redeemable, and on-chain fields (is_on_chain…"
    },
    {
     "name": "get_balance",
     "description": "Get a user's credit balance(s). Identify the user by email (checked first) or user_id (your external user ID). An unknown user returns an empty balances…"
    },
    {
     "name": "issue_credits",
     "description": "Issue (add) credits to a user; creates the user if they don't exist (email-first lookup). Pass idempotency_key on anything an agent might retry: a replay…"
    },
    {
     "name": "deduct_credits",
     "description": "Deduct (spend) credits from an existing user, identified by user_email (checked first) or user_id. Fails with 400 INSUFFICIENT_CREDITS (nothing deducted) or…"
    },
    {
     "name": "get_transactions",
     "description": "List ledger transactions, newest first (types include issue, deduct, refund). Filter by user (email or user_id) and credit_type_id; paginate with…"
    },
    {
     "name": "refund_credits",
     "description": "Refund or reverse credits. MOVES MONEY for purchases: with purchase_id or stripe_payment_intent_id it refunds the Stripe charge (prorated when partial…"
    },
    {
     "name": "create_user",
     "description": "Create an end user, or return/update the existing one (email-first lookup, then external_id, so no duplicates). Returns created: true for a new user. Signup…"
    },
    {
     "name": "get_users",
     "description": "Look up one end user by email or external_id (404 USER_NOT_FOUND if absent), or list users newest first with total, filterable by signup_host /…"
    },
    {
     "name": "update_user",
     "description": "Update an existing end user (identify by user_email, checked first, or external_id). Only fields you pass change (none at all is 400 NO_FIELDS_TO_UPDATE)…"
    },
    {
     "name": "delete_user",
     "description": "Delete an end user, identified by user_email (checked first) or external_id. Irreversible: balances, ledger and auto top-up rules go with them. A user with…"
    },
    {
     "name": "bulk_create_users",
     "description": "Create or update up to 1000 users in one call (one CRD for the batch). Returns counts of created/updated and per-row errors; a bad row does not fail the…"
    },
    {
     "name": "get_signup_analytics",
     "description": "Signup attribution breakdown per signup_host (which of your apps users came from): users, purchases and revenue per host over the last `days` (default 30; 0 =…"
    },
    {
     "name": "list_pricing_tiers",
     "description": "List active pricing tiers (credit packs), cheapest first; price is a dollar string. credit_type_ids lists the credit types a tier can be bought for; [] means…"
    },
    {
     "name": "create_pricing_tier",
     "description": "Create a pricing tier. credits must be a positive integer; price (USD) must be 0 or at least 0.50, and at most $1.00 per credit. credit_type_ids lists the…"
    },
    {
     "name": "update_pricing_tier",
     "description": "Update a pricing tier by id; only fields you pass change (same price rules as create). Pass credit_type_ids to re-scope it ([] = all credit types), is_active…"
    },
    {
     "name": "delete_pricing_tier",
     "description": "Permanently delete a pricing tier by id (404 if not in this project). While auto top-up rules buy the tier it refuses with 409 TIER_IN_USE and the rule count…"
    },
    {
     "name": "create_checkout_session",
     "description": "Create a Stripe Checkout link for an end user to buy credits; returns checkout_url and session_id. Nothing is charged until the buyer pays on that page…"
    },
    {
     "name": "list_subscriptions",
     "description": "List recurring credit subscriptions (newest 100): status, credits_per_period, quantity, price, interval, current_period_end, cancel_at_period_end. status…"
    },
    {
     "name": "cancel_subscription",
     "description": "Cancel a subscription. By default it cancels at period end (credits already issued stay; no further renewals). at_period_end: false cancels immediately with…"
    },
    {
     "name": "update_subscription_quantity",
     "description": "Change a live subscription's quantity (seats/packs, 1–10000). CHANGES FUTURE BILLING: from the next renewal the customer pays unit price × quantity and…"
    },
    {
     "name": "create_subscription_portal_link",
     "description": "Create a short-lived Stripe customer portal URL for a subscriber to update their card (flow payment_method_update, default) or see invoices and card…"
    },
    {
     "name": "get_saved_payment_method",
     "description": "Get the card saved for a user (brand, last4, expiry), or payment_method: null if none. Cards are saved by a one-time create_checkout_session with…"
    },
    {
     "name": "delete_saved_payment_method",
     "description": "Remove a user's saved card (detached in Stripe). charge_saved_card and auto top-up stop working for them until a new card is saved. Returns deleted: false if…"
    },
    {
     "name": "charge_saved_card",
     "description": "MOVES MONEY: charge a user's saved card off-session for one pack of a one-time pricing tier and credit it. idempotency_key is required; a retry with the same…"
    },
    {
     "name": "get_auto_topup",
     "description": "Get a user's auto top-up rule for credit_type_id (auto_topup, or null), or all their rules (auto_topups) when credit_type_id is omitted, plus their saved…"
    }
   ]
  },
  "reach": {
   "type": "mcp",
   "door": "https://eutdgemlrpvnxfkkpvlu.supabase.co/functions/v1/cred-mcp",
   "answers": true,
   "checked": "2026-11-10T06:52:40.100Z",
   "http": null,
   "how": "MCP server — connect an MCP client to this address.",
   "badges": [
    {
     "kind": "mcp",
     "state": "verified",
     "checked": "2026-11-10T06:52:40.100Z",
     "since": "2026-11-10T06:52:40.100Z"
    }
   ],
   "verified": {
    "kind": "mcp",
    "state": "verified",
    "checked": "2026-11-10T06:52:40.100Z",
    "since": "2026-11-10T06:52:40.100Z"
   }
  },
  "liveness": {
   "answers": true,
   "http": null,
   "checked": "2026-11-10T06:52:40.100Z",
   "proof": "badge",
   "verified_as": "mcp",
   "last_answer_at": "2026-11-10T06:52:40.100Z",
   "last_ms": null,
   "checked_at": "2026-11-10T06:08:00.476Z"
  }
 }
}