@codespar/mcp-stripe
@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-stripeCursor / 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