MCP server for growth marketing - campaign design, retention analysis, churn prediction, A/B testing
Growth MCP
MCP server cho growth marketing - đóng gói domain knowledge thành tools Claude có thể gọi trực tiếp trong chat.
Tiếng Việt
🚀 Web UI (New)
Use growth-mcp tools directly in your browser — no CLI, no MCP client needed.
cd streamlit_app
pip install -r requirements.txt
streamlit run main.py
Then open http://localhost:8501.
Available tools:
- 📊 Retention Analyzer — upload cohort CSV → retention analysis + intervention recommendations
- 📝 Campaign Brief Generator — input goal + budget + segment → complete campaign brief + voucher
- 🎫 Voucher Designer (coming soon)
- 🧪 A/B Test Analyzer (coming soon)
Giải quyết vấn đề gì?
Growth PM thường mất thời gian làm đi làm lại các phân tích lặp: tính drop rate từ cohort data, nhớ intervention nào phù hợp budget nào, tra công thức sample size, design voucher theo segment...
growth-mcp đóng gói những logic này lại. Claude gọi trực tiếp trong chat, trả kết quả có thể dùng ngay - không còn trả lời chung chung.
Minh hoạ thực tế
1. Phân tích retention cohort
Bạn hỏi:
"Cohort tháng 3: week0=100%, week1=62%, week2=41%, week3=28%, week_4=21%. Budget nhỏ. Phân tích giúp mình."
Claude trả lời:
Drop lớn nhất ở W0→W1: 38% - đây là early activation problem, không phải retention problem. Retention về sau (W1→W2: 33.9%, W2→W3: 31.7%) thực ra khá ổn định.>
Với budget S, nên tập trung vào W0→W1 trước:
- In-app push reminder trong 24h đầu
- Time-based trigger: nếu chưa quay lại sau 3 ngày → send offer
- Streak mechanic nhỏ: visit 3 ngày liên tiếp = reward
2. Design campaign + voucher
Bạn hỏi:
"Muốn reactivate lapsed users (inactive 30-60 ngày, từng order ≥3 lần). Budget khoảng 100M. Nên làm gì?"
Claude trả lời:
Campaign level M - budget 50-200M VND, timeline 2-4 tuần. Channels: in-app push + paid social.>
Với lapsed segment có lịch sử order tốt:
- Fixed discount 40-50%, không min spend
- Expiry 48 giờ - tạo urgency, không để họ "để mai"
3. Churn risk + điểm thưởng
Bạn hỏi:
"Segment này 45 ngày chưa active, 12.000 users, trung bình còn 320 điểm chưa dùng. Nguy cơ thế nào?"
Claude trả lời:
Medium risk - đang tiến gần ngưỡng churn. 320 điểm tích luỹ là hook tốt: nhắc điểm sắp hết hạn kết hợp offer nhỏ hiệu quả hơn discount đơn thuần.
4. Đọc kết quả A/B test
Bạn hỏi:
"Control 847 convert / 10.000 users, treatment 923 / 10.000. Có nên launch không?"
Claude trả lời:
Control: 8.47% → Treatment: 9.23% (+8.97% lift). Nhưng p = 0.058 → chưa significant.>
Chưa nên launch. Cần thêm data. Nếu launch sớm, 6% chance đây là noise.
5. Tính sample size trước khi chạy test
Bạn hỏi:
"Conversion rate hiện tại 3.2%, muốn detect được lift 15%. Cần bao nhiêu users?"
Claude trả lời:
Cần 30.307 users/variant, tổng 60.614 users (power 90%, α=5%). Plan traffic trước, không chạy rồi mới tính.
Cài đặt
git clone https://github.com/thaolst/growth-mcp.git
cd growth-mcp
pip install -e .
Chạy thử trong 5 phút
Folder examples/ có 4 bộ data tổng hợp kèm walkthrough với output thật của từng layer: A/B test, retention cohort, segment stats, redemption elasticity theo segment.
Dùng với Claude Desktop
Thêm vào config file:
- Mac:
~/Library/Application Support/Claude/claudedesktopconfig.json - Windows:
%APPDATA%\Claude\claudedesktopconfig.json
{ "mcpServers": { "growth-mcp": { "command": "python", "args": ["-m", "growth_mcp.server"] } } }
Restart Claude Desktop → chat bình thường, Claude tự gọi tool khi cần.
Dùng với Cursor
Thêm vào .cursor/mcp.json:
{
"mcpServers": {
"growth-mcp": {
"command": "python",
"args": ["-m", "growth_mcp.server"]
}
}
}
Tools
| Tool | Làm gì | Input chính | |---|---|---| | design_campaign | Brief campaign theo level S/M/L | level, objective, segment | | suggestvoucher | Voucher phù hợp segment | segment, objective, budgetlevel | | optimizevoucher | Voucher ladder 3 bậc kèm abuse risk | avgordervaluevnd, targetconversionliftpct, budgetperuservnd, voucher_type | | inspectcsv | Xem cấu trúc file CSV: cột, kiểu dữ liệu, sample | filepath | | analyzeexperimentfromcsv | A/B test trực tiếp từ CSV raw (1 dòng/user) | filepath, groupcol, convertedcol | | analyzeretentionfromcsv | Phân tích cohort retention từ CSV (rate hoặc count) | filepath, periodcol, valuecol | | summarizesegmentsfromcsv | Thống kê theo segment từ CSV raw | filepath, segmentcol, valuecol | | analyzeexperimentfrombigquery | A/B test trên kết quả SQL BigQuery | sql, groupcol, converted_col | | analyzeretentionfrombigquery | Retention cohort từ BigQuery | sql, periodcol, value_col | | summarizesegmentsfrombigquery | Thống kê segment trên warehouse data | sql, segmentcol, value_col | | analyzeexperimentfrommixpanel | A/B test từ event Mixpanel | exposureevent, conversionevent, groupproperty, fromdate, todate | | summarizesegmentsfrommixpanel | Thống kê segment trên event Mixpanel | event, segmentproperty, valueproperty, fromdate, to_date | | forecastpointsexpiry | Dự báo điểm hết hạn: liability, breakage, cần can thiệp không | expiringpointsbyperiod, historicalredemption_rate | | analyzeredemptionelasticity | Độ co giãn redemption theo giá điểm | observations, segment | | analyzeredemptionelasticityfromcsv | Co giãn theo từng segment từ CSV trong 1 lần chạy | filepath, periodcol, pricecol, redemptionscol, segment_col | | analyzebalancehealth | Sức khỏe số dư điểm: coverage ratio, dormancy risk | segments | | monitorcampaign | Monitor campaign real-time | rundays, reach, redemptions, vouchers, budget | | analyzesegment | Phân tích segment + recommend targeting | segmenttype, size, retention, redemption | | analyzeretention | Phân tích cohort, tìm điểm drop | cohortdata (JSON), campaign_level | | predictchurnrisk | Đánh giá nguy cơ churn | days_inactive, users, points | | analyze_experiment | Đọc kết quả A/B test | control/treatment counts + sample sizes | | estimatesamplesize | Tính sample size trước khi test | baseline_rate, MDE |
Hệ sinh thái repo
Mình có 3 repo phục vụ 3 mục đích khác nhau:
| Repo | Là gì | Dùng khi nào | |---|---|---| | ai-growth-prompts | Thư viện prompt theo chủ đề, copy-paste được ngay | Cần prompt cho 1 task cụ thể: thiết kế voucher, phân tích segment, viết brief | | ai-growth-agents-for-marketers | Workflow nhiều bước dạng prompt + script, có skill cài cho Claude Code | Muốn chạy quy trình end-to-end: lập kế hoạch MEU, phân tích A/B test | | growth-mcp (repo này) | MCP server đóng gói logic growth thành tool | Muốn Claude/Cursor gọi tool trực tiếp thay vì paste prompt |
Tool BigQuery cần extra dependency và auth chuẩn Google Cloud:
pip install "growth-mcp[bigquery]"
gcloud auth application-default login
Chỉ chấp nhận query SELECT (read-only), giới hạn 200K dòng. Data lớn hơn thì aggregate ngay trong SQL.
Tool Mixpanel không cần thêm dependency, chỉ cần API secret của project:
export MIXPANELAPISECRET=your_secret
EU data residency: export MIXPANELAPIHOST=data-eu.mixpanel.com
Khoảng thời gian export giới hạn 90 ngày, 200K event.
Knowledge layer (prompts + resources)
Ngoài tools, server còn đóng gói domain knowledge theo chuẩn MCP, mỗi entry có version và source trace (field = từ campaign thật, standard = chuẩn ngành):
| Loại | Tên | Nội dung | |---|---|---| | Resource | growth://frameworks | Retention benchmark theo tuần, nguyên tắc voucher ladder, cấu trúc lập kế hoạch MEU, checklist experiment hygiene | | Resource | growth://glossary | Thuật ngữ growth dùng xuyên suốt các tool: MEU, voucher ladder, cohort, abuse risk | | Prompt | abtestreadout | Workflow đọc kết quả test: phân tích data, check hygiene checklist, viết readout dưới 250 từ | | Prompt | meucampaignplan | Lập kế hoạch MEU tháng: decompose target, đọc data trước, gán mechanic theo segment | | Prompt | voucherdesignreview | Review thiết kế voucher theo từng nguyên tắc ladder kèm abuse risk |
Giới hạn
Các tool phân tích nhận data qua tham số hoặc qua data layer CSV (*fromcsv). Đã hỗ trợ CSV, BigQuery và Mixpanel. Nguồn khác thì export ra CSV rồi phân tích. Giúp tư duy nhanh hơn, không thay thế data analyst.
👤 Tác giả
Le Song Tien Thao (Tara) - Growth Marketer. Xây prompts, bots, và workflows cho growth marketing thực chiến.
🔗 LinkedIn · Facebook · X · Substack · Email
Nếu repo này hữu ích, star nhé ⭐
Growth MCP
MCP server for growth marketing - packaging domain knowledge into tools Claude can call directly in chat.
What problem does it solve?
Growth PMs often spend time repeating the same analyses: calculating drop rates from cohort data, remembering which interventions fit which budget, looking up sample size formulas, designing vouchers by segment...
growth-mcp packages this logic so Claude can call it directly in chat and return actionable output - not generic advice.
Real examples
1. Retention cohort analysis
You ask:
"March cohort: week0=100%, week1=62%, week2=41%, week3=28%, week_4=21%. Small budget. Analyse this."
Claude responds:
Biggest drop at W0→W1: 38% - this is an early activation problem, not a retention problem. Later-stage retention (W1→W2: 33.9%, W2→W3: 31.7%) is actually quite stable.>
With a small budget, focus on W0→W1 first:
- In-app push reminder within the first 24h
- Time-based trigger: if no return after 3 days → send offer
- Simple streak mechanic: visit 3 days in a row = reward
2. Campaign design + voucher
You ask:
"I want to reactivate lapsed users (inactive 30-60 days, had ≥3 orders). Budget around 100M. What should I do?"
Claude responds:
Campaign level M - budget 50-200M VND, timeline 2-4 weeks. Channels: in-app push + paid social.>
For a lapsed segment with a strong order history:
- Fixed discount 40-50%, no min spend
- Expiry 48 hours - creates urgency
3. Churn risk + loyalty points
You ask:
"This segment hasn't been active for 45 days, 12,000 users, average 320 unused points. How at risk are they?"
Claude responds:
Medium risk - approaching the churn threshold. 320 accumulated points are a strong hook: reminding them their points are expiring combined with a small offer works better than a standalone discount.
4. Reading A/B test results
You ask:
"Control: 847 conversions / 10,000 users. Treatment: 923 / 10,000. Should I launch?"
Claude responds:
Control: 8.47% → Treatment: 9.23% (+8.97% lift). But p = 0.058 → not significant.>
Don't launch yet. Need more data. If you launch now, there's a 6% chance this is noise.
5. Sample size before running a test
You ask:
"Current conversion rate is 3.2%, I want to detect a 15% lift. How many users do I need?"
Claude responds:
You need 30,307 users/variant, total 60,614 users (90% power, α=5%). Plan your traffic allocation before running, not after.
Installation
git clone https://github.com/thaolst/growth-mcp.git
cd growth-mcp
pip install -e .
Try it in 5 minutes
The examples/ folder has 4 synthetic datasets with a walkthrough showing real output from every layer: A/B test, retention cohort, segment stats, per-segment redemption elasticity.
Connect real data
Full guide at docs/connect-real-data.md: setup for each layer (CSV, BigQuery, Mixpanel), SQL examples for fintech/e-commerce SEA workflows, and common error handling.
Use with Claude Desktop
Add to your config file:
- Mac:
~/Library/Application Support/Claude/claudedesktopconfig.json - Windows:
%APPDATA%\Claude\claudedesktopconfig.json
{ "mcpServers": { "growth-mcp": { "command": "python", "args": ["-m", "growth_mcp.server"] } } }
Restart Claude Desktop → chat normally, Claude calls tools automatically when needed.
Use with Cursor
Add to .cursor/mcp.json:
{
"mcpServers": {
"growth-mcp": {
"command": "python",
"args": ["-m", "growth_mcp.server"]
}
}
}
Tools
| Tool | What it does | Key inputs | |---|---|---| | design_campaign | Campaign brief by level S/M/L | level, objective, segment | | suggestvoucher | Voucher recommendation by segment | segment, objective, budgetlevel | | optimizevoucher | 3-tier voucher ladder with abuse risk | avgordervaluevnd, targetconversionliftpct, budgetperuservnd, voucher_type | | inspectcsv | Inspect CSV structure: columns, types, sample | filepath | | analyzeexperimentfromcsv | A/B test straight from raw CSV (1 row/user) | filepath, groupcol, convertedcol | | analyzeretentionfromcsv | Retention cohort analysis from CSV (rates or counts) | filepath, periodcol, valuecol | | summarizesegmentsfromcsv | Per-segment stats from raw CSV | filepath, segmentcol, valuecol | | analyzeexperimentfrombigquery | A/B test on a BigQuery SQL result | sql, groupcol, converted_col | | analyzeretentionfrombigquery | Retention cohort from BigQuery | sql, periodcol, value_col | | summarizesegmentsfrombigquery | Segment stats on warehouse data | sql, segmentcol, value_col | | analyzeexperimentfrommixpanel | A/B test from Mixpanel events | exposureevent, conversionevent, groupproperty, fromdate, todate | | summarizesegmentsfrommixpanel | Segment stats over Mixpanel events | event, segmentproperty, valueproperty, fromdate, to_date | | forecastpointsexpiry | Points expiry forecast: liability, breakage, intervention need | expiringpointsbyperiod, historicalredemption_rate | | analyzeredemptionelasticity | Price elasticity of reward redemption | observations, segment | | analyzeredemptionelasticityfromcsv | Per-segment elasticity from CSV in one pass | filepath, periodcol, pricecol, redemptionscol, segment_col | | analyzebalancehealth | Points balance health: coverage ratio, dormancy risk | segments | | analyzeretention | Cohort analysis, find biggest drop point | cohortdata (JSON), campaign_level | | predictchurnrisk | Assess churn risk level | days_inactive, users, points | | analyze_experiment | Read A/B test results with stats | control/treatment counts + sample sizes | | estimatesamplesize | Calculate sample size before running a test | baseline_rate, MDE |
Repo ecosystem
I maintain 3 repos serving different purposes:
| Repo | What it is | When to use | |---|---|---| | ai-growth-prompts | Topic-based prompt library, ready to copy-paste | You need a prompt for one specific task: voucher design, segment analysis, campaign brief | | ai-growth-agents-for-marketers | Multi-step workflows as prompts + scripts, installable as Claude Code skills | You want an end-to-end process: MEU planning, A/B test analysis | | growth-mcp (this repo) | MCP server packaging growth logic as callable tools | You want Claude/Cursor to call tools directly instead of pasting prompts |
BigQuery tools need the optional dependency and standard Google Cloud auth:
pip install "growth-mcp[bigquery]"
gcloud auth application-default login
Read-only (SELECT queries only), capped at 200K rows. Aggregate in SQL for bigger data.
Mixpanel tools need no extra dependency, just your project API secret:
export MIXPANELAPISECRET=your_secret
EU data residency: export MIXPANELAPIHOST=data-eu.mixpanel.com
Export window capped at 90 days, 200K events.
Knowledge layer (prompts + resources)
Beyond tools, the server packages domain knowledge through standard MCP primitives. Every entry is versioned and source-traced (field = distilled from real campaigns, standard = industry methodology):
| Type | Name | Content | |---|---|---| | Resource | growth://frameworks | Weekly retention benchmarks, voucher ladder principles, MEU planning structure, experiment hygiene checklist | | Resource | growth://glossary | Growth terms used across the tools: MEU, voucher ladder, cohort, abuse risk | | Prompt | abtestreadout | Test readout workflow: analyze the data, check the hygiene checklist, write a readout under 250 words | | Prompt | meucampaignplan | Monthly MEU planning: decompose the target, read data first, assign mechanics per segment | | Prompt | voucherdesignreview | Review a voucher design against each ladder principle with abuse risk |
Limitations
Analysis tools take data via parameters or through the CSV data layer (*fromcsv). CSV, BigQuery, and Mixpanel are supported. For other sources, export to CSV first, then analyze. Meant to speed up thinking, not replace a data analyst.
👤 Author
Le Song Tien Thao (Tara) - Growth Marketer. Building prompts, bots, and workflows for real growth marketing work.
🔗 LinkedIn · Facebook · X · Substack · Email
If this is useful, star the repo ⭐
License
MIT - use freely, share widely.