The gap nobody’s talking about
AI agents are building apps. They scaffold projects, write code, deploy to production, and configure payment infrastructure. An agent can set up RevenueCat, create entitlements, and ship a subscription app in a single session.
Then you ask it: “What’s my MRR?”
Nothing. The agent that built the app has no way to check whether anyone is paying for it. It can create subscription infrastructure but can’t read it. It can deploy a product but can’t measure it.
This is the gap between building subscription apps and operating them. Agents handle the first half. The second half requires data access that doesn’t exist in their toolchain.
I built revenuecat-charts-mcp to close it.
What it is
revenuecat-charts-mcp is an MCP (Model Context Protocol) server that gives AI agents native access to RevenueCat’s Charts API. It exposes three tools that cover the full spectrum of subscription analytics: discovery, snapshots, and time-series queries.
rc_list_metricsLists all 21 available chart metrics with descriptions. Helps the agent discover what data exists before querying. No API call needed — the metric catalog is built into the server.
rc_get_overviewReturns a real-time snapshot of subscription health: MRR, active subscriptions, active trials, revenue, new customers, active users, and transaction count. One call, no date range needed.
rc_get_chartThe workhorse. Queries any of 21 metrics as a time series with configurable resolution (day/week/month), date ranges, and optional country segmentation. Returns formatted markdown tables optimized for LLM consumption.
30-second install
The server runs over stdio and works with any MCP-compatible client. No API keys in config files — the agent passes its key at call time.
Claude Code
claude mcp add revenuecat-charts -- npx revenuecat-charts-mcpClaude Desktop / Cursor
{
"mcpServers": {
"revenuecat-charts": {
"command": "npx",
"args": ["revenuecat-charts-mcp"]
}
}
}That’s it. The agent now has access to RevenueCat subscription data through natural language. No SDK to learn, no endpoints to memorize, no response parsing to implement.
Real data, not a demo
Most MCP demos use fabricated data. That makes it impossible to evaluate whether the tool handles real-world edge cases — partial months, currency formatting at scale, segmentation across 40+ countries. Everything below was queried live from Dark Noise, a real indie app on the App Store, using the MCP server’s tools.
rc_get_overview → live snapshot
$4,534
MRR
2,517
Active Subs
14,062
Active Users
$4,747
Revenue (28d)
rc_get_chart → MRR monthly trend
metric="mrr" resolution="month" start_date="2025-06-01" end_date="2026-03-01"
| Date | MRR |
|---|---|
| Jun 2025 | $4,609 |
| Jul 2025 | $4,623 |
| Aug 2025 | $4,587 |
| Sep 2025 | $4,461 |
| Oct 2025 | $4,323 |
| Nov 2025 | $4,422 |
| Dec 2025 | $4,411 |
| Jan 2026 | $4,545 |
| Feb 2026 | $4,562 |
| Mar 2026 | $4,538 |
Stable around $4,400–$4,600. October dip recovered into a slight upward trend through Q1 2026.
rc_get_chart → revenue by country
metric="revenue" segment="country" resolution="month"
| Date | US | UK | CA | DE | AU |
|---|---|---|---|---|---|
| Jan 2026 | $5,429 | $247 | $322 | $224 | $193 |
| Feb 2026 | $3,319 | $370 | $215 | $148 | $49 |
US dominant (~70% of revenue), with UK, Canada, Germany, and Australia in the next tier. 40+ countries represented total.
Notice what just happened. An agent asked three questions — “what are my key metrics,” “how is MRR trending,” and “where is my revenue coming from” — and got structured, actionable answers. No dashboard login, no manual exports, no screenshot parsing. Just data through a tool interface the agent already understands.
The country segmentation result is worth pausing on. Dark Noise earns roughly 70% of its revenue from the US, with the UK, Canada, Germany, and Australia forming a second tier. That breakdown across 40+ countries came from a single tool call with one parameter: segment="country". An agent could use this to flag geographic concentration risk, identify expansion opportunities, or correlate regional marketing spend with revenue.
How it’s built
The server is a single TypeScript file (~490 lines) with zero runtime dependencies beyond the MCP SDK and Zod for input validation. This was deliberate — an MCP server should be as lightweight as possible since it runs as a subprocess of the client. Every dependency you add is a dependency your users inherit. The entire package is under 7 KB compressed, installs in seconds, and has no native bindings or platform-specific code.
Architecture
AI Agent
Claude Code · Desktop · Cursor
revenuecat-charts-mcp
RevenueCat Charts API V2
21 metrics · 5 categories · country segmentation
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import { z } from "zod";
const server = new McpServer({
name: "revenuecat-charts",
version: "1.0.0",
});
server.registerTool("rc_get_chart", {
title: "Get Chart Data",
description: "Query any RevenueCat Charts API metric as a time series...",
inputSchema: {
api_key: z.string().startsWith("sk_"),
metric: z.enum(["mrr", "revenue", "churn", "actives", ...]),
start_date: z.string().regex(/^\d{4}-\d{2}-\d{2}$/),
end_date: z.string().regex(/^\d{4}-\d{2}-\d{2}$/),
resolution: z.enum(["day", "week", "month"]).default("month"),
segment: z.string().optional(),
},
annotations: { readOnlyHint: true, destructiveHint: false },
}, handler);Design decisions that matter
Auto-detect project ID
Most RevenueCat accounts have a single project. The server fetches the project list and uses the first one automatically, with a per-key cache so the lookup only happens once per session. This eliminates a friction point — the agent doesn't need to know the project ID upfront.
Markdown tables, not raw JSON
The API returns timestamps as Unix seconds and interleaves multi-measure values by index. The server transforms this into formatted markdown tables with human-readable dates, currency formatting, and percentage precision. LLMs process structured markdown far more reliably than nested JSON.
Rate limit resilience
RevenueCat's API enforces rate limits (429 responses on burst traffic). The server retries with backoff automatically and respects the API's retryable flag. An agent making sequential queries won't hit a wall.
Input validation at the boundary
API keys must start with sk_, dates must match YYYY-MM-DD, metrics are validated against the full enum. Invalid inputs get clear error messages with suggestions, not cryptic API failures.
Tool annotations
Every tool declares readOnlyHint: true and destructiveHint: false. MCP clients can use these annotations to auto-approve calls without user confirmation — critical for autonomous workflows where the agent needs to check metrics without interrupting its operator.
Why MCP, and why now
MCP is doing for AI agents what REST did for web applications. It standardizes how agents discover and invoke tools, turning every API into something an agent can use without custom integration code.
Before MCP, making RevenueCat data accessible to an agent meant writing a custom function, handling authentication, parsing responses, managing errors — per agent framework. With MCP, you build the server once and it works everywhere: Claude Code, Claude Desktop, Cursor, any MCP-compatible client.
The developer experience reflects this. There’s no SDK to import, no authentication flow to implement, no response schema to memorize. The MCP client handles transport; the server handles API specifics. The agent just calls tools.
This is the pattern that scales. Every API that wants to be part of an agent’s toolkit needs an MCP server. Not because MCP is the only way, but because it’s the first protocol that makes tool access a solved problem rather than a per-integration project.
RevenueCat’s Charts API is a natural fit. Subscription metrics are exactly the kind of data agents need for ongoing, autonomous operation — not one-shot queries, but persistent monitoring. “Check my churn rate weekly.” “Alert me if MRR drops below $4,000.” “Generate a monthly revenue report by country.” These are the workflows agents run when they have access to the right data.
For indie developers especially, this changes the economics of monitoring. You don’t need to build a dashboard, configure alerts, or check a web UI daily. Your agent already runs your development workflow — now it can run your business metrics workflow too, in the same session, with the same interface.
What becomes possible
With this MCP server installed, an agent working on a subscription app can:
Check subscription health before making code changes — is the app growing or shrinking?
Correlate code deploys with revenue impact — did the new paywall increase conversion?
Generate weekly growth reports with actual data — MRR trend, churn rate, trial conversion, geo breakdown.
Monitor for anomalies — sudden churn spikes, revenue drops, trial conversion changes.
Answer founder questions in real time — “What’s our MRR?” gets a real answer, not a dashboard link.
None of this is hypothetical. I tested every query against Dark Noise, a real indie app with real subscriber data. The MRR table above isn’t mocked — those are actual revenue figures from an app in the App Store. The churn data, trial conversion rates, and cohort retention curves all come from the same API, accessible through the same three tools.
Get started in 30 seconds
The server is open source, published on GitHub, and requires nothing beyond Node.js and an npx call to run.
claude mcp add revenuecat-charts -- npx revenuecat-charts-mcpAbout the Charts API
RevenueCat’s Charts API V2 exposes 21 chart metrics across five categories: revenue (MRR, ARR, LTV, revenue), actives (subscriptions, churn, refunds, status), trials (active, new, movement), conversion (paying, trial conversion, new/active customers), and cohorts (retention, explorer).
The API supports three resolution levels (day, week, month), segmentation by country, and returns rich metadata including measure descriptions, units, and summary statistics. All of this is accessible through the MCP server’s three tools.
If you’re building a subscription app and your agent workflow includes RevenueCat, this server gives your agent eyes on the business. Install it, point it at your API key, and start asking questions. The entire server is open source under MIT, and contributions are welcome — whether that’s adding new chart types, supporting additional segmentation dimensions, or building integrations with other MCP clients.