Built by Metorial, the integration platform for agentic AI.

Learn More

    Server Summary

    • Manage payment processing

    • Handle subscription billing

    • Process customer refunds

    • Track financial transactions

Stripe MCP Server

A comprehensive Model Context Protocol (MCP) server that provides seamless integration with the Stripe payment platform. This server enables AI assistants and applications to interact with Stripe's complete payment infrastructure, including customer management, payment processing, subscriptions, invoicing, and product catalog management. Whether you're building automated payment workflows, customer support tools, or financial reporting systems, this MCP server provides all the capabilities you need to work with Stripe's API through a standardized interface.

Overview

The Stripe MCP Server bridges the gap between AI applications and Stripe's powerful payment platform. It exposes Stripe's core functionality through a set of well-defined tools and resources, allowing you to create customers, process payments, manage subscriptions, generate invoices, and track financial transactions without writing complex API integration code. The server handles authentication, request formatting, and response parsing, providing a clean and intuitive interface for all your Stripe operations.

Key Features

  • Complete Customer Lifecycle Management: Create, update, retrieve, and delete customer records with full support for metadata and custom attributes
  • Advanced Payment Processing: Handle payment intents with support for multiple currencies, automatic confirmation, manual capture, and flexible payment methods
  • Subscription Management: Create and manage recurring billing with support for trials, prorations, and flexible billing intervals
  • Invoice Operations: Generate, finalize, pay, and void invoices with granular control over billing workflows
  • Product Catalog: Manage your product and pricing catalog with support for one-time and recurring pricing models
  • Refund Processing: Issue full or partial refunds with detailed reason tracking
  • Balance Tracking: Monitor account balance and transaction history
  • Legacy Charge Support: Maintain compatibility with older integrations using the Charges API
  • Pagination Support: Efficiently navigate large datasets with built-in pagination across all list operations

Tools

Customer Management

list_customers

Retrieve a list of all customers in your Stripe account with powerful filtering and pagination options.

Parameters:

  • email (optional): Filter results to customers with a specific email address
  • limit (optional): Number of customers to return, from 1 to 100 (defaults to 10)
  • starting_after (optional): Customer ID to use as a cursor for pagination

create_customer

Create a new customer record in Stripe to associate with future payments and subscriptions.

Parameters:

  • name (optional): The customer's full name
  • email (optional): The customer's email address
  • phone (optional): The customer's phone number
  • description (optional): An arbitrary string describing the customer
  • metadata (optional): Key-value pairs for storing additional custom information

update_customer

Modify an existing customer's information.

Parameters:

  • customer_id (required): The unique identifier of the customer to update
  • name (optional): Updated customer name
  • email (optional): Updated email address
  • phone (optional): Updated phone number
  • description (optional): Updated description
  • metadata (optional): Updated metadata key-value pairs

delete_customer

Permanently remove a customer from your Stripe account.

Parameters:

  • customer_id (required): The unique identifier of the customer to delete

Payment Intent Management

list_payment_intents

Retrieve a list of payment intents with filtering options.

Parameters:

  • customer (optional): Filter by customer ID to see only that customer's payment intents
  • limit (optional): Number of payment intents to return, from 1 to 100 (defaults to 10)
  • starting_after (optional): Payment intent ID for pagination

create_payment_intent

Create a new payment intent to collect payment from a customer.

Parameters:

  • amount (required): Amount to charge in cents (e.g., 1000 equals $10.00)
  • currency (required): Three-letter ISO currency code such as "usd" or "eur"
  • customer (optional): Customer ID to associate with this payment
  • payment_method (optional): Payment method ID to use for this payment
  • description (optional): Description of the payment
  • confirm (optional): Whether to automatically confirm the payment intent
  • metadata (optional): Custom metadata key-value pairs

update_payment_intent

Modify an existing payment intent before it has been confirmed.

Parameters:

  • payment_intent_id (required): The payment intent ID to update
  • amount (optional): Updated amount in cents
  • currency (optional): Updated currency code
  • customer (optional): Updated customer ID
  • description (optional): Updated description
  • metadata (optional): Updated metadata

confirm_payment_intent

Confirm a payment intent to attempt payment.

Parameters:

  • payment_intent_id (required): The payment intent ID to confirm
  • payment_method (optional): Payment method to use for confirmation

