NestDaddy

Cred

io.github.aw3-technology/cred · v1.1.0

Issue, deduct, refund and sell credits: checkout, subscriptions, saved cards, escrow and wallets.

Connect Remote server

Terminal
claude mcp add --transport http cred https://eutdgemlrpvnxfkkpvlu.supabase.co/functions/v1/cred-mcp --header "x-api-key: <X_API_KEY>" --header "x-app-origin: <X_APP_ORIGIN>" --header "x-project-id: <X_PROJECT_ID>"
~/.cursor/mcp.json
{
  "mcpServers": {
    "cred": {
      "url": "https://eutdgemlrpvnxfkkpvlu.supabase.co/functions/v1/cred-mcp",
      "headers": {
        "x-api-key": "<X_API_KEY>",
        "x-app-origin": "<X_APP_ORIGIN>",
        "x-project-id": "<X_PROJECT_ID>"
      }
    }
  }
}
.vscode/mcp.json
{
  "servers": {
    "cred": {
      "type": "http",
      "url": "https://eutdgemlrpvnxfkkpvlu.supabase.co/functions/v1/cred-mcp",
      "headers": {
        "x-api-key": "<X_API_KEY>",
        "x-app-origin": "<X_APP_ORIGIN>",
        "x-project-id": "<X_PROJECT_ID>"
      }
    }
  }
}
Claude Desktop
Settings > Connectors > Add custom connector
URL: https://eutdgemlrpvnxfkkpvlu.supabase.co/functions/v1/cred-mcp

Replace the values in angle brackets with your own. Keys stay on your machine; we never see them.

