RevenueCat Take-Home · Stage 2

Your agent can’t check
its own MRR.

I built the infrastructure that fixes that. An MCP server that gives AI agents native access to RevenueCat Charts API data—3 tools, 30-second install, real data.

Joey Flores · Agent: Rev · Submitted 2026-03-13

01 — The Tool

revenuecat-charts-mcp

An MCP server that gives AI agents native access to RevenueCat subscription analytics. Three tools covering 21 chart metrics, time-series queries, and geographic segmentation.

3

Tools

21

Metrics

30s

Install

0

Dependencies

beyond MCP SDK

terminal

$ claude mcp add revenuecat-charts -- npx revenuecat-charts-mcp

# or in Claude Desktop

{

"revenuecat-charts": {

"command": "npx revenuecat-charts-mcp"

}

}

rc_list_metrics

Discover all 21 chart metrics with descriptions. Optional category filter. No API call needed.

rc_get_overview

Real-time snapshot: MRR, active subscriptions, trials, revenue, users, transactions. Auto-detects project ID.

rc_get_chart

Time-series queries for any metric. Day/week/month resolution, date ranges, country segmentation.

Live data · Dark Noise App

$4,534

MRR

2,517

Active Subs

14,062

Active Users

58

Active Trials

Queried live via rc_get_overview on 2026-03-12

02 — Content Package

Launch content

A technical blog post, video tutorial, and five social posts designed to reach AI agent developers and indie founders building subscription apps.

Blog Post · 1,500+ words

Making RevenueCat Agent-Native with MCP

Architecture, real data walkthrough, and why every API needs an MCP server.

Video Demo

Demo: Agent Queries MRR

Watch an AI agent query live Dark Noise subscription data through the MCP server.

or experience it live →

5 Social Posts · X/Twitter

1

@joeyaflores

The problem

your AI agent can build an app, deploy it, and process payments through RevenueCat but ask it "what's my MRR?" and it has no idea I just built the bridge.
2

@joeyaflores

Technical feature

revenuecat-charts-mcp: an MCP server for RevenueCat's Charts API 3 tools. 30-second install. your agent gets: → real-time subscription overview → any of 21 chart metrics as time series → country-level segmentation works with Claude Code, Claude Desktop, Cursor
3

@joeyaflores

Data insight

tested it against a real indie app (Dark Noise) the agent pulled MRR trends, spotted a January revenue spike, broke down revenue by country — all through natural language this is what agent-native infrastructure looks like
4

@joeyaflores

Big picture

MCP is doing for AI agents what REST did for web apps every API that wants to be agent-accessible needs an MCP server RevenueCat Charts API → revenuecat-charts-mcp who's building the next one?
5

@joeyaflores

Disclosure + CTA

disclosure: this was built with AI assistance as part of a RevenueCat application yes, an agent built a tool so other agents can check their subscription metrics the repo is live, the install is 30 seconds, and it works today github.com/joeyaflores/revenuecat-charts-mcp

03 — Growth Campaign

$100 to reach the right 500 people

The goal isn’t maximum impressions. It’s reaching developers who will actually use this—MCP builders, indie founders with subscription apps, and the RevenueCat community.

Target Audience Segments

MCP developers Claude Code and Cursor users building with MCP. Highest intent — they'll install this today.
Indie developers Founders using RevenueCat for subscription monetization. They check their metrics daily.
AI tool builders Developers building agent-native infrastructure. They care about the pattern, not just this tool.

Channel Strategy

Hacker News — Show HN

joeyaflores (HN)

$02-5K views

Highest-signal developer audience. Show HN posts about agent tooling consistently hit front page. The MCP angle is novel enough to generate genuine discussion. Post title: 'Show HN: MCP server that gives AI agents access to RevenueCat subscription data.'

Format: Link post to blog. Engage in comments for 6+ hours on launch day.

r/ClaudeAI

u/joeyaflores

$30 promoted5-15K impressions

Direct MCP user audience with the highest conversion potential. Users here already know what MCP servers are and actively look for new ones. Educational angle: show how the server was built, not just what it does.

Format: Text post with embedded code snippets showing the 30-second install flow. $30 promoted for 48-hour visibility boost.

X/Twitter

@joeyaflores

$50 promoted10-25K impressions

Largest AI developer audience and strongest targeting capabilities. Promote the first tweet of the 5-tweet thread to seed organic engagement. Target followers of @RevenueCat, @AnthropicAI, @ClaudeAI, and MCP-related keywords.

Format: 5-tweet thread (the content package tweets above). $50 promoted on tweet #1 for 48 hours.

r/SideProject

u/joeyaflores

$01-3K views

Indie developers building subscription apps are the direct end users. This community values practical tools over hype. Frame as 'I built this for my own agent workflow' rather than a product launch.

Format: Link post to blog with brief personal context.

Dev.to

joeyaflores

$0500-2K views

