Labsco
AStheTECH logo

MewCP Stripe MCP

from AStheTECH

Hosted, Stateless & Multitenant Stripe MCP server enables AI assistants to manage payments, customers, subscriptions, invoices, and financial operations through Stripe.

πŸ”₯πŸ”₯βœ“ VerifiedFreeQuick setup

Accept payments, manage subscriptions, and automate billing workflows all through natural language.

A Model Context Protocol (MCP) server that exposes Stripe's API for payment processing, customer management, subscriptions, and financial operations.

Overview

The Stripe MCP Server provides a complete interface to Stripe's payment infrastructure:

  • Full customer lifecycle management β€” create, search, update, and delete customers
  • Payment processing via charges and payment intents
  • Product & pricing catalog management
  • Subscription billing with trial support
  • Real-time account balance visibility

Perfect for:

  • Automating billing workflows and subscription management without writing code
  • Looking up customer payment history and account status through AI assistants
  • Setting up products and pricing plans for new features or services

Tools

<details> <summary><code>stripe_create_customer</code> β€” Create a new Stripe customer</summary>

Creates a customer record in Stripe that can hold payment methods, subscriptions, and invoices.

Inputs:

- `api_key` (string, required) β€” Stripe API key (starts with sk_)
- `email` (string, optional) β€” Customer's email address
- `name` (string, optional) β€” Customer's full name
- `description` (string, optional) β€” Internal description for the customer
- `metadata` (string, optional) β€” JSON string of metadata key-value pairs (e.g. '{"plan": "enterprise"}')

Output:

{
  "success": true,
  "customer_id": "cus_xxx",
  "email": "user@example.com",
  "name": "Jane Doe",
  "description": "Enterprise customer",
  "created": 1716720000,
  "metadata": {}
}
</details> <details> <summary><code>stripe_get_customer</code> β€” Retrieve a customer by ID</summary>

Returns full customer details including balance, delinquency status, and metadata.

Inputs:

- `api_key` (string, required) β€” Stripe API key
- `customer_id` (string, required) β€” Customer ID (e.g. cus_xxx)

Output:

{
  "success": true,
  "customer_id": "cus_xxx",
  "email": "user@example.com",
  "name": "Jane Doe",
  "balance": 0,
  "delinquent": false,
  "created": 1716720000,
  "metadata": {}
}
</details> <details> <summary><code>stripe_list_customers</code> β€” List customers with pagination</summary>

Returns up to 100 customers per page with cursor-based pagination.

Inputs:

- `api_key` (string, required) β€” Stripe API key
- `limit` (integer, optional) β€” Number of customers to return, 1–100 (default: 10)
- `starting_after` (string, optional) β€” Customer ID to paginate from

Output:

{
  "success": true,
  "has_more": true,
  "count": 10,
  "customers": [{ "id": "cus_xxx", "email": "...", "name": "...", "created": 1716720000 }]
}
</details> <details> <summary><code>stripe_search_customers</code> β€” Search customers by email or name</summary>

Uses Stripe's search query language to find customers matching specific criteria.

Inputs:

- `api_key` (string, required) β€” Stripe API key
- `query` (string, required) β€” Search query (e.g. 'email:"user@example.com"' or 'name:"Jane"')
- `limit` (integer, optional) β€” Number of results, 1–100 (default: 10)

Output:

{
  "success": true,
  "has_more": false,
  "count": 1,
  "customers": [{ "id": "cus_xxx", "email": "user@example.com", "name": "Jane Doe" }]
}
</details> <details> <summary><code>stripe_create_charge</code> β€” Charge a customer's payment method</summary>

Creates a direct charge on a customer. Amount is in the smallest currency unit (cents for USD).

Inputs:

- `api_key` (string, required) β€” Stripe API key
- `amount` (integer, required) β€” Amount in cents (e.g. 1000 = $10.00)
- `currency` (string, optional) β€” Currency code: usd, eur, gbp, etc. (default: usd)
- `customer_id` (string, optional) β€” Customer ID to charge
- `description` (string, optional) β€” Description of the charge
- `metadata` (string, optional) β€” JSON string of metadata

Output:

