Stripe
Stripe's MCP server, published as @stripe/mcp on npm, exposes Stripe API operations as tools an AI agent can call: creating customers, products, prices, payment links, invoices, refunds, and reading balance and documentation. It talks stdio JSON-RPC and authenticates with one Stripe secret key, either as an environment variable or a command-line argument.
How we started it
npx -y @stripe/mcpUse it if you already trust an agent with a Stripe restricted key, and skip it otherwise, because the setup question here is not technical but financial. When we started it with a clean environment it refused to initialize at all, exiting before the handshake with an explicit complaint about the missing key, which is the correct behaviour and also the whole story: this server is a thin shell over money movement, and it will not pretend to work without credentials. The strongest argument against is that the same key that lets an agent create a payment link can, unless you scope it down, refund and delete things too.
Use it if
Skip it if
The bill for your context window
We cannot give you a Context Tax for this one. Boot failed before initialize completed, so the tools/list payload was never sent and the measured token count sits at zero, which means zero information rather than zero cost. Expect a real bill once the key is in place: this server covers a broad slice of the Stripe API, and in the same batch we measured, the heaviest server (Notion) listed its tools at roughly ten times the batch median, all estimated at four characters per token. Stripe's surface is closer to Notion's than to a single-purpose server, so budget high, and measure it yourself with a test-mode key before you leave it enabled in every session.
Setup reality
One credential, no options dance. The server reads STRIPE_SECRET_KEY from the environment or takes --api-key=$KEY on the command line, and the error it printed for us names both paths, which is more courtesy than most servers extend. Run it with npx and the @stripe/mcp package; there is no OAuth flow, no local daemon, no config file to hand-edit. The real setup work happens in the Stripe dashboard, where you create a restricted key and decide which resources the agent may touch. Do that first, in test mode, and treat the key as the whole security model, because it is.
STRIPE_SECRET_KEYQuestions people ask
Why did the Stripe MCP server fail to boot in your test?
We start every server as an unprivileged user with a clean environment and no secrets, on purpose. Stripe's server checks for an API key during argument parsing and throws immediately, exiting with code 1 before the MCP handshake. Supply a key and it starts.
Is it safe to give an MCP server my Stripe secret key?
Not your live unrestricted key. Create a restricted key in the Stripe dashboard scoped to the few resources the agent needs, start in test mode, and rotate it when you are done experimenting. The server holds whatever power the key carries and nothing constrains it further.
Is @stripe/mcp the official Stripe server?
It is published by Stripe under the @stripe/mcp package name and its error output is branded, so it comes from the vendor rather than a community port. We list it as unofficial in our records only because we verify provenance separately from measurement, and this one has not been through that check yet.
Other payments servers we started
| Server | Vendor | Boots | Context tax |
|---|---|---|---|
| PayPal | PayPal | ✗ | ~0 tokens |
How this page is made: the server is spawned as an unprivileged user with a clean environment and no credentials, then asked for its tools, resources and prompts over stdio. Token figures are estimates at four characters per token, not a tokenizer count. One run, one machine. Corrections: contact the desk.