← Back to all apps

Stripe

Developer toolsby Stripe

The Stripe Model Context Protocol server defines a set of tools that AI agents can use to interact with the Stripe API and search its knowledge base (including documentation and support articles).

36ChatGPT Tools
23Claude Tools
StripeDeveloper
Developer toolsCategory

Use Cases

financial-services

Available Tools

Cancel Subscription

cancel_subscription
Full Description

This tool will cancel a subscription in Stripe.

It takes the following arguments:

  • subscription (str, required): The ID of the subscription to cancel.
Parameters (1 required)
Required
subscriptionstring

The ID of the subscription to cancel.

Create Coupon

create_coupon
Full Description

This tool will create a coupon in Stripe.

It takes several arguments:

  • name (str): The name of the coupon.

Only use one of percent_off or amount_off, not both:

  • percent_off (number, optional): The percentage discount to apply (between 0 and 100).
  • amount_off (number, optional): The amount to subtract from an invoice (in currency minor units, e.g. cents for USD and yen for JPY).

Optional arguments for duration. Use if specific duration is desired, otherwise default to 'once'.

  • duration (str, optional): How long the discount will last ('once', 'repeating', or 'forever'). Defaults to 'once'.
  • duration_in_months (number, optional): The number of months the discount will last if duration is repeating.
Parameters (1 required, 5 optional)
Required
namestring

Name of the coupon displayed to customers on invoices or receipts

Optional
amount_offnumber

A positive integer representing the amount to subtract from an invoice total (required if percent_off is not passed)

currencystring

Three-letter ISO code for the currency of the amount_off parameter (required if amount_off is passed). Infer based on the amount_off. For example, if a coupon is $2 off, set currency to be USD.

Default: USD
durationstring

How long the discount will last. Defaults to "once"

Options:foreveroncerepeating
Default: once
duration_in_monthsnumber

The number of months the discount will last if duration is repeating

percent_offnumber

A positive float larger than 0, and smaller or equal to 100, that represents the discount the coupon will apply (required if amount_off is not passed)

Create Customer

create_customer
Full Description

This tool will create a customer in Stripe.

It takes two arguments:

  • name (str): The name of the customer.
  • email (str, optional): The email of the customer.
Parameters (1 required, 1 optional)
Required
namestring

The name of the customer

Optional
emailstring

The email of the customer

Create Invoice

create_invoice
Full Description

This tool will create an invoice in Stripe.

It takes two arguments:

  • customer (str): The ID of the customer to create the invoice for.
  • days_until_due (int, optional): The number of days until the invoice is due.
Parameters (1 required, 1 optional)
Required
customerstring

The ID of the customer to create the invoice for.

Optional
days_until_duenumber

The number of days until the invoice is due.

Create Invoice Item

create_invoice_item
Full Description

This tool will create an invoice item in Stripe.

It takes three arguments:

  • customer (str): The ID of the customer to create the invoice item for.
  • price (str): The ID of the price to create the invoice item for.
  • invoice (str): The ID of the invoice to create the invoice item for.
Parameters (3 required)
Required
customerstring

The ID of the customer to create the invoice item for.

invoicestring

The ID of the invoice to create the item for.

pricestring

The ID of the price for the item.

Create Payment Link

create_payment_link
Full Description

This tool will create a payment link in Stripe.

It takes two arguments:

  • price (str): The ID of the price to create the payment link for.
  • quantity (int): The quantity of the product to include in the payment link.
Parameters (2 required)
Required
pricestring

The ID of the price to create the payment link for.

quantitynumber

The quantity of the product to include.

Create Price

create_price
Full Description

This tool will create a price in Stripe. If a product has not already been specified, a product should be created first.

It takes three arguments:

  • product (str): The ID of the product to create the price for.
  • unit_amount (int): The unit amount of the price in currency minor units, e.g. cents for USD and yen for JPY.
  • currency (str): The currency of the price.
Parameters (3 required, 1 optional)
Required
currencystring

The currency of the price.

productstring

The ID of the product to create the price for.

unit_amountnumber

The unit amount of the price in cents.

Optional
recurringobject

The recurring components of a price such as its interval.

Create Product

