Built by Metorial, the integration platform for agentic AI.

Learn More

    Server Summary

    • Manage payment processing

    • Handle subscription billing

    • Track customer data

    • Process refunds

Stripe MCP Server

A comprehensive Model Context Protocol (MCP) server that provides seamless integration with Stripe's payment platform. This server enables AI assistants and applications to interact with Stripe's full suite of payment processing, subscription management, customer management, and billing capabilities through a unified interface. Whether you're managing customers, processing payments, handling subscriptions, or generating invoices, this MCP server provides all the tools you need to build powerful payment workflows.

Overview

The Stripe MCP server acts as a bridge between your AI applications and Stripe's robust payment infrastructure. It exposes Stripe's most commonly used features through a set of well-defined tools and resources, allowing you to manage the complete payment lifecycle without writing custom API integrations. From creating customers and processing one-time payments to managing recurring subscriptions and handling refunds, this server provides comprehensive coverage of Stripe's capabilities.

Features

  • Complete Customer Management: Create, update, delete, and list customers with full support for metadata and custom attributes
  • Payment Processing: Handle one-time payments through both modern Payment Intents API and legacy Charges API
  • Subscription Management: Full lifecycle management for recurring subscriptions including creation, updates, cancellation, and resumption
  • Invoice Operations: Create, finalize, pay, and void invoices with flexible filtering and status management
  • Product Catalog: Manage your product catalog and pricing structures with support for one-time and recurring prices
  • Refund Processing: Handle full and partial refunds with detailed reason tracking
  • Balance Monitoring: Track account balance and transaction history
  • Pagination Support: Efficiently browse through large datasets with built-in pagination

Tools

Customer Management

list_customers

List all Stripe customers with optional filtering and pagination.

  • email (string, optional): Filter results by customer email address
  • limit (number, optional): Number of customers to return, between 1-100 (default: 10)
  • starting_after (string, optional): Customer ID to use as a pagination cursor

create_customer

Create a new customer in your Stripe account.

  • name (string, optional): Full name of the customer
  • email (string, optional): Customer's email address
  • phone (string, optional): Customer's phone number
  • description (string, optional): Arbitrary description of the customer
  • metadata (object, optional): Key-value pairs for storing additional custom information

update_customer

Update an existing customer's information.

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

delete_customer

Permanently delete a customer from your Stripe account.

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

Payment Intent Management

list_payment_intents

Retrieve a list of payment intents with optional filtering.

  • limit (number, optional): Number of payment intents to return, between 1-100 (default: 10)
  • customer (string, optional): Filter by customer ID
  • starting_after (string, optional): Payment intent ID for pagination

create_payment_intent

Create a new payment intent for processing a payment.

  • amount (number, required): Amount to charge in cents (e.g., 1000 = $10.00)
  • currency (string, required): Three-letter ISO currency code (e.g., "usd", "eur")
  • customer (string, optional): Customer ID to associate with this payment
  • payment_method (string, optional): Payment method ID to attach
  • description (string, optional): Description of the payment
  • confirm (boolean, optional): Automatically confirm the payment intent upon creation
  • metadata (object, optional): Custom metadata key-value pairs

update_payment_intent

Modify an existing payment intent before it's confirmed.

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

confirm_payment_intent

Confirm a payment intent to attempt payment processing.

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

cancel_payment_intent

Cancel a payment intent that hasn't been completed.

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

capture_payment_intent

Capture a payment intent that was created with manual capture.

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

Charge Management

list_charges

List charges with optional filtering by customer or payment intent.

  • limit (number, optional): Number of charges to return, between 1-100 (default: 10)
  • customer (string, optional): Filter by customer ID
  • payment_intent (string, optional): Filter by payment intent ID
  • starting_after (string, optional): Charge ID for pagination

create_charge

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

  • amount (number, required): Amount to charge in cents
  • currency (string, required): Three-letter ISO currency code
  • source (string, optional): Payment source token or card ID
  • customer (string, optional): Customer ID
  • description (string, optional): Charge description
  • metadata (object, optional): Custom metadata

Subscription Management

list_subscriptions

Retrieve a list of subscriptions with filtering options.

  • limit (number, optional): Number of subscriptions to return, between 1-100 (default: 10)
  • customer (string, optional): Filter by customer ID
  • price (string, optional): Filter by price ID
  • status (string, optional): Filter by status: "active", "past_due", "unpaid", "canceled", "incomplete", "incomplete_expired", "trialing", or "all"
  • starting_after (string, optional): Subscription ID for pagination

create_subscription

Create a new subscription for a customer.

  • customer (string, required): Customer ID to subscribe
  • items (array, required): List of subscription items, each containing:
    • price (string, required): Price ID
    • quantity (number, optional): Quantity (default: 1)
  • trial_period_days (number, optional): Number of days for trial period
  • metadata (object, optional): Custom metadata

update_subscription

