Connector · Business and support
A Stripe teammate in your Slack channel, running on Stripe's MCP server.
Chickpea gives a channel a named AI teammate that holds its own Stripe connection. It calls Stripe's MCP server at mcp.stripe.com with a restricted key you create in the Dashboard, so there is no client to configure and no secret key in play. Ask it in Slack who paid what, whether an invoice is still open, or to refund a charge, and it answers in the thread.
What people ask it.
The teammate is @support, in #billing. Pick a scenario to watch it play.
| Date | Invoice | Amount | Status |
|---|---|---|---|
| Sep 1 | INV-2291 | $2,400 | Paid |
| Jun 1 | INV-2104 | $2,400 | Paid |
| Mar 1 | INV-1955 | $2,400 | Paid |
| Jan 4 | INV-1802 | $2,400 | Paid |
Look up a customer or a payment Read only
@support who is ap@northwind.co in Stripe, and what have they paid us this year
@support what happened to the charge on Harbor Lane yesterday, it shows as failed
Reads never need confirmation, and a long answer comes back as a table in the thread. Stripe's server covers retrieving and listing customers, charges, and payment intents, so the teammate answers from the account itself rather than from a copy.
Check a subscription or an invoice Read only
@support is Northwind still on the annual plan, and when does it renew
@support show Harbor Lane's open invoices and say which one is past due
Listing and retrieving subscriptions, invoices, and invoice line items are all in the method list Stripe publishes for its MCP server. What the teammate can see is what the key you pasted has read permission for, and nothing else.
Refund a charge Asks first
@support refund Harbor Lane's October invoice, they cancelled on the 2nd and we billed on the 3rd
@support refund 40 dollars of the Northwind charge, they were billed for a seat they gave back
A refund is money, so it asks first and waits for a yes. Two gates sit under that. Chickpea refuses any MCP tool whose name is not an unambiguous read verb unless your own message names the action, and Stripe asks a human to approve certain writes, refunds among them, at a link you open in the Dashboard.
Update a customer record Applies at once
@support set the billing email on Northwind to ap@northwind.co
@support put plan_review = 2026-10 in the metadata on Harbor Lane
An email, a description, or a metadata key is a small reversible write, so it applies at once and the reply says what changed. Your message still has to name the change: a thread that mentions it is not enough on its own.
On a schedule Applies at once
@support every weekday at 9am Pacific, post yesterday's failed payments here
@support every Monday at 8am Eastern, list the subscriptions that renew this week
A schedule saves on the spot. It needs an explicit time zone, runs under the Stripe connection of the person who asked, and is paused rather than run if that connection goes away. Ask for something the API lists, such as failed charges or renewals. Stripe puts metrics like MRR behind an analytics tool it marks private preview.
Connect it
Five steps, from Admin or from Slack.
The credential is asked for once, on a page Chickpea serves, and never in Slack. The link the teammate posts is good for one action, for one teammate, for 24 hours.
- In Stripe, open Developers → API keys and choose Create restricted key. Use a restricted key, not a full secret key. Stripe says the same: a restricted key is the recommended type for a key you hand to an AI agent.
- Set its permissions. Each Stripe resource gets None, Read, or Write, and Write includes Read. A key with read on customers, charges, and invoices, and write on refunds, can do that and nothing more.
- In Chickpea Admin, open the teammate, then Connections, find Stripe, and choose Connect. Or ask in Slack,
@support connect Stripe, and follow the link it posts. - Choose who uses it. Team is one shared key that everyone who can use the teammate acts through. Personal means each member pastes their own. Then paste the
rk_live_…key into the write-only Credential field, which is stored once on your deployment and never returned to the browser. - Ask something.
@support what did Northwind pay us last monthis a good first question, because it reads and cannot change anything.
A connection belongs to one teammate. Giving a second teammate Stripe means a second key with its own permissions, so the growth teammate never inherits what the support teammate can reach.
There is no built-in Chickpea skill for Stripe, and none is needed. The tools arrive from Stripe's MCP server: Chickpea connects before it saves anything, records what the server answered with, and exposes only those tools. Stripe documents them as tools for searching the API, reading and writing through it, searching the documentation, and retrieving account information. Stripe lists the tools and the API methods they cover.