create_product
Full Description

This tool will create a product in Stripe.

It takes two arguments:

  • name (str): The name of the product.
  • description (str, optional): The description of the product.
Parameters (1 required, 1 optional)
Required
namestring

The name of the product.

Optional
descriptionstring

The description of the product.

Create Refund

create_refund
Full Description

This tool will refund a payment intent in Stripe.

It takes three arguments:

  • payment_intent (str): The ID of the payment intent to refund.
  • amount (int, optional): The amount to refund in currency minor units, e.g. cents for USD and yen for JPY.
  • reason (str, optional): The reason for the refund. Options: "duplicate", "fraudulent", "requested_by_customer".
Parameters (1 required, 3 optional)
Required
payment_intentstring

The ID of the PaymentIntent to refund.

Optional
amountinteger

The amount to refund in cents.

human_confirmationobject

This tool might require human confirmation. To run it, first invoke it with the desired parameters, ignoring the `approval_token` parameter. If it requires human confirmation, the response will include an approval request ID and a URL to an approval page for the human to approve the tool call. You, as the LLM agent, should: 1. Present this URL to the human as a clickable markdown link. Tell them that they have to approve this tool call at that URL, and that they should tell you when they have approved the operation. 2. The human will approve that call. 3. After the human tells you they have approved the operation, you must call the tool again with the `approval_token` parameter and the exact same parameters. The operation will then go through.

reasonstring

The reason for the refund.

Options:duplicatefraudulentrequested_by_customer

Explain Metric

explain_metric
Full Description

This tool will fetch the SQL query used to calculate a metric. Customize the SQL query as needed.

Parameters:

  • metric (string): The canonical name of the metric. Call list_metrics to see all available metrics.
  • dimensions (array of strings, optional): The dimensions to group by. Can be empty or contain one or both of: "product", "price".
  • grains (array of strings, optional): The grain to group by. Can be empty or contain one of: "day", "week", "month". Default is "month".
  • filters (array of strings, optional): The filters to apply. Can be empty or contain one of: "top5". Default is "all".

Related tools:

  • list_metrics: tool to see all available metrics.
  • get_metric: tool to get the underlying data for a metric.
  • metric_drilldown: tool to dive further and drill down into the underlying data for a metric.
  • show_metric: render a metric in a line chart in a UI. For non-visual analysis, use explain_metric or metric_drilldown instead.
Parameters (1 required, 3 optional)
Required
metricstring

The metric to return SQL query for.

Options:mrrmrr_growthgross_volumesubscriber_churn_rategross_mrr_churn_ratechurned_subscribersnet_mrr_churn_ratechurned_revenuenew_subscribersactive_subscribersactive_subscriber_growth
Optional
dimensionsarray

The dimensions to group by. Can be empty or contain one or both of: 'product', 'price'.

filtersarray

The filters to apply to the data. Can be empty or contain one of: 'top5'.

grainsarray

The grains to group by. Can be empty or contain one of: 'day', 'week', 'month'. Default is 'month'

Fetch

fetch
Full Description

Retrieve Stripe object details by ID.

This tool fetches the object information from Stripe including all available fields. Use this after finding the Stripe object ID(s) with the search tool to get complete information for analysis.

It takes one argument:

  • id (str): The unique identifier for the Stripe object (e.g. cus_123, pi_123).
Parameters (1 required)
Required
idstring

The unique identifier for the Stripe object (e.g. cus_123, pi_123).

Finalize Invoice

finalize_invoice
Full Description

This tool will finalize an invoice in Stripe.

It takes one argument:

  • invoice (str): The ID of the invoice to finalize.
Parameters (1 required)
Required
invoicestring

The ID of the invoice to finalize.

Get Metric

get_metric
Full Description

IMPORTANT: ALWAYS check the description of the execute_analytics tool first to see if the metric you want is available with that tool. If so, ALWAYS use the execute_analytics tool instead. This tool fetches aggregate metric data from Stripe (using Sigma).

IMPORTANT:

  • Always call list_metrics first to see available metrics and their canonical names
  • If you use this data to calculate any derived metrics (like growth, rates, or other calculations), you MUST include this disclosure in your response to the user: "Note: This calculation is performed by AI and may differ from how Stripe officially calculates this metric. Please visit https://dashboard.stripe.com for official metrics."

