
Stripe MCP server (official): setup, tools and safety
Lets Claude, ChatGPT, Cursor and other AI assistants look up and change your Stripe data, like customers, payments and refunds, and search Stripe's docs.
This is Stripe's own way to connect your AI assistant to your Stripe account. Ask in plain words and it can look up a payment, issue a refund or search Stripe's docs. It can move real money, so start in a sandbox, Stripe's test mode, before you connect your live account.
Good for
- Developers building on Stripe who want Stripe's docs and API at hand inside their code editor
- Founders and ops staff who want to look up customers, payments and subscriptions by just asking
- Support teams that issue refunds or fix invoices from their AI assistant
- Stripe Connect platforms that run AI agents on their connected accounts
Works in
5 supported · 2 with issues · 7 should work
Tap an app to see how to set it up and any known problems.
Stripe's docs cover adding the remote server with OAuth, an agent key in .mcp.json, or the official Stripe plugin. docs.stripe.com
Stripe's docs give a one-click install link, a ~/.cursor/mcp.json config and a Stripe plugin in the Cursor Marketplace. docs.stripe.com
Stripe's docs cover codex mcp add, an agent key in config.toml, or the Stripe plugin; the config is shared with ChatGPT desktop. docs.stripe.com
The README covers installing the Stripe extension from GitHub, then signing in with /mcp auth stripe.
Known problems
- Closed
Sign-in fails with a "protected resource does not match" error at startup
Reported Jan 2026 · GitHub
Install the official Stripe plugin in ChatGPT and connect with OAuth. docs.stripe.com
Add the official Stripe connector from the Claude directory and sign in with OAuth.
Known problems
- Open
The local Stripe extension hangs on startup with the latest MCP protocol version
Since Mar 2026 · GitHub
Stripe's docs give a one-click install link and a .vscode/mcp.json config with OAuth sign-in.
Known problems
- Open
Sign-in redirect looks broken and VS Code asks you to sign in again after every restart
Since Mar 2026 · GitHub
No Stripe docs for Windsurf. Stripe says any MCP client can use the remote URL with OAuth or an agent API key header. docs.stripe.com
No Stripe docs for Copilot CLI. The generic remote URL setup should apply. docs.stripe.com
No Stripe docs for Cline. The generic remote URL setup should apply. docs.stripe.com
No Stripe docs for Zed. The generic remote URL setup should apply. docs.stripe.com
No Stripe docs for JetBrains IDEs. The local npx proxy or the generic remote URL setup should apply. docs.stripe.com
No Stripe docs for OpenCode. The generic remote URL setup should apply. docs.stripe.com
No Stripe docs for n8n. Use an agent API key as a bearer header, since n8n workflows run unattended. docs.stripe.com
Install Stripe MCP
Claude Code
- 1
Copy this prompt.
Add the Stripe MCP server to Claude Code. Run this command: claude mcp add --transport http stripe https://mcp.stripe.com/ Then check that it loaded and tell me if I need to sign in or restart.
- 2
Paste it into Claude Code. It shows the change and asks before running it.
Requires Stripe account; approve access in Stripe's OAuth window.
Read-only mode: There's no read-only switch. To keep it to reading only, create an agent key with only Read permissions, or pick read-only when Stripe asks you to approve access.
After claude mcp add, start Claude Code and run /mcp to sign in to Stripe with OAuth. Stripe's docs: migrate API-key setups by November 30, 2026. From December, mcp.stripe.com rejects full-access secret keys and restricted keys without the Agent tag (401). OAuth is not affected.
From the vendor's docs. Source.
Tools
Looks up your customers, payments, invoices, subscriptions, payouts and balance
Runs any read-only (GET) Stripe API call: customers, charges, invoices, subscriptions, payouts, disputes, balance and more from Stripe's supported-methods list.
Try: “List my 10 most recent failed PaymentIntents and the customer email on each.”
Network ·
stripe_api_readAnswers revenue and billing questions you ask in plain words (in preview)
Answers revenue and billing questions in plain language by building and running the query for you. In preview.
Try: “What was my MRR churn last month, broken down by plan?”
Read ·
stripe_analyticsShows your Stripe and Treasury balances in one view
Shows your balances across the Stripe balance and any Treasury accounts in one view. Treasury tools are in public preview.
Try: “Show my balance summary across Stripe and Treasury.”
Read ·
get_balance_summaryShows which Stripe account you are connected to
Returns details of the Stripe account the session is connected to, so you can check you are working in the account you meant before any write.
Try: “Which Stripe account am I connected to?”
Read ·
get_stripe_account_infoSearches Stripe's help docs for answers, without touching your account
Searches Stripe's docs and support articles and returns relevant answers. Touches no account data.
Try: “How do I handle a failed subscription renewal webhook in Node.js?”
Read ·
search_stripe_documentationCreates or changes customers, prices, invoices and subscriptions; refunds need your OK
Runs any write call in Stripe's supported list: create customers, products, prices, invoices, coupons, payment links and subscriptions, cancel subscriptions, void invoices, delete coupons, issue refunds. Refunds need confirmation in the Stripe Dashboard first.
Try: “Create a $49 monthly price for the product 'Pro plan' and give me a payment link for it.”
Delete ·
stripe_api_writeSaves a recipient you can send Treasury money to later
Adds a recipient so you can later send Treasury money to them. It does not move money by itself.
Try: “Set up Acme Design as a Treasury payment recipient.”
Write ·
setup_recipientSends money from your Treasury account to a saved recipient (needs your approval)
Sends money out of a Treasury account to a recipient you set up. Stripe requires Dashboard approval before it goes through.
Try: “Send 500 USD from Treasury to the recipient Acme Design.”
Write ·
send_moneyMoves money between your Stripe balances (needs your approval)
Moves money between your supported Stripe balances. Needs Dashboard approval.
Try: “Move 1,000 USD from my Stripe balance to my Treasury account.”
Write ·
transfer_moneyConverts money between currencies in your Treasury account (needs your approval)
Converts money between currencies inside a Treasury account. Stripe requires you to approve each request in the Dashboard.
Try: “Convert 2,000 USD to EUR in my Treasury account.”
Write ·
convert_currencyHelps you pick the right Stripe products for what you are building
Walks you through which Stripe products fit what you are building (one-off payments, a store, subscriptions) and how to integrate them.
Try: “I sell a SaaS with seat-based pricing. Plan my Stripe Billing integration.”
Read ·
stripe_implementation_plannerStarts or resumes a Stripe Atlas application to form a Delaware company
Starts or picks up a Stripe Atlas application to form a Delaware C corporation or LLC.
Try: “Resume my Stripe Atlas Delaware C corp application and tell me what is left.”
Write ·
atlas_company_formationSends your feedback on a Stripe product to Stripe
Sends your feedback on a Stripe product to Stripe.
Try: “Send Stripe feedback that the invoice PDF template needs a custom footer field.”
Write ·
send_stripe_feedbackUsed by the assistant behind the scenes
Finds the right Stripe action for your request before running it
Finds which Stripe API method does what you asked for, so the agent can pick the right call before reading or writing anything.
Try: “Which Stripe API method lists the refunds on a charge?”
Read ·
stripe_api_searchChecks what details a Stripe action needs so it fills them in correctly
Returns the parameters a given API method accepts, so the agent fills in a call correctly instead of guessing field names.
Try: “What parameters does creating a payment link take?”
Read ·
stripe_api_details
From the official docs
Pros and cons
Good
- Run by Stripe at mcp.stripe.com; no local process needed.
- OAuth sign-in with per-environment permissions and revocable sessions.
- Covers more of the API than any community server here, through generic read and write tools.
- Stripe-side guardrails: Dashboard approval for refunds and Treasury money moves; default approval rules for agent keys.
- Docs search and an integration planner, useful when building with Stripe, not only operating it.
- Documented setup for Claude, ChatGPT, Cursor, VS Code, Codex and Gemini CLI.
Watch out
- No read-only switch; you get read-only only through key or OAuth permissions.
- Most writes through stripe_api_write run without a second check.
- Secret keys and untagged restricted keys stop working in December 2026; API-key setups must move to agent keys by November 30, 2026.
- Client-specific OAuth problems have been reported (VS Code, Gemini CLI).
Permissions
high risk · 8 things to watch
High risk
If you connect it to your live Stripe account, your assistant can refund customers, cancel subscriptions and send money, and only some of those actions ask you first. Try it in Stripe's test mode before you connect your live account.
What it can do
- Read your data
- Create and change things
- Delete things
- Read-only modeHow to turn it on
Watch out for
It can refund and send real money in live mode
Connect to a sandbox first, where no real payments happen. In live mode, give it only the permissions the job needs. docs.stripe.com
Only some actions ask for your approval first
Refunds and Treasury money moves wait for your OK in the Stripe Dashboard, and the request expires after 24 hours. Other changes, like voiding an invoice, run right away, so turn on your app's setting that asks before each tool runs. docs.stripe.com
Old Stripe keys stop working after November 30, 2026
From December 2026, full secret keys (sk_) and restricted keys without the Agent tag are rejected, including through the local @stripe/mcp package. Switch to an agent API key before then. docs.stripe.com
Text in emails or web pages can trick it into acting
If your assistant also reads email or the web, hidden instructions there could push it toward Stripe actions. Stripe advises turning on your app's setting that asks before each tool runs. docs.stripe.com
Agent keys come with approval rules switched on
With an agent key, a second person must approve refunds, cancelled subscriptions, payouts, transfers and currency conversions. An admin can change or delete these rules. docs.stripe.com
A full secret key can do anything in your account
Use a restricted key with only the permissions you need instead of an sk_ key. The local package shows a warning if you give it an sk_ key. docs.stripe.com
Test and live accounts are kept apart
Test keys (rk_test_) cannot reach live data, and no payments happen in a sandbox. When you sign in, you can grant test and live accounts separately. docs.stripe.com
Admins can switch it off and sign people out
In Team and security, an admin can turn access on or off for live mode and sandboxes separately and end any member's sessions. docs.stripe.com
Security advisories
No published security advisories as of Nov 1, 2026.
Technical details
| Turning on read-only | No read-only switch on the server. Give the agent an agent API key with Read-only permissions, or grant read-only permissions per environment on the OAuth consent page. Tool access follows the key or grant. |
|---|---|
| Talks to | mcp.stripe.com |
| Sign-in and keys | OAuth: your MCP client stores the session; revoke it under OAuth sessions in Stripe user settings. API key: sits in your client config or an environment variable; Stripe's docs say to reference an env var rather than paste the key on the command line. |
| Scopes |
|
Alternatives
Use Stripe's own connector, the only one run by Stripe. Pick @devtechtricks/stripe-mcp only if you want an assistant that reads test data and can never change anything.
| Server | Official | Runs | Sign-in | Can change things | Tools | npm downloads/week |
|---|---|---|---|---|---|---|
| Stripe MCP (official)This page | Official | Hosted | Account or API key | Yes | 15 | 22.3K/wk |
| @codespar/mcp-stripe | Community | Local | API key | Yes | 30 | 47/wk |
| stripe-mcp-server (friendlygeorge) | Community | Local | API key | Yes | 21 | 36/wk |
| @devtechtricks/stripe-mcp | Community | Local | Test key only | No | – | 38/wk |
| Pipeworx Stripe pack | Community | HostedLocal | API key | No | 6 | 18/wk |
What people say
Few people discuss it outside GitHub; those who do like that Stripe runs it but worry about letting an AI touch live payments. Most bug reports were sign-in and setup bugs, and Stripe closed most within days.
What people like
- Hosted by Stripe at mcp.stripe.com, so there is nothing to run locally (HN, 2025).
- Official server: you grant access to Stripe itself, not a third party (HN, 2025).
- Stripe staff answer and fix issues: an npm packaging crash was fixed the same day (March 2026), a pagination bug the next day and a strict-client error after 17 days (both June 2026).
Common complaints
- Some developers are uneasy giving an LLM write access to a live payments account at all (HN, 2025).
- OAuth has broken in specific clients: VS Code 1.103.2 (Sept 2025) and Gemini CLI (Jan to Mar 2026), both reported on GitHub and closed.
- @stripe/mcp 0.3.2 crashed on start with a missing module; fixed in 0.3.3 (March 2026).
- An open report (March 2026) says @stripe/mcp 0.2.3 hangs on initialize when Claude Desktop sends protocol version 2025-11-25.
In their words
“I'm terrified of giving an LLM access to anything that is not a text document that I can commit to git and revert if it does something wrong.”sothatsitHacker NewsJun 2025
“It would be so much easier for everyone if they would simply host it themselves and give access on MCP.notion.so like stripe and others do.”cosbgnHacker NewsSep 2025
“It seems to me that the official MCP services would be strictly better, e.g. because I don't have to grant access to my resources to Mistral.”kjgkjhfkjfGitHub issueJun 2026
“Note that only 10 results are returned despite the higher limit”petersheldon
3 more quotesFewer quotes
Questions
Is the Stripe MCP server free?
Yes. Stripe charges nothing for using it. Your normal Stripe fees still apply to anything it does, such as a payment link a customer pays.
What is the Stripe MCP server URL?
https://mcp.stripe.com. Add it in your AI app, then sign in with your Stripe account.
Can the Stripe MCP server issue refunds or move money?
Yes. It can create refunds, payment links, invoices and subscriptions, and cancel subscriptions, and it can send and transfer money through Stripe Treasury, which is in public preview. Refunds and money transfers wait until you approve them in the Stripe Dashboard; other changes happen right away.
Is it safe to connect Stripe to my AI assistant?
It is as safe as the access you give it. Start in a sandbox, give it only the permissions the job needs, and turn on your app's setting that asks before each action. Stripe advises this because text in emails or web pages your assistant reads could push it toward Stripe actions.
How do I make it read-only?
Give it read-only access. When you sign in, pick read-only permissions on Stripe's approval page, or use an agent API key with only Read permissions. There is no separate read-only switch.
Can I test it without touching live data?
Yes. Connect a sandbox instead of your live account when you sign in, or use a sandbox key. Sandbox data is kept apart from live data, and no real payments go through.
Should I sign in with Stripe or use an API key?
Sign in with your Stripe account for any assistant you chat with, such as Claude, ChatGPT or Cursor. You choose the account and permissions on Stripe's page and can revoke access later. Use an agent API key only for agents that run on their own, or to work in Connect connected accounts, which sign-in does not support.
Will my existing Stripe secret key keep working?
No, not after November 30, 2026. From December, Stripe rejects full secret keys and any restricted key not marked for agent use. Create a new restricted key and choose the agent option when Stripe asks what it is for, or sign in with your Stripe account instead.
What is a Stripe agent API key?
It is a restricted key you mark for agent use when you create it. You set None, Read or Write access for each kind of data, like any restricted key. Stripe also switches on approval rules for it, so a second person must approve refunds, cancelled subscriptions, payouts, transfers and currency conversions.
How do I add Stripe to Claude or ChatGPT?
Claude has an official Stripe connector in its directory, and ChatGPT has an official Stripe plugin, and both connect when you sign in with Stripe. On Claude Team and Enterprise, an owner has to add the connector first. Steps for other apps are in the install box above.
How do I disconnect an assistant from Stripe?
Open your Stripe user settings, find the app under OAuth sessions and choose Revoke access. Admins can end other members' sessions in Team and security, and can turn access off for live mode and sandboxes separately.
Information
updated Nov 2, 2026
- Publisher
- Stripe (official)
- Package
@stripe/mcp- Registry
- npm
- Endpoint
https://mcp.stripe.com- Transport
- Streamable HTTP, stdio
- Auth
- OAuth
- Version
- 0.2.4
- License
- MIT
- Last commit
- Oct 31, 2026
- Open issues
- 36
- Listed in
- Official MCP registry, Docker MCP Catalog
Stripe for AI agentsStripe MCP docsGitHubnpmOfficial MCP RegistryStripe agent plugin setupIssuesStripe privacy policyStripe support
Other Stripe MCP servers
Sources
Docs, issue trackers and discussions this page is built from. Issues, quotes and findings above link to their own source.
Show all 25Hide
- Model Context Protocol (MCP) · docs.stripe.com
- Stripe AI README · github.com
- API keys · docs.stripe.com
- Stripe Model Context Protocol README · github.com
- @stripe/mcp index.ts · github.com
- Support resources/templates/list so mcp.stripe.com works with strict MCP clients · github.com
- Set up two-party approvals · docs.stripe.com
- @stripe/mcp cli.ts · github.com
- stripe/ai security advisories · github.com
- Restricted API keys · docs.stripe.com
- com.stripe/mcp · registry.modelcontextprotocol.io
- MCP server hangs on initialize when client sends protocol version 2025-11-25 · github.com
- Authentication not working · github.com
- Protected resource https://mcp.stripe.com does not match expected · github.com
- Stripe MCP OAuth not working on VSCode 1.103.2 · github.com
- HN comment by sothatsit · news.ycombinator.com
- HN comment by cosbgn · news.ycombinator.com
- HN comment by kjgkjhfkjf · news.ycombinator.com
- Stripe MCP Server ignores limit and starting_after pagination parameters · github.com
- @stripe/mcp@0.3.2: Cannot find module './userAgent' · github.com
- Read Only Mode · github.com
- @codespar/mcp-stripe README · github.com
- stripe-mcp-server README · github.com
- @devtechtricks/stripe-mcp README · github.com
- mcp-stripe_connect README · github.com