We make your Stripe checkout agent-aware.

Stripe owns the rails — catalog, checkout, subscriptions, portal, money. Inception owns the decision layer above them. Your catalog and prices never change; their reach does: one import, and your checkout works everywhere your MCP server does.

Start converting todayBook a demo Stripe Connect · Test mode end-to-end · No card data

Four layers. Four owners.

The separation of concerns is non-negotiable — it is what keeps your security review short and your billing stack untouched.

Stripe
Payment collection, catalog, prices, subscriptions, checkout UI, portal, tax, billing lifecycle
MCP / your server
Tool transport, auth context, session identity
You
The product, its features, its pricing decisions
Inception
Trigger detection · lifecycle-state reasoning · capability→plan reasoning · path selection · agent-native presentation · abandonment intelligence · admin/buyer routing · attribution · cross-vendor optimization

We never touch card data. We never hold entitlement authority. We make your existing Stripe catalog and checkout agent-aware — nothing more, and nothing less.

Checkout on your Stripe. Resolved by webhook. Resumed in the thread.

The pack runs on Stripe Connect: every checkout session is created on your own connected account, against your live catalog and prices. Existing subscribers attach to their Stripe customer. Brand-new converters mint a new customer inline — the payment path is acquisition-capable, not expansion-only.

  • Outcomes resolve via webhook — confirmed by Stripe, never inferred.
  • Entitlement refreshes the moment payment lands, and the task resumes.
  • Attribution is deterministic: session → pseudonymous subject → Stripe customer.
See the full loop →

One import. Your entitlement logic stays yours.

registerExpansionPack() drops into the MCP server you already ship. Your resolveEntitlement callback runs locally in your process — or skip writing one entirely: config-only delegation reads your own Stripe Billing and Entitlements, no entitlement code to write.

  • entitlementSource: ’stripe’ — your Stripe is the verdict, config-only.
  • Fail-open by design: our outage can never break your tools.
  • Works at analytics posture first — see the moments before converting any.
Read the quickstart →
server.ts @inception-agents/expansion-pack
import { registerExpansionPack } from '@inception-agents/expansion-pack';

registerExpansionPack(server, {
  apiKey: process.env.INCEPTION_API_KEY,

  // option A — your logic, running locally in your server
  resolveEntitlement: async ({ subjectRef, action }) =>
    checkPlanLimits(subjectRef, action),

  // option B — no entitlement code at all: your own
  // Stripe Billing + Entitlements is the verdict
  // entitlementSource: 'stripe',
});

// fail-open: if we're down, your tools aren't.

Your security review is short by design.

Everything sensitive stays where it already lives. What we add is a decision layer — and decision layers don’t need your customers’ card numbers.

No card data. Ever.

Payment collection happens on Stripe’s surfaces, on your connected account. Card data never touches Inception — there is no PCI scope to review, because there is no card path through us.

No entitlement authority.

Your entitlement verdict is computed by your code or your Stripe — never by us. We detect the moment and present the path; whether the gate opens is always your system’s call.

Pseudonymous identity.

End users are known to us only as a vendor-hashed subject_ref. PII is prohibited in the contract, not just discouraged in the docs.

Questions your team will ask.

Do you replace my billing stack?

No. Stripe keeps the money, and billing, metering, and entitlement platforms are composable inputs, not competitors — your resolveEntitlement callback reads from whatever you already use. We never hold entitlement authority; your logic stays yours.

What does Inception charge on transactions?

A take-rate is part of the model, but it is off through design-partner pilots — the platform subscription is the price today. When it turns on, it appears in your dashboard beside the revenue it produced, justified by your own numbers, never ours.

Do you support trials?

Trials are free, always. The pack provisions a trial through your own hook, tracks its lifecycle, and treats a trial converting as a first-class conversion event with deterministic attribution.

What if the blocked user isn’t the buyer?

Checkout is one path of five. When the blocked user can’t buy, the card routes to a workspace admin with the exact blocked action attached, to the billing portal, to sales, or to a graceful limited mode. Nothing dead-ends.

Does it work in Stripe test mode?

Yes — end-to-end. Connect a test-mode account and run the full loop — wall, checkout, webhook, entitlement refresh, resume — before a real dollar moves.

Your rails don’t change. Their reach does.

One import into your MCP server, your own Stripe underneath, live in minutes — test mode first if you like.