# Stripe MCP Server — 96 tools via DADL

The Stripe DADL turns Stripe's API into an MCP server that Claude, GPT or any MCP-compatible agent can consume directly. One YAML file declares all 96 tools — payment, invoice, subscription, charge, customer, payout, and more — and ToolMesh serves them at runtime. No Python boilerplate, no per-endpoint code, no separate MCP server process.

Below: the endpoint coverage matrix, a two-block ToolMesh setup, the full tool reference grouped by Stripe feature area.

**Source:** [Stripe REST API](https://docs.stripe.com/api)

**Updated:** 2026-04-02

**Tags:** finance, e-commerce, crud, user-management, notifications, webhooks, logging, authentication, auth:bearer

## Which Stripe endpoints are covered?

**22%** (78 of ~350 endpoints).

**Focus:** customers, payment intents, payment methods, charges, subscriptions, invoices, products, prices, refunds, checkout sessions, setup intents, disputes, coupons, payouts, balance, events, webhook endpoints

**Missing:** Connect (accounts, transfers, application fees), Terminal, Identity, Issuing, Treasury, Tax, Sigma, Reporting, Radar, Climate, Financial Connections, forwarding

*Last reviewed: 2026-04-02*

## How do you configure the Stripe DADL?

1. Log in to the Stripe Dashboard at https://dashboard.stripe.com
2. Navigate to Developers → API keys
3. Copy the Secret key (starts with sk_test_ for test mode or sk_live_ for live mode)
4. NEVER use the Publishable key (pk_) — it cannot access server-side endpoints

**Environment variable:** `CREDENTIAL_STRIPE_SECRET_KEY`

[Authentication docs](https://docs.stripe.com/api)

*Stripe does not use OAuth scopes — the secret key grants full API access. Use restricted keys (Dashboard → API keys → Create restricted key) to limit access to specific resources and operations. Test mode keys (sk_test_) operate on test data only and never affect real charges. Rate limits: 100 read/s and 100 write/s in live mode, 25 read/s and 25 write/s in test mode.
*

## How do you install the Stripe MCP server with ToolMesh?

Add to your `backends.yaml`:

```yaml
- name: stripe
  transport: rest
  dadl: stripe.dadl
  url: "https://api.stripe.com/v1"

```

Set the credential:

```
CREDENTIAL_STRIPE_SECRET_KEY=your-token-here
```

## What 96 tools does the Stripe DADL expose?

- **GET** `list_customers` — List all customers, optionally filtered by email or creation date
- **GET** `get_customer` — Retrieve a single customer by ID
- **POST** `create_customer` — Create a new customer
- **POST** `update_customer` — Update an existing customer
- **DELETE** `delete_customer` — Permanently delete a customer and cancel active subscriptions
- **GET** `search_customers` — Search customers using Stripe Query Language
- **GET** `list_payment_intents` — List all payment intents, optionally filtered by customer or status
- **GET** `get_payment_intent` — Retrieve a payment intent by ID
- **POST** `create_payment_intent` — Create a new payment intent to collect a payment
- **POST** `update_payment_intent` — Update a payment intent (only before confirmation)
- **POST** `confirm_payment_intent` — Confirm a payment intent to proceed with the payment
- **POST** `capture_payment_intent` — Capture a previously authorized payment intent
- **POST** `cancel_payment_intent` — Cancel a payment intent
- **GET** `search_payment_intents` — Search payment intents using Stripe Query Language
- **GET** `list_payment_methods` — List payment methods for a customer
- **GET** `get_payment_method` — Retrieve a payment method by ID
- **POST** `create_payment_method` — Create a payment method
- **POST** `update_payment_method` — Update payment method details
- **POST** `attach_payment_method` — Attach a payment method to a customer
- **POST** `detach_payment_method` — Detach a payment method from its customer
- **GET** `list_charges` — List all charges, optionally filtered by customer or payment intent
- **GET** `get_charge` — Retrieve a charge by ID
- **POST** `create_charge` — Create a charge (legacy — prefer create_payment_intent)
- **POST** `update_charge` — Update a charge (description, metadata, fraud details)
- **POST** `capture_charge` — Capture a previously authorized charge
- **GET** `search_charges` — Search charges using Stripe Query Language
- **GET** `list_subscriptions` — List all subscriptions, optionally filtered by customer or status
- **GET** `get_subscription` — Retrieve a subscription by ID
- **POST** `create_subscription` — Create a subscription for a customer
- **POST** `update_subscription` — Update a subscription (change plan, quantity, trial, etc.)
- **DELETE** `cancel_subscription` — Cancel a subscription immediately or at period end
- **POST** `resume_subscription` — Resume a paused subscription
- **GET** `search_subscriptions` — Search subscriptions using Stripe Query Language
- **GET** `list_invoices` — List all invoices, optionally filtered by customer or status
- **GET** `get_invoice` — Retrieve an invoice by ID
- **POST** `create_invoice` — Create a draft invoice for a customer
- **POST** `update_invoice` — Update a draft or open invoice
- **DELETE** `delete_invoice` — Delete a draft invoice (only draft invoices can be deleted)
- **POST** `finalize_invoice` — Finalize a draft invoice (transitions to open status)
- **POST** `pay_invoice` — Pay an open invoice using the customer's default payment method
- **POST** `send_invoice` — Send a finalized invoice to the customer by email
- **POST** `void_invoice` — Void a finalized invoice (marks as uncollectable, no refund)
- **POST** `mark_invoice_uncollectible` — Mark an invoice as uncollectible
- **GET** `search_invoices` — Search invoices using Stripe Query Language
- **GET** `list_products` — List all products
- **GET** `get_product` — Retrieve a product by ID
- **POST** `create_product` — Create a new product
- **POST** `update_product` — Update a product
- **DELETE** `delete_product` — Delete a product (must have no prices attached)
- **GET** `search_products` — Search products using Stripe Query Language
- **GET** `list_prices` — List all prices, optionally filtered by product or active status
- **GET** `get_price` — Retrieve a price by ID
- **POST** `create_price` — Create a new price for a product
- **POST** `update_price` — Update a price (most fields are immutable — create a new price instead)
- **GET** `search_prices` — Search prices using Stripe Query Language
- **GET** `list_refunds` — List all refunds, optionally filtered by charge or payment intent
- **GET** `get_refund` — Retrieve a refund by ID
- **POST** `create_refund` — Create a refund for a charge or payment intent
- **POST** `update_refund` — Update a refund (metadata only)
- **POST** `cancel_refund` — Cancel a refund that has not yet been processed
- **GET** `list_checkout_sessions` — List all checkout sessions
- **GET** `get_checkout_session` — Retrieve a checkout session by ID
- **POST** `create_checkout_session` — Create a Stripe Checkout session for hosted payment page
- **POST** `expire_checkout_session` — Expire a checkout session (cannot be completed after expiry)
- **GET** `list_checkout_session_line_items` — List line items for a checkout session
- **GET** `list_setup_intents` — List all setup intents
- **GET** `get_setup_intent` — Retrieve a setup intent by ID
- **POST** `create_setup_intent` — Create a setup intent to save payment credentials for future use
- **POST** `update_setup_intent` — Update a setup intent
- **POST** `confirm_setup_intent` — Confirm a setup intent to complete payment method setup
- **POST** `cancel_setup_intent` — Cancel a setup intent
- **GET** `list_disputes` — List all disputes
- **GET** `get_dispute` — Retrieve a dispute by ID
- **POST** `update_dispute` — Update a dispute with evidence
- **POST** `close_dispute` — Close a dispute — accepts the dispute and refunds the customer
- **GET** `list_coupons` — List all coupons
- **GET** `get_coupon` — Retrieve a coupon by ID
- **POST** `create_coupon` — Create a coupon for discounts on subscriptions or invoices
- **POST** `update_coupon` — Update a coupon (name and metadata only)
- **DELETE** `delete_coupon` — Delete a coupon (existing discounts remain active)
- **GET** `list_payouts` — List all payouts
- **GET** `get_payout` — Retrieve a payout by ID
- **POST** `create_payout` — Create a payout to your bank account or debit card
- **POST** `update_payout` — Update a payout (metadata only)
- **POST** `cancel_payout` — Cancel a pending payout
- **POST** `reverse_payout` — Reverse a completed payout (returns funds to Stripe balance)
- **GET** `get_balance` — Retrieve the current account balance (available and pending)
- **GET** `list_balance_transactions` — List balance transactions (all account activity)
- **GET** `get_balance_transaction` — Retrieve a balance transaction by ID
- **GET** `list_events` — List all events (retained for 30 days)
- **GET** `get_event` — Retrieve a specific event by ID
- **GET** `list_webhook_endpoints` — List all webhook endpoint configurations
- **GET** `get_webhook_endpoint` — Retrieve a webhook endpoint by ID
- **POST** `create_webhook_endpoint` — Create a webhook endpoint to receive events
- **POST** `update_webhook_endpoint` — Update a webhook endpoint
- **DELETE** `delete_webhook_endpoint` — Delete a webhook endpoint

## Which DADLs are related to Stripe?

- [Mempool](https://www.dadl.ai/d/mempool/) — mempool.space — Bitcoin block explorer, mempool visualizer, fee estimator, Lightning Network explorer, and transaction accelerator
- [Alertmanager](https://www.dadl.ai/d/alertmanager/) — Prometheus Alertmanager API v2 -- alerts, silences, receivers, alert groups, status, and operational health
- [BookStack](https://www.dadl.ai/d/bookstack/) — BookStack wiki and documentation platform REST API -- shelves, books, chapters, pages (HTML/Markdown content), attachments, image gallery, comments, cross-entity search, exports (HTML/Markdown/PDF/ZIP), ZIP imports, users, roles, content permissions, recycle bin, audit log and tags. Hierarchy: shelves > books > chapters > pages.
- [Hacker News](https://www.dadl.ai/d/hackernews/) — Hacker News API — read-only access to stories, comments, polls, jobs, users, and live feeds from news.ycombinator.com
- [Mikrotik](https://www.dadl.ai/d/mikrotik/) — MikroTik RouterOS REST API -- manage interfaces, IP addresses, routing, firewall, DHCP, DNS, PPP, queues, wireless, system configuration, users, certificates, files, logs, and diagnostics on RouterOS v7.1+ devices
- [PeeringDB](https://www.dadl.ai/d/peeringdb/) — PeeringDB v2 API -- the public peering database of networks (ASNs), Internet Exchanges, and colocation facilities: full CRUD over net, ix, fac, org, carrier, campus, point-of-contact records, and the netixlan/netfac/ixfac/carrierfac/ixlan/ixpfx relationships that map who peers where

---

**Canonical URL:** https://www.dadl.ai/d/stripe/
**Raw DADL:** https://github.com/DunkelCloud/dadl-registry/blob/main/stripe.dadl
