On this page
The Stripe MCP server is Stripe's official hosted server at
https://mcp.stripe.com. It signs in with OAuth by default. It lets an agent
read and write Stripe data (customers, payments, invoices, subscriptions,
refunds) and search Stripe's docs. TrustedMCP grades it A.
Because it touches money, it has the highest blast radius of any server in the payments category. The setup is short. The security part is worth reading twice.
What it connects
- API tools:
stripe_api_searchandstripe_api_detailsfind API methods.stripe_api_readruns any supportedGETcall.stripe_api_writerunsPOST,PATCH,PUTandDELETEcalls, so it can create customers, invoices, subscriptions, coupons and refunds. - Treasury tools (public preview):
send_money,transfer_money,convert_currency,setup_recipientandget_balance_summary. - Other tools: account info, analytics, documentation search, and an implementation planner.
- It runs remotely over HTTPS. There is nothing to install and no local process.
Setup
Stripe's recommended path is its CLI, which detects your agents and configures
them for you: npm install -g @stripe/cli@latest, then stripe agent setup.
To set it up by hand, use the snippets below. They are copied from
Stripe's MCP docs.
Claude Code:
claude mcp add --transport http stripe https://mcp.stripe.com/
Then start Claude Code and run /mcp to sign in with OAuth.
Cursor, in ~/.cursor/mcp.json:
{ "mcpServers": { "stripe": { "url": "https://mcp.stripe.com" } } }
VS Code, in .vscode/mcp.json:
{ "servers": { "stripe": { "type": "http", "url": "https://mcp.stripe.com" } } }
On first use, the client opens Stripe's consent page. You pick one or more live accounts or sandboxes and set permissions for each one. No key goes in the config file.
Headless agents. If a client can't do OAuth, use an
agent API key with only the
permissions it needs. Keep it in an environment variable, not in the file. For
Claude Code, Stripe's example for a project .mcp.json is:
{
"mcpServers": {
"stripe": {
"type": "http",
"url": "https://mcp.stripe.com",
"headers": { "Authorization": "Bearer ${AGENT_API_KEY}" }
}
}
}
AGENT_API_KEY is a placeholder for the name of your own variable. Set it in
your shell before you start Claude Code.
Security notes
A payments server can lose real money in one bad call. Stripe has built in more guard rails than most servers. You still need to use them.
- Start in a sandbox. OAuth lets you grant a sandbox and leave live mode out. Try your workflows there first.
- Give each environment its own permissions. You set them per account or sandbox on the consent page. Grant the least the agent needs.
- Revoke what you don't use. Your connected clients are listed under OAuth sessions in your Stripe user settings. Admins can revoke other users' sessions under Team and security.
- Admins can turn MCP off. A Dashboard setting enables or disables MCP access for the whole team, separately for live mode and sandboxes. If you don't want agents in live mode, switch it off there.
- Know what needs a human. Stripe asks for human confirmation before
"certain"
stripe_api_writeactions, such as refunds and outbound payments. The agent gives you a link. You review and approve, then tell the agent to retry. Unapproved requests expire after 24 hours. Stripe does not list every action that is covered, so don't treat this as a full safety net. - The write tool is wide. One generic
stripe_api_writetool reaches much of the API, and the Treasury preview tools can send and transfer money. Scope permissions so they can't be used where you don't need them. - Keep tool approval on. Stripe tells you to turn on your client's tool-approval setting so you see each call before it runs.
- Watch for prompt injection. Stripe warns about using its server next to other MCP servers. A web page, email or ticket read by another tool can carry instructions aimed at your Stripe tools.
Key change on 30 November 2026. From December, mcp.stripe.com will stop
accepting full-access secret keys and restricted keys without the Agent tag.
Those requests will get a 401. If you use a key today, create a new agent API
key or switch to OAuth before the deadline. Test the new setup in a sandbox,
then expire the old key.
For a general checklist, see is this MCP server safe? and MCP security best practices.
Why it grades A
TrustedMCP scores four things (how we score):
- Authentication: 30 of 30. OAuth is the default. Sessions are scoped per environment and you can revoke them.
- Known CVEs: 25 of 25. No reported vulnerabilities.
- Transport: 20 of 20. Hosted over HTTPS, with no local command to run.
- Maintenance: 18 of 25. This is the only deduction. The hosted server is closed source, so we can't see how often it changes. The public package was last changed in April 2026.
Full breakdown on the Stripe MCP listing.
Frequently asked questions
How do I set up the Stripe MCP server?
Run stripe agent setup from the Stripe CLI, or add https://mcp.stripe.com
to your client with one of the snippets above. Then sign in through Stripe's
OAuth page and pick the accounts or sandboxes to allow.
Should I use OAuth or a restricted key?
Use OAuth for any client you use yourself. It needs no key and you can revoke it from the Dashboard. Use an agent API key only for headless agents that can't do OAuth. Older full-access secret keys and untagged restricted keys stop working after 30 November 2026.
Can I use it in test mode?
Yes. On the consent page, grant a sandbox instead of a live account. Admins can also disable live-mode MCP access for the whole team.
Why do I get a 401 or a permission error?
A 401 usually means the key isn't accepted. From December 2026 that includes
full-access secret keys and restricted keys without the Agent tag. Reconnect
with OAuth or use a new agent API key. A permission error means the session or
key wasn't granted that action. Add only the permission you need. On a managed
work network, IT may also need to allow mcp.stripe.com.
Can the Stripe MCP refund or move money?
Yes. stripe_api_write can create refunds, and the Treasury preview tools can
send and transfer money. Stripe asks a human to approve some writes, like
refunds and outbound payments, but limit permissions too.
How much context does it use?
Less than you might expect. Stripe routes most of the API through a few generic tools instead of one tool per endpoint, to keep the context window small. See why MCP servers eat your context window to measure it in your own client.