Stripe MCP README

The full upstream README, mirrored for reference. Install config, tool schemas, adoption signals and our own overview live on the Stripe MCP listing page.

npm version npm downloads license GitHub stars

stripe-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:

FilePurpose
mcp.jsonMCP server entry (npx -y @devtechtricks/stripe-mcp)
plugin.jsonOpen Plugins manifest
.cursor-plugin/plugin.jsonCursor 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

Add MCP server to Cursor

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.):

config.json
{
  "mcpServers": {
    "stripe-mcp": {
      "command": "npx",
      "args": ["-y", "@devtechtricks/stripe-mcp"],
      "env": {
        "STRIPE_SECRET_KEY": "sk_test_..."
      }
    }
  }
}

Claude Code:

Terminal
claude mcp add stripe-mcp --env STRIPE_SECRET_KEY=sk_test_... -- npx -y @devtechtricks/stripe-mcp

From source (development)

bash
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:

config.json
{
  "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

ToolDescription
list_customersList recent customers. Optional: limit, email.
get_customerGet a customer by ID. Required: customer_id.
list_paymentsList recent payment intents. Optional: limit, customer_id.
get_paymentGet a payment intent by ID. Required: payment_intent_id.
list_subscriptionsList subscriptions. Optional: limit, customer_id, status.
get_subscriptionGet a subscription by ID. Required: subscription_id.
list_invoicesList invoices. Optional: limit, customer_id, status.
list_refundsList refunds. Optional: limit, payment_intent_id.

Example

Code
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