Last Verified: September 2026 — commands checked against Stripe’s official MCP server docs
You’re building checkout in Claude Code and it keeps guessing: which price ID, which webhook events, did that test customer actually get created? So you tab over to the Stripe Dashboard, copy IDs, and paste them back.
Stripe MCP is Stripe’s official hosted server. It lets Claude Code read your products, prices, customers, and payments, search Stripe’s docs, and (when you allow it) create things. Setup is one command and an OAuth sign-in, and this guide connects it to a sandbox first so nothing touches real money.
Your app data lives in Supabase? See our Supabase MCP setup.
How it works
Quick Start
Run this in your project folder:
claude mcp add --scope project --transport http stripe https://mcp.stripe.com/
Start Claude Code, run /mcp, pick stripe, and on Stripe’s consent page grant access to a sandbox. Total time: about 1 minute. No API key to paste.
⚡ Copy This Prompt: Let Claude Code Install and Verify It For You
Skip the manual steps below and hand the whole job to the agent instead:
You have shell access and the `claude mcp` CLI on this machine. Connect Stripe's official MCP server to Claude Code for this project and report back. Do not tell me it's done unless step 4 actually confirms it:
1. Run `claude mcp list`. If a stripe entry already exists, show me its URL and stop instead of adding a second one.
2. Run:
`claude mcp add --scope project --transport http stripe https://mcp.stripe.com/`
3. Tell me to run `/mcp` in Claude Code, pick stripe, and finish the Stripe sign-in in my browser. Remind me to grant access to a SANDBOX only, not a live mode account. Wait until I say it's done, then run `claude mcp list` and confirm stripe shows Connected.
4. Call get_stripe_account_info and tell me the account name and whether it is a sandbox or live mode. Then list the 5 most recent products with their prices. Don't create, update, or refund anything.
Never ask me to paste a Stripe API key into this chat. If any step fails, give me the exact error and the command that produced it. Do not skip ahead.
The check at the end only reads, and it tells you which environment you connected before anything else happens.
Already using an API key with Stripe MCP? Starting October 31, 2026, Stripe MCP stops accepting full-access secret keys and restricted keys without the Agent tag. Those requests get a 401. Switch to OAuth or create a new agent API key before then (see the Q&A).
On this page (7 sections)
What You’ll Need
| Requirement | Why You Need It | Time |
|---|---|---|
| Claude Code installed | The client that calls the Stripe tools | 0 min |
| A Stripe account with a sandbox | Somewhere safe to point the agent first | 0–2 min |
| A browser on the same machine | For the one-time OAuth consent | 0 min |
Step-by-Step Setup
Prefer to do it by hand instead of delegating to the agent? Here’s the manual version.
Step 1 — Add the server
~10 sec
--scope project writes the entry to .mcp.json in your repo, so teammates who clone it get the same server. Each person still signs in with their own Stripe login:
claude mcp add --scope project --transport http stripe https://mcp.stripe.com/

claude, approve it, then sign in with /mcp.Step 2 — Sign in and pick the environment
~30 sec
Inside Claude Code, run /mcp, select stripe, and authenticate. Stripe’s consent page lets you grant access to one or more live mode accounts or sandboxes, with different permissions for each. Tick only the sandbox for now.
Step 3 — Know how to switch it off
~10 sec
Your connected clients show up in the Stripe Dashboard under your user settings > OAuth sessions. The ⋯ menu next to a client has Revoke access. Admins can also turn MCP access on or off for the whole team, separately for live mode and sandboxes.

What It Can Do
| Job | Example Ask | Tool Behind It |
|---|---|---|
| Look up your data | “List my products and their active prices” | stripe_api_read (GET) |
| Find the right API call | “Which endpoint creates a Checkout Session with a trial?” | stripe_api_search, stripe_api_details |
| Answer docs questions | “Which webhook events do I need for failed subscription payments?” | search_stripe_documentation |
| Create test data | “Create a test product at $19/month and a payment link for it” | stripe_api_write |
| Plan an integration | “Walk me through adding subscriptions to this app” | stripe_implementation_planner |
One nice safety net: for some writes, such as refunds and outbound payments, Stripe itself requires a human to approve. The agent gives you a link, you review and click Approve, then tell the agent to retry. Unapproved requests expire after 24 hours.
Verify It’s Actually Working
claude mcp list
! stripe Needs authentication → run
/mcp and sign in (Step 2)✘ stripe Failed to connect → on a work network, ask IT to allow
mcp.stripe.com
Then ask something only your account knows:
Which Stripe account and environment are you connected to? Then list my 5 most recent products with their prices.
If it says sandbox and the products match your Dashboard, it’s working.
Common Mistakes to Avoid
- Granting live mode on day one. The consent page makes it easy to tick everything. Start with a sandbox, and add live mode later only if you actually need the agent reading real payments.
- Pasting a secret key on the command line. It ends up in your shell history and possibly in
.mcp.jsonin git. Use OAuth, or reference an environment variable (see the Q&A). - Keeping an old
sk_orrk_key setup. After October 31, 2026 those stop working with Stripe MCP unless the key is an agent API key. - Auto-approving
stripe_api_write. One tool covers every POST, PATCH, PUT, and DELETE. Keep manual approval on for it. A Claude Code hook can enforce that. - Mixing it with untrusted servers. Stripe’s docs warn about prompt injection when the Stripe server runs next to others. Don’t pair it with a web-scraping server in the same session without approval turned on.
Q&A
Is it free?
The MCP server itself comes with your Stripe account. Normal Stripe fees still apply to anything that processes a real payment.
How do I use an API key instead of OAuth?
Create an agent API key (it shows an Agent badge in the Dashboard) with only the permissions you need. In .mcp.json, set "headers": {"Authorization": "Bearer ${AGENT_API_KEY}"} and put the key in that environment variable, not in the file.
Is there a one-command installer?
Yes. Stripe’s docs recommend npm install -g @stripe/cli@latest then stripe agent setup, which detects your agents and also installs Stripe’s skills. The manual command above is enough if you just want the MCP server.
Can it work on a connected account (Stripe Connect)?
Yes, but not with OAuth. Use a platform restricted key with connected-account permissions and send a Stripe-Account header.
Does it work in Claude Desktop or claude.ai too?
Yes. Stripe has an official connector in the Claude directory. That connection is separate from the one in Claude Code.
Official Resources
- Stripe MCP docs — setup, auth, tools, sessions
- Stripe agent API keys — the key type MCP accepts after October 31, 2026
- Claude Code MCP docs —
claude mcp add, scopes, and OAuth with/mcp
If this guide got Claude Code reading your Stripe setup instead of you copying IDs out of the Dashboard, follow us on X for more setup guides and prompt tips.
