# Stripe — how to use (mcp.ai)

Stripe offers online payment infrastructure, fraud prevention, and APIs enabling businesses to accept and manage payments globally

## Option A — via MCP (recommended)
Remote MCP endpoint (HTTP, streamable): `https://api.mcp.ai/p_stripe?ms=1784578800000`
Add it as a custom/remote MCP connector in your client (Claude, Cursor, VS Code…), then authenticate when prompted. Once connected, ask the agent to use the server's tools (e.g. `stripe_cancel_subscription`).

## Option B — via direct REST API
Base URL: `https://api.mcp.ai/api/stripe`
Auth: `Authorization: Bearer sk_live_…` — create a workspace API key at https://mcp.ai/settings/api-keys
Discover endpoints: `GET https://api.mcp.ai/api/stripe/_endpoints`

### Endpoints
- `POST https://api.mcp.ai/api/stripe/cancel/subscription` — Cancels a customer's active stripe subscription at the end of the current billing period, with options to invoice immediately for metered usage and prorate charges for unused time.
  - body: { prorate?: boolean, invoice_now?: boolean, subscription_id: string, cancellation_details?: object }
- `POST https://api.mcp.ai/api/stripe/confirm/payment/intent` — Confirms a stripe paymentintent to finalize a payment; a `return url` is necessary if the payment method requires customer redirection.
  - body: { shipping?: object, return_url?: string, receipt_email?: string, capture_method?: string, payment_method?: string, payment_intent_id: string, setup_future_usage?: string }
- `POST https://api.mcp.ai/api/stripe/create/customer` — Creates a new customer in stripe, required for creating charges or subscriptions; an email is highly recommended for customer communications.
  - body: { name?: string, email?: string, phone?: string, address?: object, description?: string }
- `POST https://api.mcp.ai/api/stripe/create/invoice` — Creates a new draft stripe invoice for a customer; use to revise an existing invoice, bill for a specific subscription (which must belong to the customer), or apply detailed customizations.
  - body: { footer?: string, issuer?: object, number?: string, currency?: string, customer: string, due_date?: integer, metadata?: object, discounts?: object[], rendering?: object, description?: string, auto_advance?: boolean, from_invoice?: object, on_behalf_of?: string, subscription?: string, automatic_tax?: object, custom_fields?: object[], shipping_cost?: object, transfer_data?: object, days_until_due?: integer, default_source?: string, account_tax_ids?: string[], payment_settings?: object, shipping_details?: object, collection_method?: string, default_tax_rates?: string[], statement_descriptor?: string, application_fee_amount?: integer, default_payment_method?: string, automatically_finalizes_at?: integer, pending_invoice_items_behavior?: string }
- `POST https://api.mcp.ai/api/stripe/create/payment/intent` — Creates a stripe paymentintent to initiate and process a customer's payment; using `application fee amount` for a connected account requires the `stripe-account` header.
  - body: { amount: integer, confirm?: boolean, currency: string, customer?: string, metadata?: object, shipping?: object, return_url?: string, description?: string, off_session?: boolean, receipt_email?: string, payment_method?: string, setup_future_usage?: string, payment_method_types?: string[], statement_descriptor?: string, application_fee_amount?: integer, payment_method_options?: object, automatic_payment_methods?: object, statement_descriptor_suffix?: string }
- `POST https://api.mcp.ai/api/stripe/create/price` — Creates a new stripe price for a product, defining its charges (one-time or recurring) and billing scheme; requires either an existing `product` id or `product data`.
  - body: { tiers?: object[], active?: boolean, product?: string, currency: string, metadata?: object, nickname?: string, recurring?: object, lookup_key?: string, tiers_mode?: string, unit_amount?: integer, product_data?: object, tax_behavior?: string, billing_scheme?: string, currency_options?: object, custom_unit_amount?: object, transform_quantity?: object, transfer_lookup_key?: boolean, unit_amount_decimal?: string }
- `POST https://api.mcp.ai/api/stripe/create/product` — Creates a new product in stripe, encoding the request as `application/x-www-form-urlencoded` by flattening nested structures.
  - body: { id?: string, url?: string, name: string, active?: boolean, images?: string[], metadata?: object, tax_code?: string, shippable?: boolean, unit_label?: string, description?: string, custom_fields?: object[], shipping_cost?: object, default_price_data?: object, marketing_features?: object[], package_dimensions?: object, statement_descriptor?: string }
