Stripe
OfficialMCP server integrating with Stripe - tools for customers, products, payments, and more.
Tools (26)
search_stripe_documentation
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.
get_stripe_account_info
This will get the account info for the logged in Stripe account.
create_customer
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.
list_customers
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.
create_product
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.
list_products
This tool will fetch a list of Products from Stripe. It takes one optional argument: - limit (int, optional): The number of products to return.
create_price
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.
list_prices
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.
create_payment_link
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.
create_invoice
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.
list_invoices
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.
create_invoice_item
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.
finalize_invoice
This tool will finalize an invoice in Stripe. It takes one argument: - invoice (str): The ID of the invoice to finalize.
retrieve_balance
This tool will retrieve the balance from Stripe. It takes no input.
create_refund
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".
list_payment_intents
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.
list_subscriptions
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.
cancel_subscription
This tool will cancel a subscription in Stripe. It takes the following arguments: - subscription (str, required): The ID of the subscription to cancel.
update_subscription
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.
list_coupons
This tool will fetch a list of Coupons from Stripe. It takes one optional argument: - limit (int, optional): The number of coupons to return.
create_coupon
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.
update_dispute
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.
list_disputes
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.
search_stripe_resources
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. IMPORTANT: For most use cases, prefer using the specific `list_` tools (e.g., `list_customers`, `list_payment_intents`) when you know the resource type you need. Only use this search tool when you need to: - Search across multiple resource types simultaneously - Search by field values that aren't supported by list tools - Use complex query syntax that isn't supported by list tools 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. Note that any amount returned is in currency minor units, e.g. cents for USD and yen for JPY.
fetch_stripe_resources
Retrieve Stripe object details by ID. IMPORTANT: Only call this tool after search_stripe_resources is called to get specific object IDs. Do not use this tool to discover or search for objects. This tool fetches the object information from Stripe including all available fields. It is only able to fetch the following resources (prefixes): - Payment Intents (pi_) - Charges (ch_) - Invoices (in_) - Prices (price_) - Products (prod_) - Subscriptions (sub_) - Customers (cus_) It takes one argument: - id (str): The unique identifier for the Stripe object (e.g. cus_123, pi_123). Note that any amount returned is in currency minor units, e.g. cents for USD and yen for JPY.
stripe_integration_recommender
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.