WORKSPACE GUIDE · REVIEWED 13 SEPTEMBER 2026
An optional way to operate the same business
The web workspace works without an AI client. Connect a client only when you want it to act through the account’s permitted API operations. Start with the account and payment status, use a draft while preparing the offer, and review the result with the merchant before publishing or taking consequential actions.
01 — Overview
What GoCushy is
GoCushy is an MCP-native checkout and funnel that an AI operates on the merchant's own Stripe account. Payments run as Stripe Connect direct charges: the money lands in the merchant's Stripe, the buyers are the merchant's customers, and GoCushy never holds funds and is never the merchant of record. Payouts run on the merchant's normal Stripe schedule, to their bank.
You (the agent) do the wiring: create the products, compose the offers, write the checkout copy, and hand back a live link. The one thing you cannot do is Stripe's identity verification — that returns a URL for the human to complete, and it must be completed by the account owner. Review and approval still belong to the merchant.
02 — Setup
Connect it
Three ways in, one credential. Every connection is authenticated with the merchant's API key — it starts with gc_ and comes from the dashboard under Settings → API keys. Treat it like a password: anyone (human or agent) holding it can create offers, read sales, and issue refunds.
a. Local MCP — Claude Desktop, Claude Code, Cursor
The package is @gocushy/mcp on npm. For Claude Code, one command in the terminal:
claude mcp add gocushy -e GOCUSHY_API_KEY=gc_… -- npx -y @gocushy/mcp
For Claude Desktop (or Cursor's .cursor/mcp.json), add the server to the config file:
{
"mcpServers": {
"gocushy": {
"command": "npx",
"args": ["-y", "@gocushy/mcp"],
"env": { "GOCUSHY_API_KEY": "gc_…" }
}
}
}
b. Remote MCP — ChatGPT & hosted agents
No install. For connector-style clients that can't send custom headers, put the key in the path — the key is the authentication, so set Authentication to None:
https://mcp.gocushy.com/mcp/gc_…
ChatGPT specifics: browser only, paid plan required. Turn on Developer mode under Settings → Security and login, then add the server from chatgpt.com/plugins with the + button.
c. REST API — anything else
The same surface, JSON in and JSON out. Base URL and bearer auth:
curl https://api.gocushy.com/api/v1/me \
-H "Authorization: Bearer gc_…"
03 — The model
Mental model
Two nouns, one settlement. Keep them straight and the whole surface falls into place:
- Product — the thing being sold: a price plus delivery (where the buyer gets access). One-time or subscription.
- Offer — how it's sold: a product wrapped in a live checkout, with an optional order bump (a checkbox add-on on the page) and a one-click upsell (accepted after payment, card already saved).
product (price + delivery)
└─ offer (live checkout + optional bump + upsell)
└─ settles on the merchant's own Stripe
The same product can appear in many offers — standalone, as a bump on one checkout, as an upsell on another. Every paid order settles directly on the merchant's Stripe; GoCushy is only ever the machinery in between.
04 — The happy path
Golden path
Zero to a shareable checkout link in six moves. Check state first, do the one human handoff, then build:
-
payment_statusCheck whether the merchant's Stripe is connected and charges are enabled. If it already is, skip straight to
create_product. -
connect_payment— the human stepIf Stripe isn't ready, this returns the hosted onboarding URL. Hand it to the human to open and complete Stripe's identity verification. The merchant completes verification. Other consequential actions still require their authorization.
-
create_productCreate the thing being sold — a price (in cents) and delivery (see below). Subscriptions also need an interval.
-
create_offerWrap the product in a checkout. Attach an order bump and one-click upsell if you have them. The offer goes live immediately.
-
get_checkout_linkFetch the hosted checkout URL (and its short
gocushy.com/l/…link). This is the live checkout link and can accept payments. Use the separate test URL for a no-charge visual preview, then verify the real provider and delivery setup before sharing. -
Share
Hand the link back to the human to drop into emails, posts, or their AI-built page. Done.
05 — Deliver the goods
Delivery
A live offer has to actually give the buyer something. Before you share a link, make sure the offer can deliver — set at least one of these:
delivery_url— the members area, download, or booking link. It becomes the "Access your purchase" button on the receipt and the signed thank-you page.delivery_note— on-screen access text shown with (or in place of) the button: instructions, a code, next steps.- An
order.paidwebhook — register one withcreate_webhookso the merchant's own system grants access when the order is paid.
warning before sharing. If a product has no delivery set, the response includes a warnings field. Don't hand the human a link that takes money and delivers nothing — clear the warnings first by adding a delivery URL, a note, or a webhook.06 — What you can't do
Guardrails
Some things are deliberately out of your reach. These aren't missing features — they're what lets a merchant safely hand an agent their API key.
- Prices, totals, and countdowns are computed server-side. You can't ship a checkout that charges a different amount than it shows, and you can't fake scarcity — a deadline must be a real future date, and the countdown hides when it passes and can never reset per-visitor.
- Checkout copy is whitelisted blocks. Headline, subheadline, bullets, testimonials, guarantee, deadline, image, button text, accent — plain text, length-capped, HTML-escaped into fixed zones. You can fully customise a checkout and structurally cannot break the layout or hide the order form.
- Buyer-sensitive URLs are signed. The thank-you page and access links only render for genuinely paid orders — nobody reaches the product by guessing a URL.
- Tax and affiliates are gated behind the Tax & Affiliates Pack. Real tax collection, compliant invoices, and the affiliate program unlock with the pack — it's included in the $99/month plan, and a one-time add-on for Free-plan accounts.
- Every action is logged. A full activity trail records who did what — the merchant, an agent (tagged with its API key), or GoCushy itself. Nothing an agent does is invisible.
07 — Reference
The tools
The registered MCP operations, checked against the current server. Read the returned validation errors and warnings; permissions, feature flags and provider capabilities still apply.
| Tool | Purpose |
|---|---|
connect_payment | Start Stripe onboarding for this merchant account. |
payment_status | Check whether Stripe onboarding is complete and the account can take payments (charges_enabled). |
create_product | Create a sellable product. |
update_product | Update a product's name, description, delivery link/note, or price. |
seller_defaults | Get or set the seller's once-per-business answers — currency, brand accent colour, checkout template, and standard guarantee. |
import_products | Bring what the merchant already sells: imports active products (with default prices) from their connected Stripe account into gocushy. |
list_products | List this account's products with their IDs and prices. |
create_offer | Compose a checkout: a main product, order bumps (checkbox add-ons at checkout — up to 3 via bumps[], or the single bump_product_id/bump_headline pair) and a post-purchase one-click sequence (up to 3 steps via funnel[] — upsell, then optionally a downsell shown only when that upsell is declined, then optionally a second upsell; or the single upsell_* fields). |
update_checkout | Set the selling content on an offer's checkout page — described, not designed: your words render into gocushy's fixed, conversion-tested layout, so you can fully customise without ever breaking it. |
get_checkout_link | Get the hosted checkout URL for an offer (by offer name or slug). |
pause_offer | Stop an offer taking orders: its checkout link (and short cushy link) stops working immediately. |
resume_offer | Re-open a paused (draft) offer so its checkout link takes real money again — the last gate before an offer sells, so confirm with the seller first. |
get_embed_code | Get copy-paste snippets to put an offer's checkout on any website (Lovable, WordPress, hand-coded — anything). |
create_payment_request | Create a payment request: a checkout pre-addressed to ONE named client — their name and email pre-filled, a fixed tax-inclusive amount due, an optional due date. |
send_payment_request | Email (or re-email) an open payment request to its named client: the amount, due date, note, the signed pay link, and the bank details when the request carries them. |
list_payment_requests | Payment requests with status (open/paid/cancelled), a derived overdue flag, the client, amounts, and each request's signed url. |
record_payment_request_payment | Record that a payment request's client already paid OUTSIDE gocushy (a bank transfer, typically). |
cancel_payment_request | Withdraw an open payment request: its checkout stops taking money and the client's link shows a 'withdrawn' page (not a broken 404). |
list_orders | Recent orders: buyer, status (pending/paid/failed/refunded), totals, whether the bump and upsell were taken. |
get_sales | Revenue and conversion stats: totals, order counts, bump/upsell take rates, plus by_offer and by_project rollups. |
get_offer_stats | Deep-dive on a single offer: net revenue (gross minus refunds), paid orders + AOV, checkout completion rate (started-to-paid; page views are not tracked), bump/upsell take rates + upsell revenue, refund rate, daily revenue series, and the 20 most recent orders. |
get_attribution_report | Which ads actually made money — including the rebills and upsells an ad pixel never reports. |
get_orders_behind | The receipts for one attribution row: the actual orders (date, buyer, amount net of refunds, status) that get_attribution_report counted under a given source / campaign / ad. |
get_roas | One line per traffic source: revenue, rebills, LTV, and ROAS where the merchant has reported ad spend. |
set_conversion_tracking | Send purchases to Meta from gocushy's SERVER instead of relying on the browser pixel, which loses roughly a third of conversions to adblockers and never sees a rebill. |
create_campaign_link | Mint a SHORT link that carries a whole UTM set — cushy.link/t/comm rather than a 130-character tagged URL nobody can paste into a post or read out on a call. |
update_campaign_link | Change where an existing short code goes, or fix its tags, WITHOUT changing the code. |
list_campaign_links | Every campaign short link on the account with its tags, destination and click count — busiest first. |
report_ad_spend | Tell gocushy what was spent on a network for a period, so Trace can compute ROAS against real revenue. |
connect_email | Wire up the merchant's email platform with their API key. |
connect_notifications | Send the merchant a chat ping on every sale — plus rebills, refunds, failed renewals (dunning) and cancellations — to Slack, Discord or Telegram. |
connect_paypal | Accept PayPal on checkouts using the merchant's OWN PayPal Business account. |
connect_wallet | Set the merchant's OWN public wallet address to receive agent-paid USDC on Base (the x402 agent crypto rail). |
set_followup | Map an offer to email actions: when the trigger fires (purchase, refund, upsell_taken, renewal, abandoned, payment_failed, or dunning_recovered), the buyer is subscribed to the list and tagged. |
list_followups | Every follow-up rule across the account's offers, with per-rule health: enabled, last_fired_at (null = never fired), and the connection's status + error if its ESP credentials broke. |
update_followup | Edit an existing rule (IDs from list_followups) instead of stacking a new one: retarget its trigger, point it at a different connection or list, swap its tags, or pause/resume it with enabled. |
delete_followup | Permanently remove a follow-up rule (IDs from list_followups). |
set_business_details | Set the merchant's business profile: legal name, address, tax registration, invoice prefix. |
tax_status | Check whether Stripe Tax is activated on the merchant's own connected account and which registrations exist. |
activate_tax | Activate Stripe Tax on the merchant's OWN connected account by setting their head-office address (required — it flips tax from pending to active). |
add_tax_registration | Register the merchant with Stripe Tax for a jurisdiction they actually hold a registration in — this is what makes tax get charged there. |
list_tax_registrations | List the merchant's Stripe Tax registrations (country + status). |
create_webhook | Subscribe the merchant's own system to order events (order.paid, order.refunded, order.failed, order.upsell_taken). |
verify_purchase | Check whether an email address has bought from this merchant (optionally a specific product or offer). |
create_coupon | Create a promo code buyers type at checkout — percent off OR a fixed amount off (never both). |
cush_ask | Ask gocushy's own assistant a question about how gocushy works, or about this account's own numbers (revenue, orders, bump/upsell rates, setup gaps). |
cush_confirm | Apply a change Cush proposed. |
list_coupons | All coupons with their discount, scope, redemption counts, expiry, and active status. |
deactivate_coupon | End a promo: the code immediately stops working at checkout. |
reactivate_coupon | Turn a deactivated code back on — buyers can redeem it at checkout again immediately, still subject to its original expiry and redemption cap. |
get_activity | The account's full activity trail, newest first — every meaningful action taken by the merchant in their dashboard (actor: user), by you or any other agent via the API (actor: ai, tagged with the API key used), and automatically by gocushy (actor: system — orders paid/failed/refunded). |
create_affiliate | Register someone who promotes the merchant's offers for commission. |
list_affiliates | All affiliates with their referral codes and currently-due balances (released commissions minus clawbacks). |
get_affiliate_link | The shareable referral link for an affiliate + offer combination. |
mark_commissions_paid | After the merchant has actually sent an affiliate their released balance (PayPal/Wise/bank — their choice), record it here. |
cancel_subscription | Cancel a buyer's subscription. |
refund_order | Refund a paid order (full by default, or partial via amount_cents). |
Use the developer reference for request shapes, errors, signatures and delivery behavior.
08 — In practice
Recipes
What the human actually says, and roughly what you do. They speak in sentences; you translate into the tools above.
"Set up a $49 course with a $19 workbook bump and add buyers to my welcome email."
create_product (course, 4900) → create_product (workbook, 1900) → create_offer with the workbook as the bump → connect_email if needed → set_followup on the purchase trigger → get_checkout_link and share.
"Run a 48-hour 20%-off coupon."
create_coupon for 20% off the offer, then hand back the code. The checkout applies the discount server-side; the countdown, if you set one, stays honest.
"Refund order #1042."
Confirm the order and amount with the human, then refund_order. The refund goes back through the merchant's Stripe and cascades — invoice, any refund follow-up rule, and any affiliate commission clawback all stay consistent.
"How did last month go, and who are my best affiliates?"
get_sales for the revenue, order counts, and per-offer breakdown → list_affiliates for each affiliate's numbers and due balance. Summarise it in plain English.
09 — Pricing & access
Pricing & access
One flat monthly price, everything included:
| Plan | Price | GoCushy platform fee |
|---|---|---|
| GoCushy | $99/month (first 30 days free) | 0% added fees — everything included |
| Free | $0 | 3% per sale |
The paid plan is $99 a month with everything included and 0% added platform fees — the first 30 days are free, and the merchant can cancel any time. The Worldwide Tax & Affiliates Pack (real tax collection, compliant invoices, and the affiliate program) is included in the $99/month plan; on the Free plan it's an optional $95 one-time add-on. Free is $0 + a 3% platform fee per sale.