Model Context Protocol

Your checkout data,
inside your AI.

Connect Swipefast to Claude, ChatGPT, or any MCP client and ask about your sales in plain language. No dashboard, no SQL, no export. It uses the API key you already have, so setup is one paste and there is one place to revoke it.

Things you can just ask
  • “How much did I make last month, and how does that compare to the month before?”
  • “Which checkout converts best, and where is that traffic coming from?”
  • “Who are my top 10 customers and what have they spent?”
  • “Make me a 25% off code for Black Friday, capped at 100 uses.”

Connect it

The server speaks MCP 2025-06-18 over HTTP at https://swipefast.jacob-98c.workers.dev/api/mcp, authenticated with your API key from Settings.

Claude Code
claude mcp add --transport http swipefast https://swipefast.jacob-98c.workers.dev/api/mcp \
  --header "Authorization: Bearer sf_live_your_key_here"
Claude Desktop, Cursor, and other config-file clients
{
  "mcpServers": {
    "swipefast": {
      "type": "http",
      "url": "https://swipefast.jacob-98c.workers.dev/api/mcp",
      "headers": {
        "Authorization": "Bearer sf_live_your_key_here"
      }
    }
  }
}
ChatGPT

Add it as a custom connector with the URL above. ChatGPT’s connector UI needs to let you set an Authorization header — where that lives moves around between releases, so if you can’t find the field, check their current connector docs. The server itself is a standard streamable-HTTP MCP endpoint and needs nothing special from the client.

To check the endpoint is reachable before wiring up a client, a plain GET returns the server card:

curl https://swipefast.jacob-98c.workers.dev/api/mcp

What it can do

9 read-only tools and 1 that writes. Every tool is scoped to your account by construction — none of them takes a user id, so there is no way to point one at somebody else’s data.

list_productsread
Every product/checkout on the seller's Swipefast account, with price, status and public URL. Start here when you need a product id or slug for another tool.
get_productread
One product plus the order bumps, upsells and price tiers attached to it. Accepts either the product id or its slug.
list_ordersread
Recent real orders (test orders excluded). Use `days` to scope to a window and `productSlug` to scope to one checkout.
revenue_summaryread
Gross revenue, refunds, affiliate commission and net for a trailing window, with the previous window of the same length for comparison. This is the same maths the dashboard shows, so the numbers will always agree.
revenue_by_monthread
Revenue per calendar month, oldest first — for spotting trends and seasonality.
top_customersread
The seller's customers ranked by lifetime spend, with order counts.
account_summaryread
All-time revenue and order count, plus active subscriptions and the MRR they represent. The fastest single call for "how is my business doing".
traffic_sourcesread
Revenue and orders grouped by UTM source/medium/campaign, with conversion rate. Sales with no attribution roll up as "Direct" rather than being dropped.
list_couponsread
Every discount code on the account, with how many times each has been redeemed.
create_couponwrites
Create a new discount code. This is the only tool that changes anything — everything else is read-only. Codes are stored uppercase and matched case-insensitively at checkout.

Worth knowing

Money comes back twice. Every amount is returned as cents and as a formatted string, because a model reading a bare 9900 will cheerfully tell you that you made ninety-nine hundred dollars.

The numbers match your dashboard. Test orders are excluded and refunds are handled the same way the dashboard handles them — the tools call the same functions the dashboard does, so the two can never disagree.

Only one tool writes. create_coupon is the entire write surface; everything else is annotated read-only so clients can auto-approve it. Refunds and product edits are deliberately not exposed — those stay in the dashboard, where a human clicks the button.

Your key is your key. It is the same one the REST API uses. Rotating it in Settings disconnects every MCP client at once.