Infrastructure You Can Trust for Agentic Products
© 2026 MewCP. All rights reserved.
Stripe | MewCP
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
stripe_create_customer — Create a new Stripe customerCreates 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" : {}
}
stripe_get_customer — Retrieve a customer by IDReturns 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" ,
stripe_list_customers — List customers with paginationReturns 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 ,
stripe_search_customers — Search customers by email or nameUses 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:
stripe_create_charge — Charge a customer's payment methodCreates 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:
stripe_create_payment_intent — Create a payment intentCreates 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:
stripe_create_product — Create a productCreates 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" ,
stripe_create_price — Create a price for a productDefines 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"
stripe_create_subscription — Subscribe a customer to a planCreates 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" ,
stripe_cancel_subscription — Cancel a subscriptionCancels 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"
stripe_get_balance — Get account balanceReturns 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"
Getting Your Stripe API Key
Steps
Go to Stripe Dashboard
Click Developers in the top navigation
Select API keys from the left sidebar
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.
Troubleshooting
Missing or Invalid Headers
Cause: API key not provided in request headers or incorrect format
Solution:
Verify Authorization: Bearer YOUR_API_KEY and X-Mewcp-Credential-Id: CREDENTIAL-ID headers are present
Check API key is active in your MewCP account
Insufficient Credits
Cause: API calls have exceeded your request limits
Solution:
Check credit usage in your Curious Layer dashboard
Upgrade to a paid plan or add credits for higher limits
Contact support for credit adjustments
Credential Not Connected
Cause: No Stripe credential linked to your account
Solution:
Go to Credentials in your MewCP dashboard
Add your Stripe API key (static auth)
Retry the request with the correct X-Mewcp-Credential-Id header
Malformed Request Payload
Cause: JSON payload is invalid or missing required fields
Solution:
Validate JSON syntax before sending
Ensure all required tool parameters are included
Check parameter types match expected values
Server Not Found
Cause: Incorrect server name in the API endpoint
Solution:
Verify endpoint format: { server-name }/mcp/{ tool-name }
Use correct server name from documentation
Check available servers in your Curious Layer account
Stripe API Error
Cause: Upstream Stripe API returned an error
Solution:
Check Stripe service status at Stripe Status Page
Verify your API key has the required permissions (live vs. test mode)
Review the error message for specific details — Stripe errors are descriptive
"balance"
:
0
,
"delinquent" : false ,
"created" : 1716720000 ,
"metadata" : {}
}
"count" : 10 ,
"customers" : [{ "id" : "cus_xxx" , "email" : "..." , "name" : "..." , "created" : 1716720000 }]
}
"has_more" : false ,
"count" : 1 ,
"customers" : [{ "id" : "cus_xxx" , "email" : "user@example.com" , "name" : "Jane Doe" }]
}
:
true
,
"charge_id" : "ch_xxx" ,
"amount" : 1000 ,
"currency" : "usd" ,
"status" : "succeeded" ,
"paid" : true
}
{
"success" : true ,
"payment_intent_id" : "pi_xxx" ,
"client_secret" : "pi_xxx_secret_xxx" ,
"amount" : 2000 ,
"currency" : "usd" ,
"status" : "requires_payment_method"
}
"description" : "Access to all pro features" ,
"active" : true
}
,
"product" : "prod_xxx" ,
"unit_amount" : 999 ,
"currency" : "usd" ,
"recurring" : { "interval" : "month" }
}
"customer" : "cus_xxx" ,
"status" : "active" ,
"current_period_start" : 1716720000 ,
"current_period_end" : 1719312000
}
,
"status" : "active" ,
"cancel_at_period_end" : true
}
:
"usd"
}],
"livemode" : true
}