Parameters:

  • metric (string): The canonical name of the metric. Call list_metrics to see all available metrics.
  • dimensions (array of strings, optional): The dimensions to group by. Can be empty or contain one or both of: "product", "price". Not all metrics support all dimensions.
  • grains (array of strings, optional): The grain to group by. Can be empty or contain one of: "day", "week", "month". Default is "month"
  • filters (array of strings, optional): The filters to apply. Can be empty or contain one of: "top5". Default is "all"

Related tools:

  • list_metrics: tool to see all available metrics
  • explain_metric: tool to get the SQL query for how a metric is calculated
  • metric_drilldown: tool to dive further and drill down into the underlying data for a metric
  • show_metric: tool to render a metric in a line chart in a UI
Parameters (1 required, 3 optional)
Required
metricstring

The metric to return.

Options:mrrmrr_growthgross_volumesubscriber_churn_rategross_mrr_churn_ratechurned_subscribersnet_mrr_churn_ratechurned_revenuenew_subscribersactive_subscribersactive_subscriber_growth
Optional
dimensionsarray

The dimensions to group by. Can be empty or contain one or both of: 'product', 'price'.

filtersarray

The filters to apply to the data. Can be empty or contain one of: 'top5'.

grainsarray

The grains to group by. Can be empty or contain one of: 'day', 'week', 'month'. Default is 'month'

Get Stripe Account Info

get_stripe_account_info
Full Description

This will get the account info for the logged in Stripe account.

List Coupons

list_coupons
Full Description

This tool will fetch a list of Coupons from Stripe.

It takes one optional argument:

  • limit (int, optional): The number of coupons to return.
Parameters (0 required, 1 optional)
Optional
limitinteger

A limit on the number of objects to be returned. Limit can range between 1 and 100.

List Customers

list_customers
Full Description

This tool will fetch a list of Customers from Stripe.

It takes two arguments:

  • limit (int, optional): The number of customers to return.
  • email (str, optional): A case-sensitive filter on the list based on the customer's email field.
Parameters (0 required, 2 optional)
Optional
emailstring

A case-sensitive filter on the list based on the customer's email field. The value must be a string.

limitinteger

A limit on the number of objects to be returned. Limit can range between 1 and 100.

List Disputes

list_disputes
Full Description

This tool will fetch a list of disputes in Stripe.

It takes the following arguments:

  • charge (string, optional): Only return disputes associated to the charge specified by this charge ID.
  • payment_intent (string, optional): Only return disputes associated to the PaymentIntent specified by this PaymentIntent ID.
Parameters (0 required, 3 optional)
Optional
chargestring

Only return disputes associated to the charge specified by this charge ID.

limitinteger

A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.

Default: 10
payment_intentstring

Only return disputes associated to the PaymentIntent specified by this PaymentIntent ID.

List Invoices

list_invoices
Full Description

This tool will fetch a list of Invoices from Stripe.

It takes two arguments:

  • customer (str, optional): The ID of the customer to list invoices for.
  • limit (int, optional): The number of invoices to return.
Parameters (0 required, 2 optional)
Optional
customerstring

The ID of the customer to list invoices for.

limitinteger

A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.

List Metrics

list_metrics
Full Description

This tool will list all available metrics that can be used with get_metric, explain_metric, show_metric, and metric_drilldown tools.

IMPORTANT

  • Unsupported Metrics:

Some metrics are marked as "NOT SUPPORTED because they are derived metrics requiring complex calculations.

  • Do NOT attempt to calculate unsupported metrics yourself using raw Stripe data
  • Do NOT offer Sigma queries or dashboard navigation steps as alternatives
  • Do NOT suggest workarounds for unsupported metrics
  • When asked about unsupported metrics, you MUST include this disclosure: "Note: This metric requires complex calculations that may not match Stripe's official definitions. Please visit https://dashboard.stripe.com for accurate metrics."

Use get_metric tool to get the underlying data for a metric. Use explain_metric tool to get the SQL query for how a metric is calculated. Use metric_drilldown tool to get the underlying data for a metric.

