Stripe MCP

Official registry Finance and payments

Read-only MCP server for querying Stripe customers, payments, and invoices.

What can you do with Stripe MCP?

  • 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

Install

Add this to your client's MCP configuration (Claude Desktop: claude_desktop_config.json; Cursor: .cursor/mcp.json; VS Code and others use the same "mcpServers" shape).

NPM package @devtechtricks/stripe-mcp
Claude Code
claude mcp add stripe-mcp -e 'STRIPE_SECRET_KEY=<your stripe_secret_key>' -- npx -y @devtechtricks/stripe-mcp@0.1.2
JSON configuration (Claude Desktop, Cursor, VS Code)
{
    "mcpServers": {
        "stripe-mcp": {
            "command": "npx",
            "args": [
                "-y",
                "@devtechtricks/stripe-mcp@0.1.2"
            ],
            "env": {
                "STRIPE_SECRET_KEY": "<your stripe_secret_key>"
            }
        }
    }
}

Environment variables

  • STRIPE_SECRET_KEY required secret Stripe test-mode secret or restricted key (sk_test_ or rk_test_)

Documentation

From the project's README on GitHub, refreshed weekly. Links open on GitHub.

Contents
  1. stripe-mcp
  2. Features
  3. Cursor plugin
  4. MCP Configuration
  5. Available Tools
  6. Example
  7. License

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

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.

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

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

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

Frequently asked questions

What is Stripe MCP?

Read-only MCP server for querying Stripe customers, payments, and invoices.

How do I install Stripe MCP?

It runs on your machine. In Claude Code: claude mcp add stripe-mcp -e 'STRIPE_SECRET_KEY=<your stripe_secret_key>' -- npx -y @devtechtricks/stripe-mcp@0.1.2. For other clients, paste the JSON configuration from this page into their MCP settings.

Does Stripe MCP need an API key?

Yes. It expects STRIPE_SECRET_KEY, which you set in its configuration.

Is Stripe MCP open source?

Yes. Its code is on GitHub under the MIT license.

Who maintains Stripe MCP?

It is published by robinafaruqia. AI.tn lists it but does not maintain or endorse it.

From the official MCP Registry. Listing is not an endorsement: review a server's code and permissions before giving it access to your data.