- `POST https://api.mcp.ai/api/stripe/create/refund` — Creates a full or partial refund in stripe, targeting either a specific charge id or a payment intent id.
  - body: { amount?: integer, charge?: string, reason?: string, metadata?: object, payment_intent?: string, reverse_transfer?: boolean, refund_application_fee?: boolean }
- `POST https://api.mcp.ai/api/stripe/create/subscription` — Creates a new, highly configurable subscription for an existing stripe customer, supporting multiple items, trials, discounts, and various billing/payment options.
  - body: { items: object[], currency?: string, customer: string, metadata?: object, cancel_at?: integer, discounts?: object[], trial_end?: integer, description?: string, off_session?: boolean, on_behalf_of?: string, automatic_tax?: object, transfer_data?: object, days_until_due?: integer, default_source?: string, promotion_code?: string, trial_settings?: object, trial_from_plan?: boolean, invoice_settings?: object, payment_behavior?: string, payment_settings?: object, add_invoice_items?: object[], collection_method?: string, default_tax_rates?: string[], trial_period_days?: integer, billing_thresholds?: object, proration_behavior?: string, backdate_start_date?: integer, billing_cycle_anchor?: integer, cancel_at_period_end?: boolean, default_payment_method?: string, application_fee_percent?: number, billing_cycle_anchor_config?: object, pending_invoice_item_interval?: object }
- `POST https://api.mcp.ai/api/stripe/delete/customer` — Permanently deletes an existing stripe customer; this irreversible action also cancels their active subscriptions and removes all associated data.
  - body: { customer_id: string }
- `POST https://api.mcp.ai/api/stripe/list/charges` — Retrieves a list of stripe charges with filtering and pagination; use valid cursor ids from previous responses for pagination, and note that charges are typically returned in reverse chronological ord
  - body: { limit?: integer, created?: object, customer?: string, ending_before?: string, payment_intent?: string, starting_after?: string, transfer_group?: string }
- `POST https://api.mcp.ai/api/stripe/list/coupons` — Retrieves a list of discount coupons from a stripe account, supporting pagination via `limit`, `starting after`, and `ending before`.
  - body: { limit?: integer, ending_before?: string, starting_after?: string }
- `POST https://api.mcp.ai/api/stripe/list/customer/payment/methods` — Retrieves a list of payment methods for a given customer, supporting type filtering and pagination.
  - body: { type?: string, limit?: integer, customer_id: string, ending_before?: string, starting_after?: string }
- `POST https://api.mcp.ai/api/stripe/list/customers` — Retrieves a list of stripe customers, with options to filter by email, creation date, or test clock, and support for pagination.
  - body: { email?: string, limit?: integer, created?: object, test_clock?: string, ending_before?: string, starting_after?: string }
- `POST https://api.mcp.ai/api/stripe/list/invoices` — Retrieves a list of stripe invoices, filterable by various criteria and paginatable using invoice id cursors obtained from previous responses.
  - body: { limit?: integer, status?: string, created?: object, customer?: string, subscription?: string, ending_before?: string, starting_after?: string, collection_method?: string }
- `POST https://api.mcp.ai/api/stripe/list/payment/intents` — Retrieves a list of stripe paymentintents, optionally filtered and paginated using paymentintent ids as cursors.
  - body: { limit?: integer, created?: object, customer?: string, ending_before?: string, starting_after?: string }
- `POST https://api.mcp.ai/api/stripe/list/payment/links` — Retrieves a list of payment links from stripe, sorted by creation date in descending order by default.
  - body: { limit?: integer, active?: boolean, ending_before?: string, starting_after?: string }
- `POST https://api.mcp.ai/api/stripe/list/products` — Retrieves a list of stripe products, with optional filtering and pagination; `starting after`/`ending before` cursors must be valid product ids from a previous response.
  - body: { ids?: string[], url?: string, limit?: integer, active?: boolean, created?: object, shippable?: boolean, ending_before?: string, starting_after?: string }
- `POST https://api.mcp.ai/api/stripe/list/refunds` — Lists stripe refunds, sorted by creation date descending (newest first), with optional filtering by charge or payment intent and pagination support.
  - body: { limit?: integer, charge?: string, ending_before?: string, payment_intent?: string, starting_after?: string }