Parameters:

  • canonical_name: The canonical name used to reference the metric. IMPORTANT: You MUST use this exact canonical_name value when calling get_metric, show_metric, explain_metric, or metric_drilldown. Do NOT use other_names with those tools.
  • description: A description of what the metric represents
  • other_names: Human-friendly aliases for understanding user intent only. Do NOT pass these to other tools — always use canonical_name instead.

Related tools:

  • metric_drilldown: tool to dive further and drill down into the underlying data for a metric.
  • get_metric: tool to get the underlying data for a metric.
  • explain_metric: tool to get the SQL query for how a metric is calculated.
  • show_metric: render a metric in a line chart in a UI. For non-visual analysis, use explain_metric or metric_drilldown instead.

List Payment Intents

list_payment_intents
Full Description

This tool will list payment intents in Stripe.

It takes two arguments:

  • customer (str, optional): The ID of the customer to list payment intents for.
  • limit (int, optional): The number of payment intents to return.

Note that the payment intent amount returned is in currency minor units, e.g. cents for USD and yen for JPY.

Parameters (0 required, 2 optional)
Optional
customerstring

The ID of the customer to list payment intents for.

limitinteger

A limit on the number of objects to be returned. Limit can range between 1 and 100.

List Prices

list_prices
Full Description

This tool will fetch a list of Prices from Stripe.

It takes two arguments.

  • product (str, optional): The ID of the product to list prices for.
  • limit (int, optional): The number of prices to return.

Note that the price unit_amount returned is in currency minor units, e.g. cents for USD and yen for JPY.

Parameters (0 required, 2 optional)
Optional
limitinteger

A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.

productstring

The ID of the product to list prices for.

List Products

list_products
Full Description

This tool will fetch a list of Products from Stripe.

It takes one optional argument:

  • limit (int, optional): The number of products to return.
Parameters (0 required, 1 optional)
Optional
limitinteger

A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.

List Refunds

list_refunds
Full Description

This tool will fetch a list of Refunds from Stripe. Returns up to 10 refunds.

You must provide either a charge ID or payment_intent ID to filter the refunds.

It takes the following arguments:

  • charge_or_payment_intent (str): Only return refunds for the charge or payment intent specified by this ID.

The ID must start with 'ch_' or 'pi_' (e.g., 'ch_1234567890' or 'pi_1234567890').

Refund amounts are in currency minor units (e.g., cents for USD, yen for JPY).

Parameters (1 required)
Required
charge_or_payment_intentstring

Only return refunds for the charge or payment intent specified by this ID.

List Subscriptions

list_subscriptions
Full Description

This tool will list all subscriptions in Stripe.

It takes four arguments:

  • customer (str, optional): The ID of the customer to list subscriptions for.
  • price (str, optional): The ID of the price to list subscriptions for.
  • status (str, optional): The status of the subscriptions to list.
  • limit (int, optional): The number of subscriptions to return.
Parameters (0 required, 4 optional)
Optional
customerstring

The ID of the customer to list subscriptions for.

limitinteger

A limit on the number of objects to be returned. Limit can range between 1 and 100.

pricestring

The ID of the price to list subscriptions for.

statusstring

The status of the subscriptions to retrieve.

Options:activeallcanceledincompleteincomplete_expiredpast_duetrialingunpaid

Metric Drilldown

metric_drilldown
Full Description

This tool drills down into row-level data for a metric with specific time range filtering.

IMPORTANT:

  • Returns up to 100 rows of detailed data (not aggregated charts)
  • You MUST render the returned data as a formatted table in your response to the user
  • Do NOT just say you displayed the data - actually format and show the table to the user
  • Both start_time and end_time are REQUIRED parameters
  • If user provides relative dates, convert them to ISO 8601 format before calling this tool

Parameters:

  • metric (string, required): The canonical name of the metric to drill down into. Call list_metrics to see all available metrics.
  • start_time (string, required): The start time for filtering data in ISO 8601 format (e.g., '2024-01-01T00:00:00' or '2024-01-01')
  • end_time (string, required): The end time for filtering data in ISO 8601 format (e.g., '2024-12-31T23:59:59' or '2024-12-31')