{
  "success": true,
  "charge_id": "ch_xxx",
  "amount": 1000,
  "currency": "usd",
  "status": "succeeded",
  "paid": true
}
</details> <details> <summary><code>stripe_create_payment_intent</code> β€” Create a payment intent</summary>

Creates a payment intent and returns a client_secret for frontend confirmation via Stripe.js.

Inputs:

- `api_key` (string, required) β€” Stripe API key
- `amount` (integer, required) β€” Amount in cents
- `currency` (string, optional) β€” Currency code (default: usd)
- `customer_id` (string, optional) β€” Customer ID
- `description` (string, optional) β€” Description
- `metadata` (string, optional) β€” JSON string of metadata
- `confirm` (boolean, optional) β€” Confirm immediately (default: false)

Output:

{
  "success": true,
  "payment_intent_id": "pi_xxx",
  "client_secret": "pi_xxx_secret_xxx",
  "amount": 2000,
  "currency": "usd",
  "status": "requires_payment_method"
}
</details> <details> <summary><code>stripe_create_product</code> β€” Create a product</summary>

Creates a product in your Stripe catalog. Products require a price before they can be sold.

Inputs:

- `api_key` (string, required) β€” Stripe API key
- `name` (string, required) β€” Product name
- `description` (string, optional) β€” Product description
- `metadata` (string, optional) β€” JSON string of metadata

Output:

{
  "success": true,
  "product_id": "prod_xxx",
  "name": "Pro Plan",
  "description": "Access to all pro features",
  "active": true
}
</details> <details> <summary><code>stripe_create_price</code> β€” Create a price for a product</summary>

Defines the billing amount and interval for a product. Supports one-time and recurring (subscription) pricing.

Inputs:

- `api_key` (string, required) β€” Stripe API key
- `product_id` (string, required) β€” Product ID to attach the price to
- `unit_amount` (integer, required) β€” Amount in cents
- `currency` (string, optional) β€” Currency code (default: usd)
- `recurring_interval` (string, optional) β€” 'month' or 'year' for subscription pricing

Output:

{
  "success": true,
  "price_id": "price_xxx",
  "product": "prod_xxx",
  "unit_amount": 999,
  "currency": "usd",
  "recurring": { "interval": "month" }
}
</details> <details> <summary><code>stripe_create_subscription</code> β€” Subscribe a customer to a plan</summary>

Creates a recurring subscription for a customer using a price ID. Supports trial periods.

Inputs:

- `api_key` (string, required) β€” Stripe API key
- `customer_id` (string, required) β€” Customer ID
- `price_id` (string, required) β€” Price ID for the subscription plan
- `trial_period_days` (integer, optional) β€” Number of free trial days
- `metadata` (string, optional) β€” JSON string of metadata

Output:

{
  "success": true,
  "subscription_id": "sub_xxx",
  "customer": "cus_xxx",
  "status": "active",
  "current_period_start": 1716720000,
  "current_period_end": 1719312000
}
</details> <details> <summary><code>stripe_cancel_subscription</code> β€” Cancel a subscription</summary>

Cancels a subscription either at the end of the current billing period or immediately.

Inputs:

- `api_key` (string, required) β€” Stripe API key
- `subscription_id` (string, required) β€” Subscription ID to cancel
- `cancel_at_period_end` (boolean, optional) β€” true = cancel at period end, false = cancel immediately (default: true)

Output:

{
  "success": true,
  "subscription_id": "sub_xxx",
  "status": "active",
  "cancel_at_period_end": true
}
</details> <details> <summary><code>stripe_get_balance</code> β€” Get account balance</summary>

Returns available and pending balances across all currencies for the Stripe account.

Inputs:

- `api_key` (string, required) β€” Stripe API key

Output:

{
  "success": true,
  "available": [{ "amount": 50000, "currency": "usd" }],
  "pending": [{ "amount": 12000, "currency": "usd" }],
  "livemode": true
}
</details>

Getting Your Stripe API Key

<details> <summary><strong>Steps</strong></summary>
  1. Go to Stripe Dashboard
  2. Click Developers in the top navigation
  3. Select API keys from the left sidebar
  4. Copy your Secret key (starts with sk_live_ for production or sk_test_ for testing)

Use sk_test_ keys during development β€” they work with test card numbers and won't charge real cards.

</details>