Skip to main content
20% off 3 months · code LAUNCH20 · until 31 October

Read your Stripe revenue from Claude Code

Once your Stripe account is connected in the dashboard, read-only, the agent in your editor can answer money questions without you opening Stripe: what MRR is, who started paying this week, who cancelled, and how collected revenue is trending.

Claude Code connects to remote MCP servers over HTTP directly. One command registers the server under the name nordva.

Setup

You need a secret key (nv_live_…) from Dashboard → API keys.

01Register the server

claude mcp add --transport http nordva https://mcp.nordva.dev \
  --header "Authorization: Bearer nv_live_..."

Run it in your project's folder. The name comes before the URL. By default the server is added for that folder only and stored outside the repository; add --scope user to make it available in every project. Claude Code loads servers when it starts, so quit and start it again in that folder; /mcp lists the Nordva tools.

02Or share it with the team without sharing the key

.mcp.json

{
  "mcpServers": {
    "nordva": {
      "type": "http",
      "url": "https://mcp.nordva.dev",
      "headers": {
        "Authorization": "Bearer ${NORDVA_API_KEY}"
      }
    }
  }
}

Claude Code expands ${NORDVA_API_KEY} from the environment, so the file can be committed while each developer keeps their own key in their shell profile.

03Check the connection

Run claude mcp list, or type /mcp inside a session. nordva should show as connected. Then ask Claude to run setup_check: it reports the project, the plan and which features are unlocked.

Then ask Claude Code

  • What's my MRR, and did it go up this month?
  • Who paid in the last week, and did anyone cancel?
  • Show revenue for the last 90 days. Which week was best?
  • Is my Stripe connection healthy? When did it last sync?

For “How did revenue do over the last 30 days?” Claude Code calls get_revenue_summary with:

{
  "period_days": 30
}

Returned: Per currency: MRR, active and trialing subscriptions, paying customers, new and churned subscriptions with their MRR, net MRR change, collected revenue and payment count, plus the sync status and the time of the last sync.

Revenue tools and arguments

get_stripe_connection_status

Read-only

Check whether Stripe is connected and syncing

No arguments.

get_lemonsqueezy_connection_status

Read-only

Check whether Lemon Squeezy is connected and syncing

No arguments.

get_revenue_summary

Read-only

Get MRR, subscriptions, growth and churn from Stripe or Lemon Squeezy

period_daysoptionalnumber, 1–730Window in days. Default 30.

get_revenue_series

Read-only

Get revenue over time from Stripe or Lemon Squeezy

rangeoptional"30d" | "90d" | "12m" | "all"Default "30d".

get_revenue_by_source

Read-only

Paying customers and revenue by source or country

group_byoptional"referrer" | "utm_source" | "utm_campaign" | "country"Default "referrer".
period_daysoptionalnumber, 1–730Default 30.

get_revenue_economics

Read-only

What a customer is worth: ARPA, churn, 12-month LTV

No arguments.

list_recent_payments

Read-only

List recent payments and cancellations from Stripe and Lemon Squeezy

typeoptional"payment" | "cancellation"
limitoptionalnumber, 1–100

Behaviour worth knowing

  • There is no tool that connects Stripe, and no tool accepts a key. The status tool tells the agent to send you to the dashboard and never to ask for a key in the conversation.
  • Launch only reads your Stripe account. The key is a restricted key with read permissions, encrypted at rest, and never appears in a tool result.
  • Amounts are in the smallest currency unit, per currency, and are never converted or summed across currencies. The tool descriptions tell the agent the same.
  • MRR is operational: yearly divided by twelve, running coupons applied, metered and tiered prices counted as zero, refunds not subtracted.
  • Every result carries the sync status. If the first import is still running, or the key was revoked, the agent is told the numbers are incomplete or stale.
  • History reaches 90 days on Indie and 24 months on Builder. A longer range is shortened and the result says so.
  • Tools appear to the model as mcp__nordva__<tool>, which is the form to use in permission allowlists.
  • Read-only tools are marked as such by the server; Claude Code still asks before the first call to each tool unless you allow it.