Stripe
Analyze payment data, revenue, subscriptions, and customer insights. Easy setup with API key authentication.
Overview
The Stripe integration connects your payment data to Claude Code through Presso, giving you instant access to revenue, subscriptions, customers, invoices, refunds, and more — all through natural language queries.
Instead of navigating the Stripe dashboard to build reports, ask Claude Code "What's my revenue this month?" and get an instant, actionable analysis.
Setup
Prerequisites
- An active Stripe account
- A Presso account with an active subscription
- Claude Code installed and configured with the Presso MCP server
Create a Restricted API Key
Presso uses a read-only Restricted API Key to connect to your Stripe account.
- Open the Stripe Dashboard.
- In the API Keys section, click Create restricted key.
- Set the following permissions to Read:
- Charges
- Customers
- Disputes
- Invoices
- PaymentIntents
- Payouts
- Plans / Prices
- Products
- Subscriptions
- Balance
- Coupons
- Create the key and copy the
rk_live_...value.
Important: Always use a Restricted Key (
rk_live_...), not a Secret Key (sk_live_...).
Connect Stripe
- Open the Presso dashboard.
- Click Add Connection and select Stripe.
- Enter the Restricted API Key you created.
- Once validated, the connection appears with a green Connected status.
Note: Presso uses read-only access only. It cannot create payments, modify customers, or manage subscriptions.
Available tools
The Stripe integration provides 17 tools:
Account and balance
| Tool | Description |
|---|---|
stripe_get_account | Get Stripe account information |
stripe_retrieve_balance | Get current account balance (available and pending) |
stripe_list_balance_transactions | List balance transactions (money movements) |
Customers
| Tool | Description |
|---|---|
stripe_list_customers | List customers with optional email filter |
stripe_get_customer | Get details for a specific customer |
Products and pricing
| Tool | Description |
|---|---|
stripe_list_products | List products |
stripe_list_prices | List prices with optional product filter |
Payments
| Tool | Description |
|---|---|
stripe_list_charges | List charges with optional customer filter |
stripe_list_payment_intents | List payment intents |
stripe_search_charges | Search charges using Stripe query language |
Subscriptions and invoices
| Tool | Description |
|---|---|
stripe_list_subscriptions | List subscriptions with optional status filter |
stripe_get_subscription | Get details for a specific subscription |
stripe_list_invoices | List invoices with optional status filter |
Refunds and disputes
| Tool | Description |
|---|---|
stripe_list_refunds | List refunds |
stripe_list_disputes | List disputes and chargebacks |
Coupons and payouts
| Tool | Description |
|---|---|
stripe_list_coupons | List coupons |
stripe_list_payouts | List payouts to bank accounts |
Charge search query language
stripe_search_charges supports Stripe's query language for advanced filtering:
| Example query | Description |
|---|---|
status:'succeeded' | Only successful charges |
amount>1000 | Charges over 1000 (smallest currency unit) |
customer:'cus_xxx' | Charges for a specific customer |
status:'succeeded' AND amount>5000 | Combined conditions |
Note: Amounts are in the smallest currency unit (e.g., cents for USD, yen for JPY).
Example queries
Revenue analysis
Show me total revenue this month.
What's the daily revenue trend for the past 30 days?
Show me recent refunds and chargebacks.
Subscription analysis
How many active subscriptions do I have and what's the monthly recurring revenue?
How many subscriptions were cancelled in the past month?
Break down subscriptions by plan.
Customer analysis
Show me my highest-paying customers.
Look up the payment history for this email address.
Payouts and balance
What's my current balance (available and pending)?
Show me recent payouts to my bank account.
Break down this month's balance transactions.
Tips and best practices
- Use Restricted Keys. Always use a Restricted Key (
rk_live_), not a Secret Key (sk_live_). Grant only the minimum permissions needed. - Amounts are in smallest currency units. Stripe API amounts are returned in the smallest currency unit (cents for USD, yen for JPY).
- Use pagination for large datasets. Use the
limitandstarting_afterparameters to efficiently page through large result sets. - Leverage search queries.
stripe_search_chargessupports compound conditions for quickly finding specific transactions.
Limitations
- All tools are read-only. No payments, modifications, or deletions can be made.
- Each request returns a maximum of 100 results. Use pagination for larger datasets.
- Stripe API rate limits apply.
- To access test environment data, use a test-mode Restricted Key.
Next steps
- Shopify integration — Combine Stripe payment data with Shopify order data for deeper analysis.
- Use cases — See practical examples of revenue analysis and subscription management.