mcp-server-stripe is a production-grade Model Context Protocol (MCP) server that exposes Stripe's capabilities to AI agents with built-in financial safety rails, audit logging, and observability.
Built for autonomous agents (Claude, Cursor, LangGraph) that need to manage customers, payments, and subscriptions without the risk of accidental $1M refunds or PII leaks.
uvx mcp-server-stripeAdd this to your claude_desktop_config.json:
{
"mcpServers": {
"stripe": {
"command": "uvx",
"args": ["mcp-server-stripe"],
"env": {
"STRIPE_API_KEY": "sk_test_...",
"STRIPE_MAX_AMOUNT_CENTS": "100000",
"ENABLE_LIVE_MODE": "false"
}
}
}
}This server implements Zero-Trust for Financial Agents. It prevents the "Oops, I deleted production" scenario through:
Destructive operations (refunds, cancellations) require a human (or supervisor) confirmation token.
sequenceDiagram
Agent->>StripeServer: create_refund(pi_123, amount=100)
StripeServer-->>Agent: Error: Confirmation Required (token: conf_abc)
Agent->>User: "I need to refund $1.00. Confirm?"
User->>Agent: "Approved."
Agent->>StripeServer: create_refund(confirmation_token=conf_abc)
StripeServer-->>Agent: Success: Refund Issued
Hard caps on transaction sizes are enforced at the server level via STRIPE_MAX_AMOUNT_CENTS.
Every write operation generates an idempotency key derived from hash(tool + args + minute_bucket), preventing accidental duplicate charges during LLM retries.
| Category | Tool | Side Effect | Safety Level |
|---|---|---|---|
| Customers | create_customer, get_customer, search_customers, update_customer |
Write/Read | Default |
| Payments | create_payment_intent, confirm_payment_intent, capture_payment_intent, list_payments |
Write/Read | Amount Guardrail |
| Refunds | create_refund, get_refund |
Destructive | Two-Step Token |
| Subscriptions | create_subscription, cancel_subscription, update_subscription, list_subscriptions |
Destructive | Two-Step Token |
| Invoices | create_invoice, finalize_invoice, send_invoice |
Write | Default |
| Catalog | create_product_with_price, list_products |
Write/Read | Default |
| Reporting | get_balance, get_payout_schedule |
Read | Read-Only |
- JSONL Audit Logs: Every call is logged to
audit.logwith PII redacted. - OpenTelemetry: Native tracing for every Stripe request.
- PII Redaction: Card numbers, emails, and names are hashed before logging.
Built by Senior Staff Engineers. For support, open an issue.