Connect Stripe to Claude Desktop with QuickMCP in 5 Minutes

Complete tutorial to connect Stripe API to Claude Desktop using QuickMCP. Query customers, payments, subscriptions, and more through natural language.

Stripe is one of the most popular payment APIs, but it doesn't have a native MCP server. Let's fix that with QuickMCP in under 5 minutes.

What You'll Build

By the end of this tutorial, you'll ask Claude:

  • "Show me my recent payments"
  • "List all active subscriptions"
  • "Find customer details for email@example.com"
  • "What's my account balance?"

And Claude will call Stripe's API to get real answers.

Prerequisites

  • QuickMCP CLI installed: dotnet tool install -g QuickMCP.CLI
  • Stripe account with API key
  • Claude Desktop installed

Step 1: Get Your Stripe API Key

  1. Go to: https://dashboard.stripe.com/apikeys
  2. Click "Create restricted key"
  3. Name it: "QuickMCP MCP Server"
  4. Grant Read permissions for:
    • Customers
    • Charges
    • PaymentIntents
    • Subscriptions
    • Invoices
    • Balance
  5. Click "Create key"
  6. Copy the key (starts with rk_live_...)

Or Use Secret Key (Full Access)

For testing, you can use your secret key (sk_test_...), but restricted keys are safer for production.

Step 2: Generate QuickMCP Configuration

Stripe provides an official OpenAPI specification:

quickmcp build config \
  --spec-url https://raw.githubusercontent.com/stripe/openapi/master/openapi/spec3.json \
  --auth bearertoken \
  --exclude-paths "*/delete,*/remove,/v1/payment_methods/*/attach" \
  --ai-metadata \
  --output-path ~/quickmcp/stripe-config.json

Why These Flags?

  • --spec-url: Stripe's official OpenAPI spec
  • --auth bearertoken: Stripe uses Bearer token auth
  • --exclude-paths: Block dangerous operations (deletions)
  • --ai-metadata: Make tools easier for Claude to understand
  • --output-path: Where to save the config

Step 3: Configure Authentication

Edit ~/quickmcp/stripe-config.json:

{
  "serverId": "stripe",
  "specificationUrl": "https://raw.githubusercontent.com/stripe/openapi/master/openapi/spec3.json",
  "authentication": {
    "type": "Bearer",
    "token": "${STRIPE_API_KEY}"
  },
  "pathFilters": {
    "excludePatterns": [
      "*/delete",
      "*/remove",
      "/v1/payment_methods/*/attach"
    ]
  }
}

Step 4: Add to Claude Desktop

Find Claude Desktop Config

macOS:

~/Library/Application Support/Claude/claude_desktop_config.json

Windows:

%APPDATA%\Claude\claude_desktop_config.json

Add Stripe Server

{
  "mcpServers": {
    "stripe": {
      "command": "quickmcp",
      "args": [
        "serve",
        "--config-path",
        "/Users/yourname/quickmcp/stripe-config.json"
      ],
      "env": {
        "STRIPE_API_KEY": "rk_live_your_restricted_key_here"
      }
    }
  }
}

Important: Use the full absolute path, not ~ or relative paths.

Step 5: Restart Claude Desktop

Close and reopen Claude Desktop. The Stripe tools should now be available.

Testing Your Integration

Query 1: Recent Charges

Ask Claude:

"Show me my 5 most recent Stripe charges"

Claude will call /v1/charges?limit=5 and format the results.

Query 2: Customer Lookup

"Find Stripe customer with email john@example.com"

Claude searches customers by email and returns details.

Query 3: Subscription Status

"List all active Stripe subscriptions"

Claude filters subscriptions by status.

Query 4: Account Balance

"What's my Stripe account balance?"

Claude calls /v1/balance and shows available and pending funds.

Advanced Configuration

Test vs Live Mode

Use different configs for test and live:

Test Mode:

{
  "mcpServers": {
    "stripe-test": {
      "command": "quickmcp",
      "args": ["serve", "--config-path", "/path/to/stripe-test-config.json"],
      "env": {
        "STRIPE_API_KEY": "sk_test_your_test_key"
      }
    }
  }
}

Live Mode:

{
  "mcpServers": {
    "stripe-live": {
      "command": "quickmcp",
      "args": ["serve", "--config-path", "/path/to/stripe-live-config.json"],
      "env": {
        "STRIPE_API_KEY": "rk_live_your_live_key"
      }
    }
  }
}

Comment out the one you're not using.

Read-Only Configuration

For maximum safety, exclude all write operations:

quickmcp build config \
  --spec-url https://raw.githubusercontent.com/stripe/openapi/master/openapi/spec3.json \
  --auth bearertoken \
  --only-for-paths "/v1/charges/list,/v1/customers/list,/v1/subscriptions/list,/v1/balance" \
  --output-path ~/quickmcp/stripe-readonly-config.json

This only exposes list and retrieve operations.

Webhook Integration (Future)

QuickMCP currently doesn't support webhooks, but you can:

  1. Set up Stripe webhooks separately
  2. Store data in a database
  3. Query that database through another MCP server

Common Issues

Issue: "Authentication failed"

Solution: Verify your API key:

curl https://api.stripe.com/v1/charges -u rk_live_your_key:

If this fails, your key is invalid.

Issue: "Too many tools"

Solution: Stripe's API is large. Filter more aggressively:

--only-for-paths "/v1/charges/*,/v1/customers/*,/v1/subscriptions/*"

Issue: "Server not appearing"

Solution: Check the path:

# Test the config manually
quickmcp serve --config-path /full/path/to/stripe-config.json --logging

If this works, the issue is in your Claude Desktop config.

Security Best Practices

1. Use Restricted Keys

Never use your full secret key for MCP servers. Create restricted keys with read-only access.

2. Test Mode First

Always test with test API keys before using live keys:

sk_test_... (test mode)
rk_live_... (live mode, restricted)

3. Exclude Dangerous Paths

--exclude-paths "*/delete,*/remove,/v1/payment_methods/*/attach,/v1/payment_methods/*/detach"

4. Monitor Usage

Check Stripe logs regularly:
https://dashboard.stripe.com/logs

5. Rotate Keys

Set a reminder to rotate API keys every 90 days.

Real-World Use Cases

Use Case 1: Customer Support

Claude can help answer customer questions:

"Find the customer with email support@example.com and show their last 3 invoices"

Use Case 2: Revenue Analysis

"Show me all successful charges from the past week"

Claude retrieves and summarizes payment data.

Use Case 3: Subscription Management

"List all customers with subscriptions ending this month"

Claude filters subscriptions by end date.

What's Exposed

With the default config, Claude can access:

Read Operations:

  • Charges (list, retrieve)
  • Customers (list, retrieve, search)
  • Subscriptions (list, retrieve)
  • Invoices (list, retrieve)
  • Balance (retrieve)
  • Payment Methods (list, retrieve)

Blocked Operations:

  • Deletions
  • Refunds (unless you explicitly allow)
  • Customer creation/updates
  • Subscription modifications

Next Steps

Stripe + QuickMCP + Claude Desktop = powerful payment insights through natural language. Get started today!