Stripe MCP Server

Official

Payments infrastructure meets AI — customers, invoices, subscriptions and current API docs from Stripe's server.

Local + remotestdiostreamable-httpTypeScriptMIT 1.1k

What is the Stripe MCP server?

Stripe's MCP server covers both halves of working with payments: building against Stripe (documentation search over their vast API surface) and operating a Stripe account (customers, invoices, payment links, subscriptions, refunds and disputes as callable tools).

The docs half quietly matters most for developers. Stripe's API is enormous, versioned, and full of subtleties an LLM half-remembers — exactly the conditions for plausible-but-wrong integration code. The search_documentation tool grounds answers in current Stripe docs, turning "how do I handle SCA retries for subscription invoices?" from folklore into citation.

The operational half turns account chores conversational: "create a payment link for the annual plan", "how much did we refund last month?", "find the customer with this email and check their subscription state". For support and finance workflows, having these as approved-tool-calls rather than dashboard sessions compounds into real time savings.

Stripe being Stripe, the guardrails are thought through: the hosted server at mcp.stripe.com uses OAuth, the local variant runs with restricted API keys you scope yourself, and the tool list is curated rather than a blind mirror of every endpoint. Run it with a restricted key in test mode while you build; graduate the scopes deliberately. Money infrastructure deserves the same caution here as anywhere — and gets better affordances for it than most.

Key hygiene that pays off

  • Restricted keys (rk_) are per-resource. Grant read on customers and subscriptions while withholding write on charges, and build the key around the questions you actually intend to ask.
  • --tools=all is convenient and blunt. Naming a subset instead shrinks both the risk surface and the number of tool definitions the model has to reason across before choosing one.
  • Test mode is a genuinely separate world: an rk_test_ key cannot reach a live customer, which makes it the correct place to rehearse anything that ends in an email to a human.
  • Roll the key from the dashboard the moment a config file lands somewhere shared. Stripe records last-used timestamps per key, so you can confirm afterwards that nothing else was quietly relying on it.

What you can do with it

Doc-correct integration code

Payment flows written against today's Stripe API, with sources.

Support with account context

Customer, subscription and refund state pulled mid-ticket.

Finance quick answers

Refund totals, invoice states and dispute queues without dashboard digging.

Available tools

ToolWhat it does
search_documentationSearch current Stripe docs
list_customers / create_customerFind and create customers
create_payment_linkGenerate payment links for products/prices
create_invoice / finalize_invoiceInvoice workflows
list_subscriptions / update_subscriptionSubscription state and changes
create_refundIssue refunds
list_disputesReview disputes
get_stripe_account_infoAccount context

How to install the Stripe MCP server

claude mcp add --transport http stripe https://mcp.stripe.com

Configuration

A Stripe account. Remote: OAuth. Local: a restricted API key — test mode first, minimal scopes always.

VariableDescriptionRequired
STRIPE_SECRET_KEYRestricted API key for local mode (remote uses OAuth)e.g. rk_test_...Optional

Example prompts to try

  • Search Stripe docs: correct webhook signature verification for API version 2025.
  • Create a payment link for the Pro annual price and give me the URL.
  • Find customer jane@acme.com — subscription status, last invoice, any disputes?

Frequently asked questions

Stripe's design helps: OAuth on the hosted server, restricted keys locally, curated tools, and your client's per-call confirmations. Start in test mode with minimal scopes and money-moving stays deliberate.