View as Markdown

Stripe Integration

Manage Stripe customers, payments, and subscriptions

The Stripe integration provides access to manage Stripe customers, payments, and subscriptions through the Integrate MCP server.

Installation

The Stripe integration is included with the SDK:

import { stripeIntegration } from "integrate-sdk/server";

Setup

1. Create a Stripe OAuth App

  1. Go to Stripe Connect Settings
  2. Create a new OAuth application
  3. Configure your redirect URI
  4. Note your Client ID and Client Secret

2. Configure the Integration on Your Server

Add the Stripe integration to your server configuration. The integration automatically reads STRIPE_CLIENT_ID and STRIPE_CLIENT_SECRET from your environment variables:

import { createMCPServer, stripeIntegration } from "integrate-sdk/server";
 
export const { client: serverClient } = createMCPServer({
  apiKey: process.env.INTEGRATE_API_KEY,
  integrations: [
    stripeIntegration({
    }),
  ],
});

You can override the environment variables by passing explicit values:

stripeIntegration({
  clientId: process.env.CUSTOM_STRIPE_ID,
  clientSecret: process.env.CUSTOM_STRIPE_SECRET,
});

3. Client-Side Usage

The default client automatically includes all integrations. You can use it directly:

import { client } from "integrate-sdk";
 
await client.authorize("stripe");
const result = await client.stripe.listCustomers({});
 
console.log(result);

If you're using a custom client, add the integration to the integrations array:

import { createMCPClient, stripeIntegration } from "integrate-sdk";
 
const customClient = createMCPClient({
  integrations: [stripeIntegration()],
});

Configuration Options

export interface StripeIntegrationConfig {
  /** Stripe OAuth client ID (defaults to STRIPE_CLIENT_ID env var) */
  clientId?: string;

Tools

stripe_list_customers

List customers

export interface StripeListCustomersParams {
    /** Maximum number of customers to return */
    limit?: number;

stripe_get_customer

Get a specific customer

export interface StripeGetCustomerParams {
    /** Customer ID */
    customer_id: string;

stripe_create_customer

Create a new customer

export interface StripeCreateCustomerParams {
    /** Customer email */
    email?: string;

stripe_update_customer

Update an existing customer

export interface StripeUpdateCustomerParams {
    /** Customer ID */
    customer_id: string;

stripe_delete_customer

Delete a customer

export interface StripeDeleteCustomerParams {
    /** Customer ID */
    customer_id: string;

stripe_search_customers

Search customers using Stripe search syntax

export interface StripeSearchCustomersParams {
    /** Stripe search query (e.g. "email:'user@example.com'") */
    query: string;

stripe_list_payments

List payment intents

export interface StripeListPaymentsParams {
    /** Filter by customer */
    customer?: string;

stripe_get_payment

Get a specific payment intent

export interface StripeGetPaymentParams {
    /** Payment Intent ID */
    payment_id: string;

stripe_create_payment

Create a payment intent

export interface StripeCreatePaymentParams {
    /** Amount in cents */
    amount: number;

stripe_cancel_payment

Cancel a payment intent

export interface StripeCancelPaymentParams {
    /** Payment Intent ID */
    payment_id: string;

stripe_capture_payment

Capture an authorized payment intent

export interface StripeCapturePaymentParams {
    /** Payment Intent ID */
    payment_id: string;

stripe_list_subscriptions

List subscriptions

export interface StripeListSubscriptionsParams {
    /** Filter by customer */
    customer?: string;

stripe_get_subscription

Get a subscription by ID

export interface StripeGetSubscriptionParams {
    /** Subscription ID */
    subscription_id: string;

stripe_create_subscription

Create a subscription

export interface StripeCreateSubscriptionParams {
    /** Customer ID */
    customer: string;

stripe_update_subscription

Update a subscription

export interface StripeUpdateSubscriptionParams {
    /** Subscription ID */
    subscription_id: string;

stripe_cancel_subscription

Cancel a subscription

export interface StripeCancelSubscriptionParams {
    /** Subscription ID */
    subscription_id: string;

stripe_list_invoices

List invoices

export interface StripeListInvoicesParams {
    /** Filter by customer */
    customer?: string;

stripe_get_invoice

Get an invoice by ID

export interface StripeGetInvoiceParams {
    /** Invoice ID */
    invoice_id: string;

stripe_create_invoice

Create an invoice for a customer

export interface StripeCreateInvoiceParams {
    /** Customer ID */
    customer: string;

stripe_finalize_invoice

Finalize a draft invoice

export interface StripeFinalizeInvoiceParams {
    /** Invoice ID */
    invoice_id: string;

stripe_pay_invoice

Pay an open invoice immediately

export interface StripePayInvoiceParams {
    /** Invoice ID */
    invoice_id: string;

stripe_void_invoice

Void an invoice (cannot be undone)

export interface StripeVoidInvoiceParams {
    /** Invoice ID */
    invoice_id: string;

stripe_list_products

List products

export interface StripeListProductsParams {
    /** Maximum number to return */
    limit?: number;

stripe_get_product

Get a product by ID

export interface StripeGetProductParams {
    /** Product ID */
    product_id: string;

stripe_create_product

Create a product

export interface StripeCreateProductParams {
    /** Product name */
    name: string;

stripe_list_prices

List prices

export interface StripeListPricesParams {
    /** Maximum number to return */
    limit?: number;

stripe_get_price

Get a price by ID

export interface StripeGetPriceParams {
    /** Price ID */
    price_id: string;

stripe_create_price

Create a price for a product

export interface StripeCreatePriceParams {
    /** Product ID to attach this price to */
    product: string;

stripe_list_refunds

List refunds

export interface StripeListRefundsParams {
    /** Maximum number to return */
    limit?: number;

stripe_get_refund

Get a refund by ID

export interface StripeGetRefundParams {
    /** Refund ID */
    refund_id: string;

stripe_create_refund

Create a refund for a payment

export interface StripeCreateRefundParams {
    /** Payment Intent ID to refund */
    payment_intent: string;

stripe_get_balance

Get the current Stripe account balance

No parameters.

stripe_list_events

List events from the Stripe event log

export interface StripeListEventsParams {
    /** Maximum number to return */
    limit?: number;

stripe_get_event

Get a specific event by ID

export interface StripeGetEventParams {
    /** Event ID */
    event_id: string;

stripe_list_payment_methods

List payment methods for a customer

export interface StripeListPaymentMethodsParams {
    /** Customer ID */
    customer: string;

Notes

  • Category: Finance
  • Authentication mode: OAuth