cancel_payment_intent

Cancel a payment intent that has not yet been captured.

Parameters:

  • payment_intent_id (required): The payment intent ID to cancel

capture_payment_intent

Capture a payment intent that was created with manual capture method.

Parameters:

  • payment_intent_id (required): The payment intent ID to capture
  • amount_to_capture (optional): Amount to capture in cents (defaults to the full authorized amount)

Charge Management

list_charges

Retrieve a list of charges with filtering options. Note that Stripe recommends using Payment Intents for new integrations.

Parameters:

  • customer (optional): Filter by customer ID
  • payment_intent (optional): Filter by payment intent ID
  • limit (optional): Number of charges to return, from 1 to 100 (defaults to 10)
  • starting_after (optional): Charge ID for pagination

create_charge

Create a direct charge using the legacy Charges API. Payment Intents are recommended for new integrations.

Parameters:

  • amount (required): Amount in cents to charge
  • currency (required): Three-letter ISO currency code
  • customer (optional): Customer ID to charge
  • source (optional): Payment source such as a token or card ID
  • description (optional): Description of the charge
  • metadata (optional): Custom metadata

Subscription Management

list_subscriptions

Retrieve a list of subscriptions with powerful filtering capabilities.

Parameters:

  • customer (optional): Filter by customer ID
  • price (optional): Filter by price ID
  • status (optional): Filter by subscription status (active, past_due, unpaid, canceled, incomplete, incomplete_expired, trialing, or all)
  • limit (optional): Number of subscriptions to return, from 1 to 100 (defaults to 10)
  • starting_after (optional): Subscription ID for pagination

create_subscription

Create a new recurring subscription for a customer.

Parameters:

  • customer (required): Customer ID to subscribe
  • items (required): Array of subscription items, each containing a price ID and optional quantity
  • trial_period_days (optional): Number of days for the trial period
  • metadata (optional): Custom metadata

update_subscription

Modify an existing subscription's items or settings.

Parameters:

  • subscription_id (required): The subscription ID to update
  • items (optional): Updated array of subscription items with price IDs, quantities, and item IDs
  • proration_behavior (optional): How to handle prorations (create_prorations, none, or always_invoice)
  • metadata (optional): Updated metadata

cancel_subscription

Cancel an active subscription.

Parameters:

  • subscription_id (required): The subscription ID to cancel
  • prorate (optional): Whether to prorate the cancellation
  • invoice_now (optional): Whether to create an invoice immediately

resume_subscription

Resume a previously paused subscription.

Parameters:

  • subscription_id (required): The subscription ID to resume

Invoice Management

list_invoices

Retrieve a list of invoices with filtering options.

Parameters:

  • customer (optional): Filter by customer ID
  • subscription (optional): Filter by subscription ID
  • status (optional): Filter by invoice status (draft, open, paid, uncollectible, or void)
  • limit (optional): Number of invoices to return, from 1 to 100 (defaults to 10)
  • starting_after (optional): Invoice ID for pagination

create_invoice

Create a new invoice for a customer.

Parameters:

  • customer (required): Customer ID to invoice
  • description (optional): Description for the invoice
  • auto_advance (optional): Whether to auto-finalize the invoice after 1 hour
  • metadata (optional): Custom metadata

finalize_invoice

Finalize a draft invoice, making it ready for payment.

Parameters:

  • invoice_id (required): The invoice ID to finalize

pay_invoice

Attempt to pay an invoice immediately.

Parameters:

  • invoice_id (required): The invoice ID to pay

void_invoice

Void an invoice, marking it as uncollectible.

Parameters:

  • invoice_id (required): The invoice ID to void

Product Management

list_products

Retrieve your product catalog with filtering options.

Parameters:

  • active (optional): Filter by active status (true or false)
  • limit (optional): Number of products to return, from 1 to 100 (defaults to 10)
  • starting_after (optional): Product ID for pagination

create_product

Create a new product in your catalog.

Parameters:

  • name (required): The product name
  • description (optional): Product description
  • active (optional): Whether the product is active
  • metadata (optional): Custom metadata

update_product

Update an existing product's information.