Beside Stripe
What the same teammate usually holds too.
Each is its own connection, granted to the teammate alone. All 37 connectors.
Questions people ask
Does Stripe have an MCP server?
Yes, at mcp.stripe.com. Stripe documents it as a server that lets AI agents interact with the Stripe API and search Stripe's knowledge base, with setup pages for Cursor, Claude Code, VS Code, ChatGPT, and the Codex CLI. Chickpea connects to that same server, so a teammate in Slack uses it without any of those clients installed.
Can I use AI agents with Stripe?
Stripe documents the MCP server for exactly that, and recommends a restricted key as the key type to give an agent. A Chickpea teammate is one of those agents, living in a Slack channel instead of an editor, with a stored connection, saved instructions, schedules, and every action visible in the thread where someone asked for it.
Can Claude Code be used with Stripe MCP?
Yes. Stripe documents the command, and either OAuth or a restricted key as a bearer header. That puts the server in one person's terminal, where only that person sees the answers. A teammate puts the same server in a channel, where the whole billing team can ask and everyone reads the reply. Teams often run both.
Should I use a restricted key or a secret key?
A restricted key. A secret key can do anything in the account. A restricted key starts with rk_live_ or rk_test_ and does only what you allow, resource by resource, as None, Read, or Write. Stripe recommends restricted keys over unrestricted secret keys, especially for a key given to an AI agent, and so does the Chickpea connector catalog.
Can it issue a refund?
Yes, if the key allows it. Creating a refund is in the method list Stripe publishes for the server. Because money is consequential, the teammate proposes the refund and waits for a yes in the thread, and Stripe adds its own approval step for writes of that kind, which expires after 24 hours if nobody approves it. Credit notes are different: Stripe lists them for the server but publishes no method to create one, so ask for a refund.
Does it use Stripe's MCP server or the API?
The MCP server. Stripe is a vendor MCP lane: the deployment connects to mcp.stripe.com over streamable HTTP and sends your restricted key as a bearer token. Chickpea writes no Stripe endpoints of its own, and the connection cannot reach any other address.
Can it see card numbers?
No. Stripe's Card object returns the brand, the last four digits, the expiry month and year, the cardholder name, and a fingerprint. A full card number is not one of its fields, so it is not something the server can hand back. Past that, the connector sees what the key's permissions allow and no more: a key with no permission on a resource gets an invalid request error instead of data.
Where does the restricted key live?
On your deployment, in a write-only Credential field outside the teammate record. It never enters the model's context, the tool arguments the model writes, or Slack. The model picks a connection by id and the key goes in at the last step on the way out. Disconnect the account and the stored secret is removed, after any schedule that depended on it is paused.
Does everyone act as the same Stripe account?
That is your choice when you connect. A team account is one restricted key that everyone with access to the teammate acts through, and Stripe records the actions against that key. A personal account belongs to one member inside one teammate, so your key is used only for your requests.
Do I still need Stripe's Slack app?
Keep it if you want notifications. Stripe Workflows for Slack sends automated messages to a channel when events happen in Stripe, with your own message templates and a link into the Dashboard. It sends; it does not answer questions. A Chickpea teammate is the other direction: it hears nothing from Stripe on its own, and it reads and acts when someone asks. Both can be installed.
Try it
Give a channel a Stripe teammate.
One deploy into your own Cloudflare account, connect Slack, paste one token, ask. Apache 2.0, no seats, no metering.
Or run it on Node. The setup guide covers both.
Last checked
Facts on this page were checked against the product and Stripe's own pages on September 17, 2026. This page is also available as markdown at /connectors/stripe.md.