Related tools:

  • list_metrics: tool to see all available metrics
  • get_metric: tool to get the underlying data for a metric
  • explain_metric: tool to get the SQL query for how a metric is calculated
  • show_metric: tool to render a metric in a line chart in a UI
Parameters (3 required)
Required
end_timestring

The end time for filtering data in ISO 8601 format (e.g., '2024-12-31T23:59:59' or '2024-12-31').

metricstring

The metric to drill down into.

Options:mrrmrr_growthgross_volumesubscriber_churn_rategross_mrr_churn_ratechurned_subscribersnet_mrr_churn_ratechurned_revenuenew_subscribersactive_subscribersactive_subscriber_growth
start_timestring

The start time for filtering data in ISO 8601 format (e.g., '2024-01-01T00:00:00' or '2024-01-01').

Retrieve Balance

retrieve_balance
Full Description

This tool will retrieve the balance from Stripe. It takes no input.

All monetary values returned by this tool are expressed in the smallest currency unit. For example:

  • 1000 is 10 USD (most two-decimal currencies like GBP, EUR, AUD, CAD, divide by 100 to get the major unit value)
  • 10 is 10 JPY (zero-decimal currency)
  • 10000 is 10 BHD (three-decimal currency)
  • 100000000 is 1 USDC

If you don't know how many decimals are in a currency's minor units, use the search_stripe_documentation tool to look it up in https://docs.stripe.com/currencies#minor-units

Search

search
Full Description

This tool can be used to search for specific Stripe resources using a custom Stripe query syntax. It is only able to search for the following resources: customers, payment_intents, charges, invoices, prices, products, subscriptions. It returns a maximum of 100 results.

It takes one argument:

  • query (str): The query consisting of the Stripe resource to query for and the query clause in Stripe's custom query syntax to query metadata for.
Parameters (1 required)
Required
querystring

This query string should be formatted as 'resource:query_clause', where 'resource' is one of (customers, payment_intents, charges, invoices, prices, products, subscriptions), and 'query_clause' is the actual query in Stripe's custom query syntax to query metadata for that resource. For example, for the query: customers:email:"jenny.rosen@example.com" resource: `customers` query_clause: `email:"jenny.rosen@example.com"` A query clause consists of a field, operator, and value. ## Query Fields for customers * created * email * metadata * name * phone ## Query Fields for payment_intents * amount * created * currency * customer * metadata * status ## Query Fields for charges * amount * billing_details.address.postal_code * created * currency * customer * disputed * metadata * payment_method_details.{{SOURCE}}.last4 * payment_method_details.{{SOURCE}}.exp_month * payment_method_details.{{SOURCE}}.exp_year * payment_method_details.{{SOURCE}}.brand * payment_method_details.{{SOURCE}}.fingerprint * refunded * status ## Query Fields for invoices * created * currency * customer * last_finalization_error_code * last_finalization_error_type * metadata * number * receipt_number * status * subscription * total ## Query Fields for prices * active * currency * lookup_key * metadata * product * type ## Query Fields for products * active * description * metadata * name * shippable * url ## Query Fields for subscriptions * created * metadata * status * canceled_at ## Search Operators The following table lists the syntax that you can use to construct a query: | Syntax | Usage | Description | When to Use | Examples | |--------|-------|-------------|-------------|----------| | `:` | `field:value` | Exact match operator (case insensitive) | **ONLY when you know the exact complete value** | `currency:"eur"` returns records where the currency is exactly "EUR" | | `~` | `field~value` | Substring match operator (minimum 3 characters) | **ALWAYS use for domain searches, partial names, email parts** | `email~"foo.com"` returns emails containing "foo.com" | | `AND`, `and` | `field:value1 AND field:value2` | Returns records that match both clauses | Combining multiple conditions | `status:"active" AND amount:500` | | `OR`, `or` | `field:value1 OR field:value2` | Returns records that match either clause | Alternative conditions | `currency:"usd" OR currency:"eur"` | | `-` | `-field:value` | Returns records that don't match the clause | Excluding specific values | `-currency:"jpy"` returns records not in JPY | | `NULL`, `null` | `field:null` | Checks for field presence (empty/null values) | Finding empty fields | `url:null` returns records where URL field is empty | | `>`, `<`, `>=`, `<=`, `=` | `field>value`, `field<value`, etc. | Numeric comparison operators | Amount ranges, dates | `amount>="10"` returns records with amount >= 10 | | `` | `" """` | Escape quotes within quotes | When quotes are in the search value | `description:"the story called "The Sky and the Sea.""` | ## Query Rules * You can combine up to 10 query clauses in a search by separating them with a space or using AND/OR keywords (case insensitive) * You cannot combine AND and OR in the same query * No parentheses are supported for operator precedence * By default, the API combines clauses with AND logic * You must use quotation marks around string values (optional for numeric values) * You can escape quotes inside quotes with a backslash (\) ## Examples Input: Look up charges matching a custom metadata value. Output: charges:metadata['order_id']:'1234567890' Input: Look up charges matching the last 4 digits of the card used for the payment. Output: charges:payment_method_details.card.last4:4242 Input: Look up customers matching an email. Output: customers:email:'jenny.rosen@example.com' Input: Look up PaymentIntents not in the USD currency. Output: payment_intents:-currency:'usd' Input: Filter invoice objects with a total greater than 1000. Output: invoices:total>1000 Input: Filter payments with a amount over $100. Reasoning: Stripe "amount" field is in cents, so we use 1000 instead of 100 Output: payment_intents:amount>1000 Input: Look up charges matching a combination of metadata and currency. Output: charges:metadata['key']:'value' AND currency:'usd' Input: Search for customers with email containing "john". Output: customers:email~"john" Input: Find products where the description field is empty. Output: products:description:null Input: Search for payments with amounts greater than or equal to 5000. Output: payment_intents:amount>=5000 Input: Search for products with description with escaped quotes. Output: products:description:"The story called "The Sky and the Sea"."