Parameters:

  • product_id (required): The product ID to update
  • name (optional): Updated product name
  • description (optional): Updated description
  • active (optional): Updated active status
  • metadata (optional): Updated metadata

delete_product

Delete a product from your catalog.

Parameters:

  • product_id (required): The product ID to delete

Price Management

list_prices

Retrieve a list of prices associated with your products.

Parameters:

  • product (optional): Filter by product ID
  • active (optional): Filter by active status
  • limit (optional): Number of prices to return, from 1 to 100 (defaults to 10)
  • starting_after (optional): Price ID for pagination

create_price

Create a new price for a product, supporting both one-time and recurring billing.

Parameters:

  • product (required): Product ID to associate with this price
  • unit_amount (required): Price in cents
  • currency (required): Three-letter ISO currency code
  • recurring (optional): Object containing interval (day, week, month, or year) and optional interval_count for recurring billing
  • metadata (optional): Custom metadata

update_price

Update a price's limited modifiable fields.

Parameters:

  • price_id (required): The price ID to update
  • active (optional): Whether the price is active
  • metadata (optional): Updated metadata

Refund Management

list_refunds

Retrieve a list of refunds with filtering options.

Parameters:

  • charge (optional): Filter by charge ID
  • payment_intent (optional): Filter by payment intent ID
  • limit (optional): Number of refunds to return, from 1 to 100 (defaults to 10)
  • starting_after (optional): Refund ID for pagination

create_refund

Issue a refund for a charge or payment intent.

Parameters:

  • charge (optional): Charge ID to refund
  • payment_intent (optional): Payment intent ID to refund
  • amount (optional): Amount to refund in cents (defaults to full amount)
  • reason (optional): Reason for refund (duplicate, fraudulent, or requested_by_customer)
  • metadata (optional): Custom metadata

Balance and Transactions

get_balance

Retrieve the current balance of your Stripe account across all currencies.

Parameters: None required

list_balance_transactions

Retrieve a list of balance transactions showing all financial activity.

Parameters:

  • type (optional): Filter by transaction type (e.g., charge, refund, payout)
  • limit (optional): Number of transactions to return, from 1 to 100 (defaults to 10)
  • starting_after (optional): Transaction ID for pagination

Resource Templates

The server provides direct access to Stripe resources through URI templates. These allow you to retrieve detailed information about specific Stripe objects by their ID.

customer

Access comprehensive information about a specific Stripe customer.

URI Pattern: stripe://customers/{customer_id}

payment_intent

Access detailed information about a specific payment intent including its status, amount, and associated charges.

URI Pattern: stripe://payment-intents/{payment_intent_id}

charge

Access information about a specific charge including payment details and status.

URI Pattern: stripe://charges/{charge_id}

subscription

Access complete subscription details including items, billing cycle, and current status.

URI Pattern: stripe://subscriptions/{subscription_id}

invoice

Access invoice details including line items, amounts, and payment status.

URI Pattern: stripe://invoices/{invoice_id}

product

Access product information including name, description, and active status.

URI Pattern: stripe://products/{product_id}

price

Access pricing details including amount, currency, and recurring billing configuration.

URI Pattern: stripe://prices/{price_id}

refund

Access refund information including amount, reason, and associated charge or payment intent.

URI Pattern: stripe://refunds/{refund_id}

Use Cases

This MCP server enables a wide range of payment and financial management scenarios:

  • Automated Customer Support: AI assistants can look up customer information, check payment status, and issue refunds without human intervention
  • Financial Reporting: Generate custom reports by querying balance transactions, invoices, and payment data
  • Subscription Management: Automate subscription upgrades, downgrades, and cancellations based on customer requests
  • Payment Recovery: Identify failed payments and retry them with updated payment methods
  • Product Catalog Management: Maintain your product and pricing catalog through conversational interfaces
  • Invoice Automation: Create, finalize, and send invoices programmatically based on custom business logic
  • Revenue Analytics: Analyze payment patterns, subscription metrics, and refund trends
  • Compliance and Auditing: Track all financial transactions and maintain detailed audit logs

Getting Started

To use this MCP server, you'll need a Stripe account and API credentials. The server handles all the complexity of Stripe's API, providing a clean and consistent interface for all payment operations. Simply connect the server to your MCP-compatible application and start building powerful payment workflows with natural language or programmatic commands.