Intelligence · MCP server

Stripe MCP and the Yalc Framework

The revenue and customer truth layer. Pull MRR, churn, and customer states into Claude Code summaries without ever opening the Stripe dashboard.

Yalc Fit Score
8/10
Maintainer
Stripe (official)
License
MIT
Auth
API key (test or live)
Last reviewed
2026-04-29
Install

Add Stripe to Claude Code in one command

claude mcp add stripe --env STRIPE_SECRET_KEY=sk_xxx -- npx -y @stripe/mcp --tools=all

Generate a restricted API key in your Stripe dashboard (Developers → API keys → Create restricted key). Grant only the resources Yalc workflows need (typically customers:read, subscriptions:read, charges:read). Use a test key (sk_test_) for piloting before switching to live.

What it does

Stripe, plainly

Stripe ships an official MCP server as part of their Agent Toolkit. The MCP exposes core Stripe resources (customers, subscriptions, charges, products, invoices, refunds) as native Claude tool calls. API key auth means setup is trivial. Restricted keys let you scope exactly what Yalc workflows can access.

For Yalc operators running B2B SaaS, Stripe is the revenue source of truth. The MCP turns "what's my MRR this month", "show me at risk subscriptions", or "summarize last 7 days of new customers" into one-prompt operations. Pair with HubSpot or Notion for richer customer context.

Where it slots in

Position in the GTM operating system

Intake
Enrich
Score
Route
Draft
Send
Listen

The Stripe MCP sits at the **listen** node when Yalc workflows need to know what's happening with revenue. Most reads are read only intelligence: MRR, new customers, churn risk, recent failed payments.

Pair with HubSpot (CRM) or Notion (state) for context-rich summaries. Pair with Slack to push weekly revenue digests. The MCP is read-heavy by design; production agents rarely write to Stripe except for refunds or customer metadata updates.

The Yalc Framework

Deploying the Stripe MCP inside Yalc workflows

Workflow position

The revenue and customer state layer. Yalc reads MRR, subscriptions, churn signals, and customer history. Writes are deliberate (refund a charge, update customer metadata) and gated.

Prompt patterns

Copy paste prompts for Claude Code that invoke the Stripe MCP.

Yalc, give me MRR for this month broken down by plan. Compare to last month. Surface the 3 biggest expansions and the 3 biggest contractions. → Yalc reads subscription data via Stripe MCP, computes via Claude, returns digest.
Yalc, list every customer with a failed payment in the last 7 days. Pull their HubSpot context, surface those at risk of churn, and draft outreach for each. → Yalc joins Stripe MCP failed payments with HubSpot contacts, drafts via Claude.
Yalc, summarize new customers this week. Group by acquisition channel (use the customer metadata "source" field). Post to #revenue Slack channel. → Yalc reads Stripe customer creation events, classifies by metadata, posts via Slack MCP.

Chaining recommendations

UpstreamStripe webhook (subscription event) → Yalc workflow trigger
DownstreamStripe MCP (read) → Claude (analysis) → HubSpot or Notion or Slack

Anti patterns to avoid

Don't use a live key for piloting. Test keys (sk_test_) are isolated and prevent accidental writes to production billing data.
Don't issue refunds via the MCP without human approval. Yalc workflows can draft and queue, but final refund click belongs to a human.
Don't grant unrestricted API keys. Use restricted keys with minimal scopes. Stripe's IAM is granular; use it.

Compatibility

Official Stripe MCP runs in Claude Code, Claude Desktop, Cursor, and any MCP-compatible client. Stripe also publishes a Python and Node toolkit for direct integration outside MCP. The MCP wraps the same toolkit.

Operator take

Pros, cons, who it's for

Pros

  • Official Stripe-maintained server. MIT licensed.
  • API key auth (no OAuth dance).
  • Restricted keys for scoped access. Production-safe by default.
  • Test keys let you pilot in isolation before going live.
  • Pairs cleanly with HubSpot or Notion MCPs for full revenue context.

Cons

  • Read-heavy by design. Mutations (refunds, plan changes) are exposed but should always be human-gated.
  • Pricing is per Stripe API call standards (free for typical Yalc volume).
  • Some advanced reporting (custom metrics, complex segments) is not in the MCP. Use Stripe Sigma for that.
  • Webhooks for real-time events require a separate webhook handler outside the MCP.

Who it's for

  • Founders running B2B SaaS who want revenue snapshots without leaving Claude
  • Operators tracking expansion and churn from natural language prompts
  • Finance functions automating weekly digests across Stripe + CRM
Related

The Stripe ecosystem inside Yalc

Alternatives

MCPs to consider instead

FAQ

Frequently asked

Should I use a test key or live key with the MCP?

Always start with a test key (sk_test_). Once you trust the workflow, switch to a restricted live key with minimal scopes.

How do I generate a restricted Stripe API key?

In your Stripe dashboard, go to Developers, API keys, Create restricted key. Choose only the resources Yalc workflows need (typically customers, subscriptions, charges as read).

Can the MCP issue refunds?

Yes, but Yalc workflows should always require human approval for refunds. The MCP exposes the verb; the discipline is in your prompts.

Does the MCP support Stripe Connect?

Yes. Multi-account scenarios (platforms billing on behalf of connected accounts) are supported via the standard Stripe-Account header. Set it via the MCP's environment.

How does the MCP handle webhooks?

It doesn't. The MCP is for reads and writes. For real-time events (subscription canceled, payment failed), set up a Stripe webhook endpoint that triggers your Yalc workflow.

Can I use the MCP across multiple Stripe accounts?

Yes. Register the MCP server multiple times with different STRIPE_SECRET_KEY values and different server names. Each Yalc workflow can route to the right account by name.

Install the Stripe MCP

Drop it into Claude Code and orchestrate from your next Yalc prompt.

claude mcp add stripe --env STRIPE_SECRET_KEY=sk_xxx -- npx -y @stripe/mcp --tools=all