Search Stripe Documentation

search_stripe_documentation
Full Description

Search the Stripe documentation for the given question and language.

It takes two arguments:

  • question (str): The user question to search an answer for in the Stripe documentation.
  • language (str, optional): The programming language to search for in the the documentation.
Parameters (1 required, 2 optional)
Required
questionstring

The user question about integrating with Stripe will be used to search the documentation.

Optional
languagestring

The programming language to search for in the the documentation.

Options:dotnetgojavanodephprubypythoncurl
search_only_api_refboolean

When set to true, search only in the Stripe API reference documentation instead of the full documentation set. Use true when users need specific API implementation details, code examples, or parameter references. Use false (default) for conceptual explanations, best practices, integration guides, or troubleshooting help.

Send Stripe Mcp Feedback

send_stripe_mcp_feedback
Full Description

Submit feedback from user or agent about Stripe's MCP server tools.

Valid: "the search tool returned irrelevant results", "I wish there was a tool for X" Invalid: Stripe API complaints, AI model issues, IDE/environment problems

  • Only call when feedback clearly targets MCP tools.
  • If feedback is about one specific tool, include its name in tool_name.
  • If feedback is from user, quote their exact message and set source to "user".
  • If a tool didn't follow your expectations as an agent, set source to "agent".
Parameters (4 required, 1 optional)
Required
contextstring

User persona, their broader goal, current task, and estimated technical proficiency.

quotestring

User's exact message containing feedback. Max 1000 chars.

sentimentstring

positive, negative, or neutral

Options:positivenegativeneutral
sourcestring

user or agent

Options:useragent
Optional
tool_namestring

The name of the tool the user is giving feedback about. Include if confident that feedback is about a specific tool.

Show Metric

show_metric_app
Full Description

Visually displays a Stripe metric for analytics and reporting in a line chart.

IMPORTANT:

  • ALWAYS call list_metrics once to see available_metrics before using this tool
  • ONLY use metrics listed in the enum for this tool
  • This tool does NOT support specific time range filters
  • This tool does NOT return detailed row-level data
  • Only use this tool for pure visualization of supported metrics without modifications

