Read your Stripe revenue from Claude Desktop
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 Desktop's config file starts local processes, so a remote server with a header is reached through the mcp-remote bridge. Node.js 18 or later must be installed.
Setup
You need a secret key (nv_live_…) from Dashboard → API keys.
01Add the bridge to the config file
claude_desktop_config.json (Settings → Developer → Edit Config)
{
"mcpServers": {
"nordva": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://mcp.nordva.dev",
"--header",
"Authorization:${NORDVA_AUTH}"
],
"env": {
"NORDVA_AUTH": "Bearer nv_live_..."
}
}
}
}The header value is passed through an environment variable because some platforms split arguments that contain a space. On macOS the file is in ~/Library/Application Support/Claude/, on Windows in %APPDATA%\Claude\.
02Check the connection
Quit and reopen Claude Desktop. The nordva tools should appear in the tools menu of a new chat. Ask it to run setup_check.
Then ask Claude Desktop
- 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 Desktop 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-onlyCheck whether Stripe is connected and syncing
No arguments.
get_revenue_summary
Read-onlyIndie and BuilderGet MRR, subscriptions, growth and churn from Stripe
| period_days | optional | number, 1–730 | Window in days. Default 30. |
get_revenue_series
Read-onlyIndie and BuilderGet revenue over time from Stripe
| range | optional | "30d" | "90d" | "12m" | "all" | Default "30d". |
list_recent_payments
Read-onlyIndie and BuilderList recent payments and cancellations from Stripe
| type | optional | "payment" | "cancellation" | |
| limit | optional | number, 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.
- The Connectors screen in Claude Desktop and claude.ai expects OAuth. The Nordva Launch server authenticates with an API key header instead, which is why the bridge is needed there.