MCP server for growth marketing - campaign design, retention analysis, churn prediction, A/B testing
Overview
MCP server cho growth marketing - đóng gói domain knowledge thành tools Claude có thể gọi trực tiếp trong chat. Use growth-mcp tools — no CLI, no MCP client needed. - 📊 — upload cohort CSV → retention analysis + intervention recommendations - 📝 — input goal + budget + segment → complete campaign brief + voucher - 🎫 (coming soon) - 🧪 (coming soon) Data stays local — nothing uploaded to any server. 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... đó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. "Cohort tháng 3: week_0=100%, week_1=62%, week_2=41%, week_3=28%, week_4=21%. Budget nhỏ. Phân tích giúp mình." Drop lớn nhất ở - đâ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.
README
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)
Data stays local — nothing uploaded to any server.
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: week_0=100%, week_1=62%, week_2=41%, week_3=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/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.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 |
suggest_voucher |
Voucher phù hợp segment | segment, objective, budget_level |
optimize_voucher |
Voucher ladder 3 bậc kèm abuse risk | avg_order_value_vnd, target_conversion_lift_pct, budget_per_user_vnd, voucher_type |
inspect_csv |
Xem cấu trúc file CSV: cột, kiểu dữ liệu, sample | file_path |
analyze_experiment_from_csv |
A/B test trực tiếp từ CSV raw (1 dòng/user) | file_path, group_col, converted_col |
analyze_retention_from_csv |
Phân tích cohort retention từ CSV (rate hoặc count) | file_path, period_col, value_col |
summarize_segments_from_csv |
Thống kê theo segment từ CSV raw | file_path, segment_col, value_col |
analyze_experiment_from_bigquery |
A/B test trên kết quả SQL BigQuery | sql, group_col, converted_col |
analyze_retention_from_bigquery |
Retention cohort từ BigQuery | sql, period_col, value_col |
summarize_segments_from_bigquery |
Thống kê segment trên warehouse data | sql, segment_col, value_col |
analyze_experiment_from_mixpanel |
A/B test từ event Mixpanel | exposure_event, conversion_event, group_property, from_date, to_date |
summarize_segments_from_mixpanel |
Thống kê segment trên event Mixpanel | event, segment_property, value_property, from_date, to_date |
forecast_points_expiry |
Dự báo điểm hết hạn: liability, breakage, cần can thiệp không | expiring_points_by_period, historical_redemption_rate |
analyze_redemption_elasticity |
Độ co giãn redemption theo giá điểm | observations, segment |
analyze_redemption_elasticity_from_csv |
Co giãn theo từng segment từ CSV trong 1 lần chạy | file_path, period_col, price_col, redemptions_col, segment_col |
analyze_balance_health |
Sức khỏe số dư điểm: coverage ratio, dormancy risk | segments |
monitor_campaign |
Monitor campaign real-time | run_days, reach, redemptions, vouchers, budget |
analyze_segment |
Phân tích segment + recommend targeting | segment_type, size, retention, redemption |
analyze_retention |
Phân tích cohort, tìm điểm drop | cohort_data (JSON), campaign_level |
predict_churn_risk |
Đánh giá nguy cơ churn | days_inactive, users, points |
analyze_experiment |
Đọc kết quả A/B test | control/treatment counts + sample sizes |
estimate_sample_size |
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 MIXPANEL_API_SECRET=your_secret
# EU data residency: export MIXPANEL_API_HOST=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 | ab_test_readout |
Workflow đọc kết quả test: phân tích data, check hygiene checklist, viết readout dưới 250 từ |
| Prompt | meu_campaign_plan |
Lập kế hoạch MEU tháng: decompose target, đọc data trước, gán mechanic theo segment |
| Prompt | voucher_design_review |
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 (*_from_csv). Đã 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: week_0=100%, week_1=62%, week_2=41%, week_3=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/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.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 |
suggest_voucher |
Voucher recommendation by segment | segment, objective, budget_level |
optimize_voucher |
3-tier voucher ladder with abuse risk | avg_order_value_vnd, target_conversion_lift_pct, budget_per_user_vnd, voucher_type |
inspect_csv |
Inspect CSV structure: columns, types, sample | file_path |
analyze_experiment_from_csv |
A/B test straight from raw CSV (1 row/user) | file_path, group_col, converted_col |
analyze_retention_from_csv |
Retention cohort analysis from CSV (rates or counts) | file_path, period_col, value_col |
summarize_segments_from_csv |
Per-segment stats from raw CSV | file_path, segment_col, value_col |
analyze_experiment_from_bigquery |
A/B test on a BigQuery SQL result | sql, group_col, converted_col |
analyze_retention_from_bigquery |
Retention cohort from BigQuery | sql, period_col, value_col |
summarize_segments_from_bigquery |
Segment stats on warehouse data | sql, segment_col, value_col |
analyze_experiment_from_mixpanel |
A/B test from Mixpanel events | exposure_event, conversion_event, group_property, from_date, to_date |
summarize_segments_from_mixpanel |
Segment stats over Mixpanel events | event, segment_property, value_property, from_date, to_date |
forecast_points_expiry |
Points expiry forecast: liability, breakage, intervention need | expiring_points_by_period, historical_redemption_rate |
analyze_redemption_elasticity |
Price elasticity of reward redemption | observations, segment |
analyze_redemption_elasticity_from_csv |
Per-segment elasticity from CSV in one pass | file_path, period_col, price_col, redemptions_col, segment_col |
analyze_balance_health |
Points balance health: coverage ratio, dormancy risk | segments |
analyze_retention |
Cohort analysis, find biggest drop point | cohort_data (JSON), campaign_level |
predict_churn_risk |
Assess churn risk level | days_inactive, users, points |
analyze_experiment |
Read A/B test results with stats | control/treatment counts + sample sizes |
estimate_sample_size |
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 MIXPANEL_API_SECRET=your_secret
# EU data residency: export MIXPANEL_API_HOST=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 | ab_test_readout |
Test readout workflow: analyze the data, check the hygiene checklist, write a readout under 250 words |
| Prompt | meu_campaign_plan |
Monthly MEU planning: decompose the target, read data first, assign mechanics per segment |
| Prompt | voucher_design_review |
Review a voucher design against each ladder principle with abuse risk |
Limitations
Analysis tools take data via parameters or through the CSV data layer (*_from_csv). 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.
Install
This server does not publish a one-line install command.
Open the repository installation guide New to MCP? Start with the mcpskill.org guide →Configuration
{
"mcpServers": {
"growth-mcp": {
"command": "python",
"args": ["-m", "growth_mcp.server"]
}
}
}