Long-tail SEO play. Dev.to posts rank well for technical queries. Someone searching 'RevenueCat MCP server' in 6 months should find this. Cross-post of the blog with Dev.to-specific formatting.

Format: Technical article. Tags: #mcp #ai #typescript #monetization

Budget Allocation

$50X/Twitter promoted
Highest targeting precision, largest AI dev audience
$30r/ClaudeAI promoted
Direct MCP user audience, highest install intent
$20Reserve
Reallocate to best-performing channel at 24-hour mark
$100Total

Launch Timeline

Day 1, 10am ET

Publish blog + push repo public. Submit Show HN + r/ClaudeAI + X thread simultaneously.

Day 1, 2pm ET

Post to r/SideProject. Engage with all HN and Reddit comments.

Day 1, 10pm ET

Cross-post to Dev.to. Review first 12 hours of metrics.

Day 2

Assess performance. Reallocate $20 reserve to best-converting channel. Continue comment engagement.

Days 3-7

Monitor long-tail engagement. Answer technical questions. Track GitHub stars and repo clones for campaign report.

Measurement Framework

Attribution

UTM parameters on all links: ?utm_source={channel}&utm_medium={type}&utm_campaign=rc-mcp-launch

Primary metrics

GitHub stars, repo clones, unique blog visitors, npm install count

Secondary metrics

Tweet impressions, Reddit upvotes, HN points, comment volume, Show HN rank

Tools

GitHub Insights, Vercel Analytics, Twitter Analytics, Reddit post analytics

Disclosure: All posts include clear disclosure that this content was created with AI assistance as part of a RevenueCat application. Transparency is non-negotiable—every community post identifies the agent involvement upfront.

04 — Process Log

How it was built

The agent analyzed the assignment, chose a strategy, built the tool, created the content, designed the campaign, built its own animated demo, and recorded its own video. Every decision documented as it happened.

2026-03-12 13:15 CT

Assignment received — strategic analysis

Analyzed the three-pillar structure (build + content + growth) as a direct simulation of the role’s weekly responsibilities. Decision: build an MCP server, not a dashboard.

Reasoning: every other applicant builds a dashboard. An MCP server literally IS the job—making RevenueCat work for agents. This is the week-one deliverable of the actual role, built as a take-home.

2026-03-12 15:00

Charts API fully mapped

Explored all endpoints via live API calls (docs page was JS-rendered, not fetchable). Discovered 3 endpoints, 21 chart metrics across 5 categories, segmentation by country, rate limit behavior.

Key insight: the API error messages returned the full enum of valid metric names. Documented everything in CHARTS_API_REFERENCE.md to avoid re-querying.

2026-03-12 17:30

MCP server built and tested

3 tools, all tested against live Dark Noise data. Bug found: API returns segment field as “segment” not “segment_index”—fixed. Second bug: summary object contains nested objects for segmented queries causing [object Object]—fixed with guard clause.

2026-03-12 18:00

Code quality pass

Applied Anthropic mcp-builder best practices: tool annotations, enhanced descriptions, input validation. Then ran a three-agent parallel code review (reuse, quality, efficiency).

Key fixes: extracted resolveProjectId with per-key cache (eliminated N+1 API calls), extracted formatValue helper (removed 3x duplication), fixed retry logic to respect API retryable field, switched Content-Type to Accept header on GET requests.

2026-03-12 18:30

Pushed to GitHub, started content

Repository live at github.com/joeyaflores/revenuecat-charts-mcp. Three clean commits. Shifted to content and campaign phase.

Strategic decision: wrote the growth campaign report before the blog post. The campaign thinking sharpens the narrative—knowing who you’re writing for makes the writing better.

2026-03-12 20:00

Content package complete

Growth campaign designed (5 channels, $100 budget, measurement framework). 5 X/Twitter posts written. Blog post (~1,845 words) published at /blog/revenuecat-charts-mcp with real Dark Noise data, architecture diagram, and copy-to-clipboard install commands.

2026-03-12 21:30

Animated demo page — the agent builds its own video

Decision: instead of a screen recording, build the video as a scripted React animation at /demo. 6 scenes with typewriter effects, staggered data reveals, and the site’s own design system. User-controlled navigation with keyboard and click support.

Then ran a second 3-agent parallel code review: fixed 3 timer memory leaks, extracted shared QueryScene component (removed ~80 duplicate lines), hoisted static styles per Vercel best practices. 826 → 640 lines, zero behavior change.

2026-03-12 23:00

Autonomous video recording via Playwright

The agent records its own demo. Added ?autoplay mode to the demo page so scenes auto-advance on timers. Then Playwright opens the page in headless Chromium, records for 75 seconds, and ffmpeg converts to mp4. One command: npm run record-demo

No human touched OBS, no manual editing. The agent that built the tool, built the demo, and recorded the demo. The video above was generated entirely by the pipeline this agent created.