About Stripe MCP
Stripe MCP is a read-only server for querying Stripe customer, payment, subscription, invoice, and refund data. It is intended for MCP clients that need access to Stripe test accounts, and rejects live secret keys.
Key features
- 01Query customers and payments
- 02Retrieve subscriptions and invoices
- 03List refunds
- 04Reject live secret keys
- 05Single-file implementation with no build step
Use cases
- 01Review recent customer and payment records
- 02Check a customer's subscriptions and invoices
- 03Inspect refunds for a payment
MCP support
Exposes read-only Stripe queries as tools to MCP clients. Configure it with a Stripe test secret key; live keys are refused.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
npx -y @devtechtricks/stripe-mcpSTRIPE_SECRET_KEYSecretStripe test-mode secret or restricted key (sk_test_ or rk_test_)Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.
Tools
8Saved tool list · updated 2w ago
| Parameter | Type | Required | Description |
|---|---|---|---|
| string | No | Filter by exact customer email | |
| limit | number | No | Max results (1-100) |
Details
From the project READMEstripe-mcp
A read-only MCP server for querying Stripe — customers, payments, subscriptions, invoices, and refunds.
Use it with any AI or client that supports MCP (Model Context Protocol)—Cursor, Claude Desktop, Claude Code, Windsurf, or other MCP hosts.
Features
- Read-only by design — no charge, refund, update, or delete tools
- Test keys only — refuses to start with
sk_live_/rk_live_ - Single file — just
index.js, no build step - Works with any MCP client — Cursor, Claude, Windsurf, and others
Cursor plugin
This repo is an Agent Plugin and a Cursor plugin. cursor.directory only detects components committed at the repo root. The files it needs are:
| File | Purpose |
|---|---|
mcp.json | MCP server entry (npx -y @devtechtricks/stripe-mcp) |
plugin.json | Open Plugins manifest |
.cursor-plugin/plugin.json | Cursor listing metadata and the STRIPE_SECRET_KEY variable |
After these files are on the default branch of the public GitHub repo, submit https://github.com/robinafaruqia/stripe-mcp at cursor.directory/plugins/new. On install, set STRIPE_SECRET_KEY to a Stripe test key (sk_test_... or rk_test_...).
MCP Configuration
Cursor — one-click install
After install, replace YOUR_STRIPE_TEST_KEY with a Stripe test secret (sk_test_... or rk_test_...) from the Stripe Dashboard. A restricted key with only read scopes is preferred.
Using npx (recommended)
Add to your MCP client config (e.g. Cursor: ~/.cursor/mcp.json or Settings → MCP; Claude: claude_desktop_config.json; etc.):
{
"mcpServers": {
"stripe-mcp": {
"command": "npx",
"args": ["-y", "@devtechtricks/stripe-mcp"],
"env": {
"STRIPE_SECRET_KEY": "sk_test_..."
}
}
}
}
Claude Code:
claude mcp add stripe-mcp --env STRIPE_SECRET_KEY=sk_test_... -- npx -y @devtechtricks/stripe-mcp
From source (development)
git clone https://github.com/robinafaruqia/stripe-mcp.git
cd stripe-mcp
npm install
cp .env.example .env # then put your sk_test_ / rk_test_ key in .env
Then in your MCP config:
{
"mcpServers": {
"stripe-mcp": {
"command": "node",
"args": ["/path/to/stripe-mcp/index.js"]
}
}
}
index.js loads .env from the package directory when STRIPE_SECRET_KEY is not already set. npm installs do not include .env — MCP clients should pass the key in env.
Available Tools
| Tool | Description |
|---|---|
list_customers | List recent customers. Optional: limit, email. |
get_customer | Get a customer by ID. Required: customer_id. |
list_payments | List recent payment intents. Optional: limit, customer_id. |
get_payment | Get a payment intent by ID. Required: payment_intent_id. |
list_subscriptions | List subscriptions. Optional: limit, customer_id, status. |
get_subscription | Get a subscription by ID. Required: subscription_id. |
list_invoices | List invoices. Optional: limit, customer_id, status. |
list_refunds | List refunds. Optional: limit, payment_intent_id. |
Example
1. list_customers({ limit: 5 })
2. get_customer({ customer_id: "cus_ABC123" })
3. list_subscriptions({ customer_id: "cus_ABC123" })
4. list_payments({ limit: 10 })
License
MIT
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.