Parameters:

  • metric (string): The canonical name of the metric. Call list_metrics to see all available metrics.
  • dimensions (array of strings, optional): The dimensions to group by. Can be empty or contain one or both of: "product", "price". Not all metrics support all dimensions.
  • grains (array of strings, optional): The grain to group by. Can be empty or contain one of: "day", "week", "month". Default is "month"
  • filters (array of strings, optional): The filters to apply. Can be empty or contain one of: "top5". Default is "all"

Related tools:

  • list_metrics: tool to see all available metrics
  • get_metric: tool to get the underlying data for a metric
  • explain_metric: tool to get the SQL query for how a metric is calculated
  • metric_drilldown: tool to dive further and drill down into the underlying data for a metric
Parameters (1 required, 3 optional)
Required
metricstring

The name of the metric to display.

Options:mrrmrr_growthgross_volumesubscriber_churn_rategross_mrr_churn_ratechurned_subscribersnet_mrr_churn_ratechurned_revenuenew_subscribersactive_subscribersactive_subscriber_growth
Optional
dimensionsarray

The dimensions to group by. Can be empty or contain one or both of: 'product', 'price'.

filtersarray

The filters to apply to the data. Can be empty or contain one of: 'top5'.

grainsarray

The grain to group by. Can be empty or contain one of: 'day', 'week', 'month'. Default is 'month'.

Stripe Api Details

stripe_api_details
Full Description

Get detailed parameter information for a specific Stripe API operation. Provide the stripe_api_operation_id from stripe_api_search results to see all path, query, and body parameters with their types, descriptions, and whether they are required.

Parameters (1 required)
Required
stripe_api_operation_idstring

The operation ID to get details for (e.g. 'PostCustomers', 'GetPaymentIntents')

Stripe Api Execute

stripe_api_execute
Full Description

Execute any Stripe API operation: 1. Use stripe_api_search to find the operation ID. 2. Use stripe_api_details to understand its parameters (required for operations with nested object fields like address, metadata, or restrictions). 3. Call this tool with the stripe_api_operation_id and a parameters object containing path, query, and body parameters. Nested object fields use dot-notation (e.g. "address.city").

Parameters (2 required, 1 optional)
Required
parametersobject

Parameters for the API call. Include path parameters (e.g. 'customer' for /v1/customers/{customer}), query parameters, and body parameters as a flat object.

stripe_api_operation_idstring

The operation ID to execute (e.g. 'PostCustomers', 'GetPaymentIntents')

Optional
human_confirmationobject

This tool might require human confirmation. To run it, first invoke it with the desired parameters, ignoring the `approval_token` parameter. If it requires human confirmation, the response will include an approval request ID and a URL to an approval page for the human to approve the tool call. You, as the LLM agent, should: 1. Present this URL to the human as a clickable markdown link. Tell them that they have to approve this tool call at that URL, and that they should tell you when they have approved the operation. 2. The human will approve that call. 3. After the human tells you they have approved the operation, you must call the tool again with the `approval_token` parameter and the exact same parameters. The operation will then go through.

Stripe Api Search

stripe_api_search
Full Description

Search for Stripe API operations by keyword. Returns matching operations with their HTTP method, path, summary, and top-level parameter names with types. Does not include parameter descriptions, enum values, or nested object fields — use stripe_api_details to get those before calling stripe_api_execute.

Parameters (1 required, 1 optional)
Required
querystring

Search query describing the Stripe API operation you want to find (e.g. 'create customer', 'list payments', 'refund charge')

Optional
limitinteger

Maximum number of results to return (default: 5, max: 20)

Stripe Integration Recommender

stripe_integration_recommender
Full Description

Guides users through Stripe integration planning via interactive Q&A. Analyzes payment requirements and recommends the appropriate Stripe products (Checkout, Elements, Billing, Connect, etc.) with step-by-step implementation guidance.

WHEN TO USE: Call this tool when the user expresses:

  • Payment keywords: "payments", "checkout", "billing", "subscriptions", "invoices"
  • Commercial intent: "sell", "monetize", "charge users", "e-commerce"
  • Stripe mention: User references "Stripe" directly