Tools 49 found in our last check

  • list_credit_types

    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, blockchain, contract_address, chain_id, token_decimals, mint_on_issue, deployment_type). Use the id as credit_type_id in other…

  • get_balance

    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 array, not an error. Costs 1 CRD (platform credit) per call, charged even when the call is then rejected (a 429 RATE_LIMITED c…

  • issue_credits

    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 returns the original transaction with idempotent_replay: true and issues nothing more (no second webhook or mint). Without a…

  • deduct_credits

    Deduct (spend) credits from an existing user, identified by user_email (checked first) or user_id. Fails with 400 INSUFFICIENT_CREDITS (nothing deducted) or 404 USER_NOT_FOUND. Pass idempotency_key on anything an agent might retry: a replay returns the original transaction with…

  • get_transactions

    List ledger transactions, newest first (types include issue, deduct, refund). Filter by user (email or user_id) and credit_type_id; paginate with limit/offset. Costs 1 CRD (platform credit) per call, charged even when the call is then rejected (a 429 RATE_LIMITED costs nothing).…

  • refund_credits

    Refund or reverse credits. MOVES MONEY for purchases: with purchase_id or stripe_payment_intent_id it refunds the Stripe charge (prorated when partial; refund_payment: false skips the money) and claws the purchased credits back. With transaction_id (or reference_id = latest matc…

  • create_user

    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 attribution is first-touch and optional: signup_url (else the connection's x-app-origin header) is recorded on a new user,…

  • get_users

    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 / signup_credit_type_id. Costs 1 CRD (platform credit) per call, charged even when the call is then rejected (a 429 RATE_LIMITED costs no…

  • update_user

    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); metadata replaces the whole object, except referral_code (kept unless you send it) and stripe_account_id (Cred-only: the sto…

  • delete_user

    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 swap history is kept as a financial record — 409 USER_HAS_HISTORY (swap_transactions count). 404 USER_NOT_FOUND. Costs 1 CR…

  • bulk_create_users

    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 batch. A row's own signup_url/signup_host overrides the request-level signup_url. Costs 1 CRD (platform credit) per call, char…

  • get_signup_analytics

    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 = all time). Costs 1 CRD (platform credit) per call, charged even when the call is then rejected (a 429 RATE_LIMITED costs…

  • list_pricing_tiers

    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 every active credit type. The credit_type_id filter returns every tier purchasable for that type: tiers scoped to it plus…

  • create_pricing_tier

    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 credit types a tier can be bought for; [] means every active credit type. Omit credit_type_ids for all types; malformed or f…

  • update_pricing_tier

    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: false to stop selling it without deleting. Costs 1 CRD (platform credit) per call, charged even when the call is then re…

  • delete_pricing_tier

    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; pass force: true (after the user confirms) to delete those rules and the tier together. Deactivating a tier (update_pric…

  • create_checkout_session

    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; credits are issued when payment completes. Price either a pricing tier (pricing_tier_id, optionally × quantity) or a custom am…

  • list_subscriptions

    List recurring credit subscriptions (newest 100): status, credits_per_period, quantity, price, interval, current_period_end, cancel_at_period_end. status: "active" matches active, trialing and past_due. Costs 1 CRD (platform credit) per call, charged even when the call is then r…

  • cancel_subscription

    Cancel a subscription. By default it cancels at period end (credits already issued stay; no further renewals). at_period_end: false cancels immediately with no refund. With user_id/email instead of subscription_id, every live subscription of that customer is canceled. Costs 1 CR…

  • update_subscription_quantity

    Change a live subscription's quantity (seats/packs, 1–10000). CHANGES FUTURE BILLING: from the next renewal the customer pays unit price × quantity and receives unit credits × quantity; no proration now. With user_id/email the customer must have exactly one live subscription (el…

  • create_subscription_portal_link

    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 (overview). Mint it when the customer asks; don't store it. With user_id/email, uses their most recent subscription. Costs 1 CRD (…

  • get_saved_payment_method

    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 save_payment_method: true. Costs 1 CRD (platform credit) per call, charged even when the call is then rejected (a 429 RATE_LIMITED co…

  • delete_saved_payment_method

    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 there was none. Costs 1 CRD (platform credit) per call, charged even when the call is then rejected (a 429 RATE_LIMITED c…

  • charge_saved_card

    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 key never charges twice and returns the first outcome (replayed: true). Outcomes: 200 status succeeded (credits, new_bala…

  • get_auto_topup

    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 card. Rules show threshold, enabled, max_per_day, charges_last_24h, last_status/last_error and disabled_reason (set when cred…

  • save_auto_topup

    Create or replace the auto top-up rule for (user, credit type): whenever a deduct leaves the balance below threshold, cred buys one pack of pricing_tier_id on the user's saved card (at most max_per_day charges per 24h). If enabled and the balance is already below threshold, a ch…

  • delete_auto_topup

    Delete a user's auto top-up rule for credit_type_id, or ALL their rules when credit_type_id is omitted. Returns the number deleted. To pause instead, save_auto_topup with enabled: false. Costs 1 CRD (platform credit) per call, charged even when the call is then rejected (a 429 R…

  • create_escrow_hold

    Reserve credits: deducts amount from an existing user and parks it in a hold (status held), returning hold_id. Finish with capture_escrow_hold or release_escrow_hold; a hold past expires_at can be released back at any time. Pass idempotency_key on anything an agent might retry:…

  • release_escrow_hold

    Release a held hold in full back to its holder (status released). 404 HOLD_NOT_FOUND, 409 HOLD_NOT_ACTIVE if it was already released, captured or expired — so a retry after success is rejected, not repeated. Costs 1 CRD (platform credit) per call, charged even when the call is t…

  • capture_escrow_hold

    Settle a hold (status captured). amount captures part (default: all); the uncaptured remainder returns to the holder. With to_user_id/to_user_email the captured credits go to that user (created if new) — marketplace/P2P settlement; otherwise they stay deducted (settled to the pl…

  • list_escrow_holds

    List escrow holds, newest first, with total. Filter by status, holder or reference_id. Costs 1 CRD (platform credit) per call, charged even when the call is then rejected (a 429 RATE_LIMITED costs nothing). Error results include request_id; quote it to support.

  • list_swap_pairs

    List credit swap pairs (exchange_rate, fee_percent, min/max_swap_amount, is_bidirectional). Optionally filter by source or target credit type. Costs 1 CRD (platform credit) per call, charged even when the call is then rejected (a 429 RATE_LIMITED costs nothing). Error results in…

  • execute_swap

    Swap a user's credits along a swap pair: deducts source_amount of the source type and credits the converted amount (after fee) in the target type. Errors: 400 INSUFFICIENT_CREDITS, 404 USER_NOT_FOUND, 400 outside min/max. On a bidirectional pair, direction "reverse" spends the t…

  • get_referral_settings

    Get a referral program's settings (is_active, referrer/referee credits, credit type). A project can run one program per credit type: pass credit_type_id for that credit type's program (settings null when it has none); omit it for the project's default program. Costs 1 CRD (platf…

  • save_referral_settings

    Create or update a referral program: credits awarded to the referrer and to the referred user. With credit_type_id this writes THAT credit type's program (creating it if needed); without it, the project's default program. Only fields you pass change. Costs 1 CRD (platform credit…

  • generate_referral_code

    Get a user's referral code, generating one if they have none (creates the user if needed). Safe to repeat. Costs 1 CRD (platform credit) per call, charged even when the call is then rejected (a 429 RATE_LIMITED costs nothing). Error results include request_id; quote it to suppor…

  • apply_referral

    Apply a referral code for a referred user, issuing the configured credits to the referee and the referrer. credit_type_id picks the credit type's program (default: the project's default program). defer_referrer_credits pays only the referee now; the referral stays pending until…

  • complete_referral

    Pay the referrer of a referral applied with defer_referrer_credits. user_id is the REFERRED user. Safe to repeat: the payout is keyed per referral; an already completed referral answers already_completed true. 404 NO_REFERRAL. Costs 1 CRD (platform credit) per call, charged even…

  • list_referrals

    List the project's referrals, filterable by status, referrer or credit type (program). Costs 1 CRD (platform credit) per call, charged even when the call is then rejected (a 429 RATE_LIMITED costs nothing). Error results include request_id; quote it to support.

  • redeem_credits

    MOVES MONEY: cash out a user's credits as a Stripe transfer to a connected account. Deducts `amount` credits and pays amount × the credit type's exchange_rate (USD per credit; the rate cannot be overridden). The credit type must be redeemable (else 400 NOT_REDEEMABLE). destinati…

  • onboard_payout_account

    Create (or reuse) a Stripe Express connected account for an end user and return an onboarding URL for them to complete. The resulting stripe_account_id (acct_…) is stored on the user; pass it as destination to redeem_credits. return_url and refresh_url must be https on a Cred ho…

  • x402_supported

    Discover how to pay Cred with x402 (HTTP 402 stablecoin payments): the accepted scheme, network, asset and prices. Pass project_id to also get that project's credit price list. Requires no credentials and costs no CRD.

  • buy_credits_x402

    MOVES MONEY: buy a project's credits by paying in stablecoin over x402. Call once without x402_payment to receive the payment requirements (returned as an error result containing the x402 PaymentRequired object), sign them with your wallet, then call again passing the base64 pay…

  • list_x402_receipts

    List this project's x402 stablecoin payments, newest first: kind, status, payer, amount_usd, transaction_hash, credits_granted, error. Authenticated (API key). Costs 1 CRD (platform credit) per call, charged even when the call is then rejected (a 429 RATE_LIMITED costs nothing).…

  • set_user_wallet

    Attach an EVM address to an end user so on-chain credits mint to them. No signature required — the address is recorded as asserted by the operator, not proved (changing it clears any earlier verification). Only later deposits match it: a deposit already recorded as unattributed…

  • get_user_wallet

    Read the EVM address on file for an end user, and whether the holder proved it by signature (verified, verified_at). Costs 1 CRD (platform credit) per call, charged even when the call is then rejected (a 429 RATE_LIMITED costs nothing). Error results include request_id; quote it…

  • request_wallet_challenge

    Step 1 of proving an end user controls an address: get a single-use message for them to sign. The message names the operator's project and must be shown to the user unmodified. Expires in ten minutes. Then call verify_wallet_signature with the nonce and the signature their walle…

  • verify_wallet_signature

    Step 2: submit the personal_sign signature over the challenge message. On success the address is stored and marked verified. A challenge is single-use and a rejected signature consumes it too — a retry needs a fresh challenge. Costs 1 CRD (platform credit) per call, charged even…

  • list_deposits

    List on-chain token deposits observed for the project, newest first (read-only; the chain ingest writes them). status: credited (credits granted), unattributed (sent from an address no user had; held, not credited, and attaching the address with set_user_wallet only matches late…

Headers

NameDescription
x-api-key
Required, secret
Your cred.diy API key
x-app-origin
Optional
Optional URL of your app, recorded as signup attribution
x-project-id
Optional
Optional; the API key already identifies the project

Details

Endpointhttps://eutdgemlrpvnxfkkpvlu.supabase.co/functions/v1/cred-mcp (Streamable HTTP)
First published6 Nov 2026
Last updated6 Nov 2026
Registry nameio.github.aw3-technology/cred

More finance and crypto servers See all

Listing data from the official MCP registry. Status and tools from NestDaddy's daily check. Browse all MCP servers.