The Stripe MCP Server lets AI agents manage customers, products, prices, subscriptions, invoices, payment links, refunds, and disputes, retrieve payment data, and search Stripe’s API documentation.
Encrypted at rest, isolated from the model
Resolved from an AES-256-GCM vault at the moment of the call and attached to the request — the model never sees the secrets.
Try asking
Stripe integration planner. Use this tool to help users accept payments, sell products online, set up billing, set up a marketplace or platform, or build any Stripe integration. Call this BEFORE writing code when the user wants to charge customers, add a checkout flow, handle subscriptions, create invoices, or monetize their app. WHEN TO USE: Call this tool when the user wants to: - Accept payments, take payments, or charge customers (credit cards, bank transfers, wallets) - Sell online, build e-commerce, add a shopping cart, or create a checkout page - Set up subscriptions, recurring billing, metered billing, or usage-based pricing - Send invoices or collect one-time payments - Add Stripe to their app, integrate Stripe, or build a payment flow - Understand which Stripe products to use (Checkout, Elements, Payment Intents, Connect, Billing) - Plan an integration architecture before writing code - Monetize an app, add billing, or start charging users FIRST CALL GUIDANCE: Ask the user about their business and payment requirements before choosing a use case: - What do they sell? (physical goods, digital products, SaaS, services, marketplace) - Payment model? (one-time, subscriptions, invoices, usage-based) - Platform? (web, mobile app, in-person, payment links) - Complexity? (simple payment link vs. custom integration in existing tech stack) Then pass their full description as the message parameter. Returns JSON with use cases, decision trees, documentation links, and a guide_id for follow-up calls. RULES: - Do NOT pass a guide_id unless you received it from this tool in this conversation. - Do NOT retry with different guide_ids if one fails — omit guide_id to start fresh.
Share feedback about Stripe's products. Submit when the user gives product feedback or you observe something concrete that worked or failed. Do not report model behavior, the user's local environment, an unclear prompt, or a recovered tool error. Use actor "human" for the user's own words; "agent" for your observations. Not a support channel — no ticket or reply.
Search the Stripe documentation for the given question and language. It takes two arguments: - question (str): The user question to search an answer for in the Stripe documentation. - language (str, optional): The programming language to search for in the documentation.
Search for Stripe API operations by providing an intent and a resource to operate on. For the resource, use a specific, descriptive phrase (e.g. "issuing card transactions", "payout methods", "outbound payments") rather than a single generic noun — Stripe has many similar resources, and the extra qualifiers help disambiguate between them rather than causing a miss. Only fall back to the bare core noun (e.g. "transactions") if a specific multi-word search returns no results. Returns matching operations with their HTTP method, path, summary, and top-level parameter names with types. Does not include parameter descriptions, enum values, or nested object fields — use stripe_api_details to get those before calling the relevant Stripe API execution tool.
Get detailed parameter information for a specific Stripe API operation. Provide the stripe_api_operation_id from stripe_api_search results to see all path, query, and body parameters with their types, descriptions, and whether they are required. Use before calling the relevant Stripe API execution tool for operations with nested object fields. The response may include an "LLM Context" section with usage guidance specific to the operation — follow any instructions there.
Read data from any Stripe API GET operation: 1. Use stripe_api_search to find the operation ID. 2. Use stripe_api_details to understand its parameters (required for operations with nested object fields like address, metadata, or restrictions). 3. Call this tool with the stripe_api_operation_id and a parameters object containing path and query parameters. For mutations (POST/PATCH/PUT/DELETE), use stripe_api_write instead. Monetary values in responses are in the smallest currency unit (e.g. 1000 = $10.00 USD for most currencies).
Write data via any Stripe API POST/PATCH/PUT/DELETE operation: 1. Use stripe_api_search to find the operation ID. 2. Use stripe_api_details to understand its parameters (required for operations with nested object fields like address, metadata, or restrictions). 3. Call this tool with the stripe_api_operation_id and a parameters object containing path, query, and body parameters. For read-only lookups (GET), use stripe_api_read instead. All monetary amounts must be in the smallest currency unit (e.g. 1000 = $10.00 USD for most currencies).
Stripe Atlas: start or resume a Delaware C corp/LLC formation. Set action to: - "list": check for existing applications before "create", using an authorized account. Returns applications the current user can access as primary representative. Show any matches to the user. Applications with submitted_at are already submitted; offer to resume only drafts or create a separate company. - "create": create a new Atlas application, which also creates a new Stripe merchant required for Atlas. You can call "create" from a sandbox or testmode account; the new Stripe account is always a live account. Follow the returned authorization instructions. - "retrieve": load the formation and next step on the authorized Atlas account. - "advance": save step and data. Follow next_step_instructions and next_step_schema; steps can be revisited. For a chosen merchant_id, get stripe_context from list_available_accounts_or_orgs. That tool checks session access, not application existence. If the account is missing, authorize it with manage_stripe_accounts and refresh the account list before retrieving its formation. Drafts only: submission, signing, payment, and personal tax IDs happen in the Dashboard. Creation is not idempotent. After a timeout or unclear failure, don't retry "create"; use "list" and "retrieve" before resending only missing changes using returned IDs.
This tool is for analyzing Stripe Sigma and Metrics data (e.g. about revenue, charges, products, invoices, subscriptions, disputes, transactions, tax tables, payments etc) and running SQL-based reporting queries. Use it for historical analytics, aggregations, and business intelligence questions (e.g. MRR, churn, cohorts, revenue trends). Prefer this tool over making multiple Stripe API calls that would need to be joined or aggregated client-side. ## SQL Query Runs **execute_query_run**: Runs a SQL query (Trino) against reporting tables. Requires `sql`. Returns a QueryRun object; use retrieve_query_run to poll. **retrieve_query_run**: Retrieves a QueryRun's status and results. Requires `query_run_id`. **search_query_tables**: Searches available reporting tables by keyword. Requires `search_string`. **retrieve_query_table**: Gets full schema for a specific table. Requires `table_name`, which is the `name` parameter in each table. **execute_query_template**: Starts a pre-built query template for subscription/billing metrics (Trino, async). Requires `metric`. Optional: `dimensions`, `grains`, `metric_filters`. Returns a `query_run_id`; use retrieve_query_template to poll for results. **retrieve_query_template**: Retrieves the status/results of a template run started by execute_query_template. Requires `query_run_id`. ### workflow (custom SQL): 1. search_query_tables: find relevant tables 2. retrieve_query_table: get column names and types 3. execute_query_run: run SQL 4. retrieve_query_run: poll status, get download link ### workflow (query templates): 1. execute_query_template: start a template-based metric query (returns a query_run_id) 2. retrieve_query_template: poll with query_run_id (exponential backoff) until status is 'succeeded', then get download link ## Return types All monetary values returned by this tool are expressed in the smallest currency unit. For example: - 1000 is 10 USD (most two-decimal currencies like GBP, EUR, AUD, CAD, divide by 100 to get the major unit value) - 10 is 10 JPY (zero-decimal currency) - 10000 is 10 BHD (three-decimal currency) - 1000000 is 1 USDC If you don't know how many decimals are in a currency's minor units, use the search_stripe_documentation tool to look it up in https://docs.stripe.com/currencies#minor-units
Lists all Stripe accounts in this session with their stripe_context and livemode values. - Call this first to get stripe_context and livemode before any account-specific operation. - After calling, ask the user which account to use unless already specified. - Warn the user before switching between testmode and livemode.
Returns a URL to the Stripe Dashboard where users can add accounts, remove accounts, or change permissions for this session. - Use when the user wants to add, remove, or modify permissions for an account. - Call this directly — no need to call list_available_accounts_or_orgs first. - Present the URL to the user and wait for them to confirm they completed their changes. - After confirmation, call list_available_accounts_or_orgs to sync the updated account list.
One endpoint, the same key, whichever client you use.
~/Library/Application Support/Claude/claude_desktop_config.json (Mac) · %APPDATA%\Claude\claude_desktop_config.json (Windows)
Replace API_KEY with your own key.
Already have an "mcpServers" section in your config? Just add the server entry inside it.
Discovery, routing, credentials, tool scoping and execution logs all happen at the gateway→connections stay ACTIVE with no work from you
Stripe MCP runs through a gateway that holds the credentials, scopes the access and records every call.
Managed auth, hosted MCP servers, and every Gmail tool your agent needs.
Free to start.