- `POST https://api.mcp.ai/api/stripe/list/shipping/rates` — Retrieves a list of stripe shipping rates, filterable by active status, creation date, and currency; useful for managing or displaying shipping options.
  - body: { limit?: integer, active?: boolean, created?: object, currency?: string, ending_before?: string, starting_after?: string }
- `POST https://api.mcp.ai/api/stripe/list/subscriptions` — Retrieves a list of stripe subscriptions, optionally filtered by various criteria such as customer, price, status, collection method, and date ranges, with support for pagination.
  - body: { limit?: integer, price?: string, status?: string, created?: object, customer?: string, test_clock?: string, automatic_tax?: object, ending_before?: string, starting_after?: string, collection_method?: string, current_period_end?: object, current_period_start?: object }
- `POST https://api.mcp.ai/api/stripe/list/tax/codes` — Retrieves a paginated list of globally available, predefined stripe tax codes used for classifying products and services in stripe tax.
  - body: { limit?: integer, ending_before?: string, starting_after?: string }
- `POST https://api.mcp.ai/api/stripe/list/tax/rates` — Retrieves a list of tax rates, which are returned sorted by creation date in descending order.
  - body: { limit?: integer, active?: boolean, created?: object, inclusive?: boolean, ending_before?: string, starting_after?: string }
- `POST https://api.mcp.ai/api/stripe/retrieve/balance` — Retrieves the complete current balance details for the connected stripe account.
- `POST https://api.mcp.ai/api/stripe/retrieve/charge` — Retrieves full details for an existing stripe charge using its unique id.
  - body: { charge_id: string }
- `POST https://api.mcp.ai/api/stripe/retrieve/customer` — Retrieves detailed information for an existing stripe customer using their unique customer id.
  - body: { customer_id: string }
- `POST https://api.mcp.ai/api/stripe/retrieve/payment/intent` — Retrieves a paymentintent by its id; `client secret` is required if a publishable api key is used.
  - body: { client_secret?: string, payment_intent_id: string }
- `POST https://api.mcp.ai/api/stripe/retrieve/refund` — Retrieves details for an existing stripe refund using its unique `refund id`.
  - body: { refund_id: string }
- `POST https://api.mcp.ai/api/stripe/retrieve/subscription` — Retrieves detailed information for an existing stripe subscription using its unique id.
  - body: { subscription_id: string }
- `POST https://api.mcp.ai/api/stripe/search/customers` — Retrieves a list of stripe customers matching a search query that adheres to stripe's search query language.
  - body: { page?: string, limit?: integer, query: string }
- `POST https://api.mcp.ai/api/stripe/update/customer` — Updates an existing stripe customer, identified by customer id, with only the provided details; unspecified fields remain unchanged.
  - body: { tax?: object, name?: string, email?: string, phone?: string, coupon?: string, address?: object, balance?: integer, metadata?: object, shipping?: object, tax_exempt?: string, customer_id: string, description?: string, default_source?: string, invoice_settings?: object, default_payment_method?: string }
- `POST https://api.mcp.ai/api/stripe/update/payment/intent` — Updates a stripe paymentintent with new values for specified parameters; note that if `currency` is updated, `amount` might also be required, and certain updates (e.g., to `payment method`) can necess
  - body: { amount?: integer, currency?: string, customer?: string, metadata?: object, shipping?: object, description?: string, receipt_email?: string, payment_method?: string, payment_intent_id: string, setup_future_usage?: string, statement_descriptor?: string, statement_descriptor_suffix?: string }
- `POST https://api.mcp.ai/api/stripe/update/subscription` — Updates an existing, non-canceled stripe subscription by its id, ensuring all referenced entity ids (e.g., prices, coupons) are valid and automatic tax liability is correctly specified if enabled.
  - body: { items?: object[], metadata?: object, description?: string, automatic_tax?: object, subscription_id: string, payment_behavior?: string, collection_method?: string, proration_behavior?: string, billing_cycle_anchor?: integer, cancel_at_period_end?: boolean, default_payment_method?: string }

## More
- Page: https://mcp.ai/stripe
- Agent spec (llms.txt): https://mcp.ai/stripe/llms.txt
- Postman collection: https://mcp.ai/stripe/postman.json
