thaolst
growth-mcp
Python✨ New

MCP server for growth marketing - campaign design, retention analysis, churn prediction, A/B testing

Last updated Jul 29, 2026
10
Stars
2
Forks
0
Issues
0
Stars/day
Attention Score
43
Language breakdown
Python 100.0%
Files click to expand
README

Growth MCP

version license last commit stars language

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: 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.

🔗 More in this category

© 2026 GitRepoTrend · thaolst/growth-mcp · Updated daily from GitHub