About mcp-stripe
@codespar/mcp-stripe is an MCP server for Stripe's standard payments API, aimed at SaaS teams that already accept payments through Stripe and want agents to work within that stack. It wraps the regular API rather than Stripe's Agentic Commerce Protocol.
Key features
- 0130 tools covering Stripe payment operations
- 02PaymentIntents, refunds and payment links
- 03Customers, products, prices and subscriptions
- 04Invoice creation, sending and payment collection
- 05Optional API version pinning via environment variable
Use cases
- 01Handling subscription changes and refunds through an agent
- 02Creating invoices and following up on open payments
- 03Reviewing disputes and submitting evidence
MCP support
This project is an MCP server that exposes Stripe's standard payment, refund, customer, subscription and invoice tools to MCP clients.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
npx -y @codespar/mcp-stripeSTRIPE_SECRET_KEYSecretStripe secret key (sk_test_... for test mode, sk_live_... for live mode). The key prefix selects the environment — no separate base URL.STRIPE_API_VERSIONOptional Stripe API version to pin via the Stripe-Version header (e.g. '2024-06-20'). When omitted, Stripe uses the account's default version.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
30Saved tool list · updated 2w ago
| Parameter | Type | Required | Description |
|---|---|---|---|
| amount | number | Yes | Amount in the smallest currency unit (e.g. cents for USD, centavos for BRL) |
| confirm | boolean | No | If true, confirm the PaymentIntent immediately |
| currency | string | Yes | ISO-4217 currency code (usd, brl, mxn, eur, ...) |
| customer | string | No | Stripe customer id (cus_...) to attach this intent to |
| metadata | object | No | Arbitrary key-value metadata |
| description | string | No | Human-readable description |
| receipt_email | string | No | Email address to send a receipt to |
| capture_method | enum | No | manual = authorize only; capture laterautomatic | automatic_async | manual |
| payment_method | string | No | PaymentMethod id (pm_...) to charge |
| payment_method_types | array | No | Allowed method types, e.g. ['card','pix','boleto'] |
| statement_descriptor | string | No | Up to 22 chars appearing on the customer's statement |
| automatic_payment_methods | object | No | e.g. { enabled: true } to let Stripe pick methods from the Dashboard |
Details
From the project README@codespar/mcp-stripe
MCP server for Stripe — global standard-bearer payments API
Stripe vs. Stripe ACP
Two Stripe MCP servers live in the CodeSpar catalog — different products:
| Package | Wraps | When to use |
|---|---|---|
@codespar/mcp-stripe (this package) | Stripe's regular payments API (PaymentIntents, Checkout, Billing) | You are already using Stripe to accept payments today — the 99% case for LatAm SaaS that ship with Stripe. |
@codespar/mcp-stripe-acp | Stripe's Agentic Commerce Protocol | You are building on Stripe's new agent-native checkout spec. Much narrower product, bleeding edge. |
If you are a typical SaaS with Stripe as your PSP, this is the package.
Why Stripe in the CodeSpar catalog?
Stripe is the global standard-bearer for developer-first payments. Nearly every LatAm SaaS that bills international cards ships with Stripe — Truora, Platzi, Rappi Pay (for some flows), countless Y Combinator LatAm companies. Adding Stripe lets agents operate the payments stack those SaaS already run, without forcing a migration to a local-first gateway.
Quick Start
Claude Desktop
Add to ~/.config/claude/claude_desktop_config.json:
{
"mcpServers": {
"stripe": {
"command": "npx",
"args": ["-y", "@codespar/mcp-stripe"],
"env": {
"STRIPE_SECRET_KEY": "sk_test_..."
}
}
}
}
Claude Code
claude mcp add stripe -- npx @codespar/mcp-stripe
Cursor / VS Code
Add to .cursor/mcp.json or .vscode/mcp.json:
{
"servers": {
"stripe": {
"command": "npx",
"args": ["-y", "@codespar/mcp-stripe"],
"env": {
"STRIPE_SECRET_KEY": "sk_test_..."
}
}
}
}
Tools (30)
| Tool | Purpose |
|---|---|
create_payment_intent | Create a PaymentIntent — Stripe's modern primitive for charging a customer. |
confirm_payment_intent | Confirm a PaymentIntent created with confirm=false. |
retrieve_payment_intent | Retrieve a PaymentIntent by id. |
cancel_payment_intent | Cancel a PaymentIntent. |
list_payment_intents | List PaymentIntents. |
create_refund | Refund a charge or a PaymentIntent. |
list_refunds | List Refunds. |
create_customer | Create a Stripe Customer. |
retrieve_customer | Retrieve a Customer by id. |
update_customer | Update a Customer. |
create_product | Create a Product — the catalog entity Prices reference. |
list_products | List Products. |
create_price | Create a Price attached to a Product. |
list_prices | List Prices. |
create_subscription | Create a Subscription for an existing customer. |
update_subscription | Update a Subscription. |
cancel_subscription | Cancel a Subscription. |
list_subscriptions | List Subscriptions. |
create_checkout_session | Create a hosted Checkout Session. |
create_payment_link | Create a long-lived Payment Link (shareable URL) that charges a price or set of line items. |
list_payment_links | List Payment Links. |
create_invoice | Create an Invoice draft for a customer. |
list_invoices | List Invoices. |
finalize_invoice | Finalize a draft Invoice. |
send_invoice | Send a finalized Invoice to the customer by email. |
pay_invoice | Attempt to collect payment on an open Invoice. |
void_invoice | Void a finalized Invoice. |
update_dispute | Submit evidence on a Dispute. |
list_disputes | List Disputes. |
retrieve_balance | Retrieve the current Stripe account balance — available, pending, and connect_reserved funds broken down by... |
Authentication
Stripe uses a single secret key. The key prefix selects the environment:
sk_test_...→ test mode (no real money moves)sk_live_...→ live mode
There is no separate base URL — the key itself routes requests. Set STRIPE_SECRET_KEY and you are done.
Request bodies are application/x-www-form-urlencoded with bracket notation (customer[name]=Foo, metadata[order]=123, expand[]=latest_invoice). This server handles nested objects and arrays for you.
Pinning an API version
Stripe auto-upgrades breaking changes on a calendar cadence. If you want to lock the version your agent sees, set STRIPE_API_VERSION (e.g. 2024-06-20). The server passes it as the Stripe-Version header on every call.
Environment Variables
| Variable | Required | Description |
|---|---|---|
STRIPE_SECRET_KEY | Yes | sk_test_... or sk_live_... from Stripe Dashboard > Developers > API keys |
STRIPE_API_VERSION | No | Pin API version via the Stripe-Version header (e.g. 2024-06-20) |
Sandbox / Testing
Every Stripe account has test mode built in — no separate signup. Use a sk_test_... key and any of Stripe's test cards (e.g. 4242 4242 4242 4242).
Get your credentials
- Sign up at stripe.com
- Go to Dashboard > Developers > API keys
- Copy your Secret key (test mode by default)
- Set
STRIPE_SECRET_KEY
Roadmap
v0.2 (planned)
update_payment_intent,capture_payment_intent(separate capture)retrieve_refund,list_refundslist_customers,search_customersupdate_subscription,retrieve_subscriptionretrieve_invoice,finalize_invoice,pay_invoice,send_invoice,void_invoicecreate_invoice_item,list_invoice_itemscreate_price,create_productlist_charges,retrieve_chargeretrieve_dispute,close_dispute,list_disputes
v0.3 (planned)
- Stripe Connect: accounts, account links, transfers, payouts
create_setup_intent,confirm_setup_intent(saving cards for later)- PaymentMethod attach / detach / list
- Webhook event construction helper
Want a tool sooner? Open an issue or PR.
Links
Enterprise
Need governance, spend caps, and audit trails for agent-initiated charges, refunds, and subscription changes? CodeSpar Enterprise adds policy engine, payment routing, and compliance templates on top of these MCP servers.
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.