제품 분석(Product Analytics)도구로서, 사용자의 이벤트를 트래킹할 수 있는 서비스에요.
쉽게 말하면 “우리 서비스에서 사용자들이 뭘 하는지, 어디서 이탈하는지 숫자로 보여주는 도구”에요.
저희 팀은 Mixpanel에서 직접 퍼널과 인사이트를 만들어서 데이터를 보고 있었어요.
쿼리를 짜는 게 아니라, Mixpanel UI 안에서 이벤트를 고르고, 필터를 붙이고, breakdown을 설정하는 방식이에요.
하지만 불편함이 있었어요.
Insights / Funnels / Retention 각각 인터페이스가 달라요. 내가 머릿속에 그린 지표를 Mixpanel이 요구하는 방식으로 옮기는 과정 자체가 피로해요. 특히 처음 보는 breakdown 옵션을 찾아다니거나, 집계 방식(unique / total / median)을 바꾸는 것처럼 사소한 설정이 생각보다 많은 클릭을 요구해요.
Insights
Retention

Funnels

Mixpanel 무료 플랜 기준으로 개인이 저장할 수 있는 리포트(퍼널, 인사이트 등)는 최대 5개에요.
분석을 하면 할수록 기존 리포트를 지워야 하는 상황이 생겼어요. 물론 팀원 한 명 당 하나의 리포트를 만들 수 있었지만, 사실 제가 거의 모든 리포트를 다 만드는 상황이었기에 여전히 어려움이 있었어요.
Mixpanel MCP를 Claude Code에 연결하면 이 두 가지를 모두 해결할 수 있어요.
UI 대신 자연어로 묻고, 결과마다 고유한 Mixpanel URL을 받기 때문에 개수 제한이 없었어요.
MCP(Model Context Protocol)는 Claude 같은 AI가 외부 툴을 직접 호출할 수 있게 해주는 프로토콜이에요. Mixpanel MCP는 Mixpanel의 쿼리 API를 Claude가 직접 호출할 수 있도록 래핑한 서버에요.
쉽게 말하면 아래와 같은 플로우가 가능해져요.
나 → Claude에게 자연어로 질문
Claude → Mixpanel MCP 서버 호출
Mixpanel MCP → Mixpanel API로 쿼리 실행
결과 → Claude가 해석해서 나에게 전달
https://mcp.mixpanel.com/mcp 이 URL을 복사
이름은 아무거나 설정하면 되고, 원격 MCP 서버 URL에 이전에 복사해둔 주소를 붙여넣고 추가.
이제 웹에서 MCP를 사용할 수 있고, 터미널에서 또한 가능.
Claude Code 설정에서 Mixpanel MCP 서버를 추가한다. ~/.claude/settings.json 또는 Claude Desktop 설정에서:
{
"mcpServers": {
"mixpanel": {
"command": "npx",
"args": ["-y", "@mixpanel/mcp"],
"env": {
"MIXPANEL_SERVICE_ACCOUNT_USERNAME": "your-service-account",
"MIXPANEL_SERVICE_ACCOUNT_SECRET": "your-secret"
}
}
}
}
Mixpanel → Organization Settings → Service Accounts에서 생성.
Analyst 이상 (읽기 전용으로 충분)Claude Code 세션을 시작하면 MCP 서버가 자동으로 뜸. 아래와 같이 물어보기.
"우리 Mixpanel 프로젝트 목록 보여줘"
연결 이후부터는 “mixpanel mcp로 ~~해줘”라고 물어보면 되는데, 그냥 물어보는 것보단 규칙을 정해서 일관성있게 답을 얻고 싶었어요. 그래서 mixpanel용 클로드 command 를 만들었어요.
단계는 6단계로 아래와 같이 설정
[step1] 분석 유형 확인
[step2] 필요한 데이터 확인
[step3] 쿼리 스키마 확인
[step4] 분석 실행
[step5] 결과 분석 및 해석
[step6] 문서화
이 단계 안에서 주의할 점들이나 더 신경써야 할 점들은 프로젝트 성격에 맞게 커스텀했어요.
아래는 클로드 mixpanel 커맨드에 작성했던 “분석 유형”인데, 프로젝트마다 다르기 때문에 그냥 넘어가도 좋아요.
(참고로 저는 현재 대학교의 동아리를 보여주고 지원할 수 있는 웹서비스를 운영 중이에요😊)
자연어 질문:
"메인페이지 방문 → 상세페이지 방문 → 지원하기 버튼 클릭 퍼널을
최근 30일 기준으로 유니크 유저로 보여줘"
Claude가 하는 일:
MainPage Visited, ClubDetailPage Visited, Club Apply Button Clicked)을 매핑결과 예시:
| 단계 | 유저 수 | 전환율 |
|---|---|---|
| ------ | --------: | -------: |
| 메인페이지 방문 | 1,709 | 100% |
| 상세페이지 방문 | 451 | 26% |
| 지원 버튼 클릭 | 61 | 14% |
핵심은 이벤트명을 정확히 몰라도 된다는 점이에요. "지원하기 클릭"이라고 하면 Claude가 알아서 Club Apply Button Clicked로 매핑해요.
자연어 질문:
"동아리별로 상세페이지 체류시간 중간값을 내림차순으로 보여줘 (최근 30일)"
Claude가 하는 일:
ClubDetailPage Duration 이벤트에서 duration_seconds 프로퍼티를 median으로 집계clubName 기준으로 breakdown이걸 Mixpanel UI에서 직접 하려면: Insights → 이벤트 선택 → Aggregate Property → breakdown 추가 → 정렬 순서 변경… 꽤 많은 클릭이 필요해요.
자연어 질문:
"지난 5주간 메인 방문, 상세 방문, 지원 클릭 유저 수 주간 추이 보여줘"
결과: 주차별 꺾은선 데이터 + Mixpanel 리포트 링크
Claude가 리포트 URL도 함께 반환하기 때문에, 더 자세히 보고 싶으면 링크 타고 Mixpanel 대시보드에서 바로 확인할 수 있어요.
자연어 질문:
"지원하기 버튼을 클릭한 유저와 안 한 유저의 상세페이지 체류시간을 비교해줘"
이런 코호트성 비교는 Mixpanel UI에서 설정이 까다롭다. MCP는 Claude가 내부적으로 frequency-per-user breakdown을 써서 자동으로 처리해줘요.
| 항목 | Mixpanel UI | MCP |
|---|---|---|
| 리포트 저장 개수 | 개인당 최대 5개 | 제한 없음 (쿼리마다 고유 URL 발급) |
| 지표 설정 방법 | 이벤트/필터/breakdown 직접 클릭 | 자연어로 요청 |
| 결과 공유 | 링크 직접 복사 | 응답에 Mixpanel URL 자동 포함 |
| 이벤트명 숙지 필요 여부 | 알아야 함 | 몰라도 됨 (Claude가 검색) |
| 반복 분석 | 매번 수동으로 설정 | 같은 질문 재사용 가능 |
Claude가 Get-Events 툴로 먼저 이벤트 목록을 검색한 뒤 쿼리를 짜요.
"지원 완료" 같은 표현으로도 찾아줘서 편해요.
매번 프로젝트를 물어보는 걸 피하려면 대화 초반에 한 번 알려줘요. 그럼 헷갈리는 일 없이 잘 대답해줍니다.
"우리 프로젝트 ID는 3611536이야, 앞으로 이걸로 써줘"
예를 들어, 결제 버튼이 외부회사(토스,카카오 등)의 페이지로 이동하는 경우, 버튼 클릭까지만 추적 가능하고 실제 결제 완료 여부는 알 수 없어요.
90일 범위 + 사용자별 일별 breakdown처럼 데이터 양이 많은 조합은 쿼리가 타임아웃될 수 있어요.
실제로 저도 90일 넘는 기간을 설정하니 데이터가 너무 많아 조회할 수 없었어요.
이 경우 기간을 30일 이내로 줄이거나, 잡히는 이벤트 수를 줄이거나(이벤트 목록 자체를 줄이기), breakdown 기준을 완화해야 해요.
1-3월 데이터를 MCP로 분석하면서 흥미로운 사실을 발견했어요.
처음 가설은 단순했어요. "상세페이지를 오래 볼수록 관심이 높고, 지원하기를 더 많이 누를 것이다."
하지만 데이터는 반대였어요.
┌────────────────────┬─────────────────┬───────────────┐
│ 지원하기 클릭 횟수 │ 체류시간 중간값 │ 체류시간 평균 │
├────────────────────┼─────────────────┼───────────────┤
│ 0~4번 │ 8초 │ 22~32초 │
├────────────────────┼─────────────────┼───────────────┤
│ 4~12번 │ 8초 │ 13~20초 │
├────────────────────┼─────────────────┼───────────────┤
│ 14번 이상 │ 6초 │ 12.6초 │
└────────────────────┴─────────────────┴───────────────┘
해석: 클릭을 많이 한 유저는 이미 플랫폼에 익숙해서 빠르게 스캔하고 결정한다. 오래 머문 유저는 아직 확신이 없어 고민중이거나, 정보가 충분하지 않다고 느끼는 상태일 가능성이 있다.
즉 체류시간 = 관심도라는 단순한 등식은 성립하지 않았어요. 이 인사이트를 얻기까지 UI에서 직접 코호트를 설정했다면 훨씬 오래 걸렸을 것 같아요.
이 데이터 하나로 방향이 명확해졌습니다. 상세페이지를 오래 보는 유저는 아직 확신을 못 잡은 상태일 가능성이 높아요. 즉 페이지 체류시간을 늘리는 것보다, 오래 머문 유저가 결국 지원 버튼을 누르게 만드는 것이 진짜 개선 포인트인거죠.
아직 어떤 UI 개선을 할 지 정확하게 정하지는 않았지만, 방향성을 잘 잡을 수 있었어요.
Mixpanel MCP를 쓰면서 좋은점은 두 가지였어요.
UI 적응 비용 제거
리포트 개수 제한 해소