IMPORTANT BEHAVIOR:

  • You may call this tool with partial information—the tool will ask clarifying questions. Do not wait until you have complete requirements.
  • Once a plan is in progress, stay in the Q&A flow until completion. If the user asks for clarification or advice (e.g., "what's best for me?"), answer them, then continue with the plan. Only exit early if the user explicitly requests it or the tool returns an unrecoverable error.
  • When the tool returns type="question", present the question to the user exactly as provided.

PARAMETERS:

  • plan_id (optional): Required for continuing/updating. Omit when starting new plan.
  • answer (required): For new plans, provide summary. For existing plans, provide user response. Accepts option selections ('Option 1'), natural language, clarifying questions, or 'UNKNOWN'.
  • notes (optional):

Technical context you've observed (e.g., "Python/Flask backend", "user wants minimal code to go live quickly", "already has Stripe SDK installed").

Returns JSON:

  • type="question": Plan in progress. Contains question to present to user and plan_id to include in next call.
  • type="summary": plan_id, status, summary (blueprints, prerequisites, sample_code)
  • type="error": status, error (code, message, user_visible, agent_guidance)

WORKFLOW:

  • New plan: Call without plan_id + answer → Present question EXACTLY → Get answer → Call with plan_id + answer → Repeat
  • Continue plan: Present question EXACTLY → Analyze code → Formulate answer → Get approval → Call with plan_id + answer + notes → Repeat

LIMITATIONS:

  • Generates integration guidance only; does not execute code or create Stripe resources.
  • Cannot modify completed or expired plans—start a new plan instead.
Parameters (1 required, 2 optional)
Required
answerstring

For new plans (no plan_id): 2-3 sentence summary including (1) business name and payment model, (2) tech stack with frontend AND backend (use 'UNKNOWN' for unknown components), (3) payment requirements (use 'UNKNOWN' if not specified). For existing plans: User's verbatim response. Accepts option selections ('Option 1'), natural language, clarifying questions, or 'UNKNOWN'.

Optional
notesstring

Optional agent-discovered context from codebase analysis (e.g., 'Found Stripe SDK v12.0.0', 'Existing webhook at /api/stripe'). Helps backend provide accurate recommendations.

plan_idstring

Plan identifier in format lplan_[alphanumeric] from previous response. Required for continuing existing plan. Omit when starting new plan.

Update Dispute

update_dispute
Full Description

When you receive a dispute, contacting your customer is always the best first step. If that doesn't work, you can submit evidence to help resolve the dispute in your favor. This tool helps.

It takes the following arguments:

  • dispute (string): The ID of the dispute to update
  • evidence (object, optional): Evidence to upload for the dispute.
  • cancellation_policy_disclosure (string)
  • cancellation_rebuttal (string)
  • duplicate_charge_explanation (string)
  • uncategorized_text (string, optional): Any additional evidence or statements.
  • submit (boolean, optional): Whether to immediately submit evidence to the bank. If false, evidence is staged on the dispute.
Parameters (1 required, 2 optional)
Required
disputestring

The ID of the dispute to update

Optional
evidenceobject

Evidence to upload, to respond to a dispute. Updating any field in the hash will submit all fields in the hash for review.

submitboolean

Whether to immediately submit evidence to the bank. If false, evidence is staged on the dispute.

Update Subscription

update_subscription
Full Description

This tool will update an existing subscription in Stripe. If changing an existing subscription item, the existing subscription item has to be set to deleted and the new one has to be added.

It takes the following arguments:

  • subscription (str, required): The ID of the subscription to update.
  • proration_behavior (str, optional): Determines how to handle prorations when the subscription items change. Options: 'create_prorations', 'none', 'always_invoice', 'none_implicit'.
  • items (array, optional): A list of subscription items to update, add, or remove. Each item can have the following properties:
    • id (str, optional): The ID of the subscription item to modify.
    • price (str, optional): The ID of the price to switch to.
    • quantity (int, optional): The quantity of the plan to subscribe to.
    • deleted (bool, optional): Whether to delete this item.
Parameters (1 required, 2 optional)
Required
subscriptionstring

The ID of the subscription to update.

Optional
itemsarray

A list of subscription items to update, add, or remove.

proration_behaviorstring

Determines how to handle prorations when the subscription items change.

Options:always_invoicecreate_prorationsnonenone_implicit