Update an existing subscription's items or settings.

  • subscription_id (string, required): The subscription ID to update
  • items (array, optional): Updated subscription items with:
    • id (string, optional): Existing subscription item ID
    • price (string, required): Price ID
    • quantity (number, optional): Quantity
  • proration_behavior (string, optional): How to handle prorations: "create_prorations", "none", or "always_invoice"
  • metadata (object, optional): Updated metadata

cancel_subscription

Cancel an active subscription.

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

resume_subscription

Resume a previously paused subscription.

  • subscription_id (string, required): The subscription ID to resume

Invoice Management

list_invoices

Retrieve a list of invoices with filtering options.

  • limit (number, optional): Number of invoices to return, between 1-100 (default: 10)
  • customer (string, optional): Filter by customer ID
  • subscription (string, optional): Filter by subscription ID
  • status (string, optional): Filter by status: "draft", "open", "paid", "uncollectible", or "void"
  • starting_after (string, optional): Invoice ID for pagination

create_invoice

Create a new invoice for a customer.

  • customer (string, required): Customer ID
  • description (string, optional): Invoice description
  • auto_advance (boolean, optional): Whether to auto-finalize after 1 hour
  • metadata (object, optional): Custom metadata

finalize_invoice

Finalize a draft invoice, making it ready for payment.

  • invoice_id (string, required): The invoice ID to finalize

pay_invoice

Attempt to pay an open invoice.

  • invoice_id (string, required): The invoice ID to pay

void_invoice

Void an invoice, marking it as uncollectible.

  • invoice_id (string, required): The invoice ID to void

Product Management

list_products

List all products in your catalog.

  • limit (number, optional): Number of products to return, between 1-100 (default: 10)
  • active (boolean, optional): Filter by active status
  • starting_after (string, optional): Product ID for pagination

create_product

Create a new product in your catalog.

  • name (string, required): Product name
  • description (string, optional): Product description
  • active (boolean, optional): Whether the product is available for purchase
  • metadata (object, optional): Custom metadata

update_product

Update an existing product's details.

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

delete_product

Delete a product from your catalog.

  • product_id (string, required): The product ID to delete

Price Management

list_prices

List all prices with optional filtering.

  • limit (number, optional): Number of prices to return, between 1-100 (default: 10)
  • product (string, optional): Filter by product ID
  • active (boolean, optional): Filter by active status
  • starting_after (string, optional): Price ID for pagination

create_price

Create a new price for a product.

  • product (string, required): Product ID this price belongs to
  • unit_amount (number, required): Price in cents
  • currency (string, required): Three-letter ISO currency code
  • recurring (object, optional): Recurring billing settings with:
    • interval (string, required): Billing interval: "day", "week", "month", or "year"
    • interval_count (number, optional): Number of intervals between billings
  • metadata (object, optional): Custom metadata

update_price

Update a price's metadata or active status.

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

Refund Management

list_refunds

List all refunds with optional filtering.

  • limit (number, optional): Number of refunds to return, between 1-100 (default: 10)
  • charge (string, optional): Filter by charge ID
  • payment_intent (string, optional): Filter by payment intent ID
  • starting_after (string, optional): Refund ID for pagination

create_refund

Create a refund for a charge or payment intent.

  • charge (string, optional): Charge ID to refund
  • payment_intent (string, optional): Payment intent ID to refund
  • amount (number, optional): Amount to refund in cents (defaults to full amount)
  • reason (string, optional): Refund reason: "duplicate", "fraudulent", or "requested_by_customer"
  • metadata (object, optional): Custom metadata

Balance and Transactions

get_balance

Retrieve your current Stripe account balance across all currencies.

list_balance_transactions

List balance transactions that affect your account balance.

  • limit (number, optional): Number of transactions to return, between 1-100 (default: 10)
  • type (string, optional): Filter by transaction type (e.g., "charge", "refund", "payout")
  • starting_after (string, optional): Transaction ID for pagination

Resource Templates

The server provides direct access to specific Stripe objects through resource URIs:

customer

Access detailed information about a specific customer.

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

payment_intent

Access detailed information about a specific payment intent.

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

charge

Access detailed information about a specific charge.

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

subscription

Access detailed information about a specific subscription.

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

invoice

Access detailed information about a specific invoice.

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

product

Access detailed information about a specific product.

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

price

Access detailed information about a specific price.

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

refund

Access detailed information about a specific refund.

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

Use Cases

This MCP server is ideal for a wide range of payment-related workflows:

  • Customer Relationship Management: Maintain comprehensive customer records with full contact information and custom metadata
  • E-commerce Transactions: Process one-time payments for goods and services with support for multiple currencies
  • Subscription Services: Manage recurring billing for SaaS products, memberships, and subscription boxes
  • Invoicing: Generate and manage invoices for B2B transactions or usage-based billing
  • Financial Operations: Track account balances, monitor transactions, and process refunds
  • Product Catalog Management: Maintain your product inventory and pricing structures
  • Payment Analytics: Access payment and subscription data for reporting and analysis

The server provides all the essential functionality needed to build complete payment workflows while maintaining the flexibility to handle complex business requirements through metadata and custom configurations.