Mixpanel Automation via Rube MCP
Automate Mixpanel product analytics through Composio's Mixpanel toolkit via Rube MCP.
Prerequisites
- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)
- Active Mixpanel connection via
RUBE_MANAGE_CONNECTIONS with toolkit mixpanel
- Always call
RUBE_SEARCH_TOOLS first to get current tool schemas
Setup
Get Rube MCP: Add https://rube.app/mcp as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.
- Verify Rube MCP is available by confirming
RUBE_SEARCH_TOOLS responds
- Call
RUBE_MANAGE_CONNECTIONS with toolkit mixpanel
- If connection is not ACTIVE, follow the returned auth link to complete Mixpanel authentication
- Confirm connection status shows ACTIVE before running any workflows
Core Workflows
1. Aggregate Event Data
When to use: User wants to count events, get totals, or track event trends over time
Tool sequence:
MIXPANEL_GET_ALL_PROJECTS - List projects to get project ID [Prerequisite]
MIXPANEL_AGGREGATE_EVENT_COUNTS - Get event counts and aggregations [Required]
Key parameters:
event: Event name or array of event names to aggregate
from_date / to_date: Date range in 'YYYY-MM-DD' format
unit: Time granularity ('minute', 'hour', 'day', 'week', 'month')
type: Aggregation type ('general', 'unique', 'average')
where: Filter expression for event properties
Pitfalls:
- Date format must be 'YYYY-MM-DD'; other formats cause errors
- Event names are case-sensitive; use exact names from your Mixpanel project
where filter uses Mixpanel expression syntax (e.g., properties["country"] == "US")
- Maximum date range may be limited depending on your Mixpanel plan
2. Run Segmentation Queries
When to use: User wants to break down events by properties for detailed analysis
Tool sequence:
MIXPANEL_QUERY_SEGMENTATION - Run segmentation analysis [Required]
Key parameters:
event: Event name to segment
from_date / to_date: Date range in 'YYYY-MM-DD' format
on: Property to segment by (e.g., properties["country"])
unit: Time granularity
type: Count type ('general', 'unique', 'average')
where: Filter expression
limit: Maximum number of segments to return
Pitfalls:
- The
on parameter uses Mixpanel property expression syntax
- Property references must use
properties["prop_name"] format
- Segmentation on high-cardinality properties returns capped results; use
limit
- Results are grouped by the segmentation property and time unit
3. Analyze Funnels
When to use: User wants to track conversion funnels and identify drop-off points
Tool sequence:
MIXPANEL_LIST_FUNNELS - List saved funnels to find funnel ID [Prerequisite]
MIXPANEL_QUERY_FUNNEL - Execute funnel analysis [Required]
Key parameters:
funnel_id: ID of the saved funnel to query
from_date / to_date: Date range
unit: Time granularity
where: Filter expression
on: Property to segment funnel by
length: Conversion window in days
Pitfalls:
funnel_id is required; resolve via LIST_FUNNELS first
- Funnels must be created in Mixpanel UI first; API only queries existing funnels
- Conversion window (
length) defaults vary; set explicitly for accuracy
- Large date ranges with segmentation can produce very large responses
4. Manage User Profiles
When to use: User wants to query or update user profiles in Mixpanel
Tool sequence:
MIXPANEL_QUERY_PROFILES - Search and filter user profiles [Required]
MIXPANEL_PROFILE_BATCH_UPDATE - Update multiple user profiles [Optional]
Key parameters:
where: Filter expression for profile properties (e.g., properties["plan"] == "premium")
output_properties: Array of property names to include in results
page: Page number for pagination
session_id: Session ID for consistent pagination (from first response)
- For batch update: array of profile updates with
$distinct_id and property operations
Pitfalls:
- Profile queries return paginated results; use
session_id from first response for consistent paging
where uses Mixpanel expression syntax for profile properties
- BATCH_UPDATE applies operations (
$set, $unset, $add, $append) to profiles
- Batch update has a maximum number of profiles per request; chunk larger updates
- Profile property names are case-sensitive
5. Manage Cohorts
When to use: User wants to list or analyze user cohorts
Tool sequence:
MIXPANEL_COHORTS_LIST - List all saved cohorts [Required]
Key parameters:
- No required parameters; returns all accessible cohorts
- Response includes cohort
id, name, description, count
Pitfalls:
- Cohorts are created and managed in Mixpanel UI; API provides read access
- Cohort IDs are numeric; use exact ID from list results
- Cohort counts may be approximate for very large cohorts
- Cohorts can be used as filters in other queries via
where expressions
6. Run JQL and Insight Queries
When to use: User wants to run custom JQL queries or insight analyses
Tool sequence:
MIXPANEL_JQL_QUERY - Execute a custom JQL (JavaScript Query Language) query [Optional]
MIXPANEL_QUERY_INSIGHT - Run a saved insight query [Optional]
Key parameters:
- For JQL:
script containing the JQL JavaScript code
- For Insight:
bookmark_id of the saved insight
project_id: Project context for the query
Pitfalls:
- JQL uses JavaScript-like syntax specific to Mixpanel
- JQL queries have execution time limits; optimize for efficiency
- Insight
bookmark_id must reference an existing saved insight
- JQL is a legacy feature; check Mixpanel documentation for current availability
Common Patterns
ID Resolution
Project name -> Project ID:
1. Call MIXPANEL_GET_ALL_PROJECTS
2. Find project by name in results
3. Extract project id
Funnel name -> Funnel ID:
1. Call MIXPANEL_LIST_FUNNELS
2. Find funnel by name
3. Extract funnel_id
Mixpanel Expression Syntax
Used in where and on parameters:
- Property reference:
properties["property_name"]
- Equality:
properties["country"] == "US"
- Comparison:
properties["age"] > 25
- Boolean:
properties["is_premium"] == true
- Contains:
"search_term" in properties["name"]
- AND/OR:
properties["country"] == "US" and properties["plan"] == "pro"
Pagination
- Event queries: Follow date-based pagination by adjusting date ranges
- Profile queries: Use
page number and session_id for consistent results
- Funnel/cohort lists: Typically return complete results without pagination
Known Pitfalls
Date Formats:
- Always use 'YYYY-MM-DD' format
- Date ranges are inclusive on both ends
- Data freshness depends on Mixpanel ingestion delay (typically minutes)
Expression Syntax:
- Property references always use
properties["name"] format
- String values must be quoted:
properties["status"] == "active"
- Numeric values are unquoted:
properties["count"] > 10
- Boolean values:
true / false (lowercase)
Rate Limits:
- Mixpanel API has rate limits per project
- Large segmentation queries may time out; reduce date range or segments
- Use batch operations where available to minimize API calls
Response Parsing:
- Response data may be nested under
data key
- Event data is typically grouped by date and segment
- Numeric values may be returned as strings; parse explicitly
- Empty date ranges return empty objects, not empty arrays
Quick Reference
| Task |
Tool Slug |
Key Params |
| List projects |
MIXPANEL_GET_ALL_PROJECTS |
(none) |
| Aggregate events |
MIXPANEL_AGGREGATE_EVENT_COUNTS |
event, from_date, to_date, unit |
| Segmentation |
MIXPANEL_QUERY_SEGMENTATION |
event, on, from_date, to_date |
| List funnels |
MIXPANEL_LIST_FUNNELS |
(none) |
| Query funnel |
MIXPANEL_QUERY_FUNNEL |
funnel_id, from_date, to_date |
| Query profiles |
MIXPANEL_QUERY_PROFILES |
where, output_properties, page |
| Batch update profiles |
MIXPANEL_PROFILE_BATCH_UPDATE |
(profile update objects) |
| List cohorts |
MIXPANEL_COHORTS_LIST |
(none) |
| JQL query |
MIXPANEL_JQL_QUERY |
script |
| Query insight |
MIXPANEL_QUERY_INSIGHT |
bookmark_id |
1---2name: mixpanel-automation3description: Automate Mixpanel tasks via Rube MCP (Composio): events, segmentation, funnels, cohorts, user profiles, JQL queries. Always search tools first for current schemas.4---5
6# Mixpanel Automation via Rube MCP
7
8Automate Mixpanel product analytics through Composio's Mixpanel toolkit via Rube MCP.
9
10## Prerequisites
11
12- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)
13- Active Mixpanel connection via `RUBE_MANAGE_CONNECTIONS` with toolkit `mixpanel`
14- Always call `RUBE_SEARCH_TOOLS` first to get current tool schemas
15
16## Setup
17
18**Get Rube MCP**: Add `https://rube.app/mcp` as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.
19
20
211. Verify Rube MCP is available by confirming `RUBE_SEARCH_TOOLS` responds
222. Call `RUBE_MANAGE_CONNECTIONS` with toolkit `mixpanel`
233. If connection is not ACTIVE, follow the returned auth link to complete Mixpanel authentication
244. Confirm connection status shows ACTIVE before running any workflows
25
26## Core Workflows
27
28### 1. Aggregate Event Data
29
30**When to use**: User wants to count events, get totals, or track event trends over time
31
32**Tool sequence**:
331. `MIXPANEL_GET_ALL_PROJECTS` - List projects to get project ID [Prerequisite]
342. `MIXPANEL_AGGREGATE_EVENT_COUNTS` - Get event counts and aggregations [Required]
35
36**Key parameters**:
37- `event`: Event name or array of event names to aggregate
38- `from_date` / `to_date`: Date range in 'YYYY-MM-DD' format
39- `unit`: Time granularity ('minute', 'hour', 'day', 'week', 'month')
40- `type`: Aggregation type ('general', 'unique', 'average')
41- `where`: Filter expression for event properties
42
43**Pitfalls**:
44- Date format must be 'YYYY-MM-DD'; other formats cause errors
45- Event names are case-sensitive; use exact names from your Mixpanel project
46- `where` filter uses Mixpanel expression syntax (e.g., `properties["country"] == "US"`)
47- Maximum date range may be limited depending on your Mixpanel plan
48
49### 2. Run Segmentation Queries
50
51**When to use**: User wants to break down events by properties for detailed analysis
52
53**Tool sequence**:
541. `MIXPANEL_QUERY_SEGMENTATION` - Run segmentation analysis [Required]
55
56**Key parameters**:
57- `event`: Event name to segment
58- `from_date` / `to_date`: Date range in 'YYYY-MM-DD' format
59- `on`: Property to segment by (e.g., `properties["country"]`)
60- `unit`: Time granularity
61- `type`: Count type ('general', 'unique', 'average')
62- `where`: Filter expression
63- `limit`: Maximum number of segments to return
64
65**Pitfalls**:
66- The `on` parameter uses Mixpanel property expression syntax
67- Property references must use `properties["prop_name"]` format
68- Segmentation on high-cardinality properties returns capped results; use `limit`
69- Results are grouped by the segmentation property and time unit
70
71### 3. Analyze Funnels
72
73**When to use**: User wants to track conversion funnels and identify drop-off points
74
75**Tool sequence**:
761. `MIXPANEL_LIST_FUNNELS` - List saved funnels to find funnel ID [Prerequisite]
772. `MIXPANEL_QUERY_FUNNEL` - Execute funnel analysis [Required]
78
79**Key parameters**:
80- `funnel_id`: ID of the saved funnel to query
81- `from_date` / `to_date`: Date range
82- `unit`: Time granularity
83- `where`: Filter expression
84- `on`: Property to segment funnel by
85- `length`: Conversion window in days
86
87**Pitfalls**:
88- `funnel_id` is required; resolve via LIST_FUNNELS first
89- Funnels must be created in Mixpanel UI first; API only queries existing funnels
90- Conversion window (`length`) defaults vary; set explicitly for accuracy
91- Large date ranges with segmentation can produce very large responses
92
93### 4. Manage User Profiles
94
95**When to use**: User wants to query or update user profiles in Mixpanel
96
97**Tool sequence**:
981. `MIXPANEL_QUERY_PROFILES` - Search and filter user profiles [Required]
992. `MIXPANEL_PROFILE_BATCH_UPDATE` - Update multiple user profiles [Optional]
100
101**Key parameters**:
102- `where`: Filter expression for profile properties (e.g., `properties["plan"] == "premium"`)
103- `output_properties`: Array of property names to include in results
104- `page`: Page number for pagination
105- `session_id`: Session ID for consistent pagination (from first response)
106- For batch update: array of profile updates with `$distinct_id` and property operations
107
108**Pitfalls**:
109- Profile queries return paginated results; use `session_id` from first response for consistent paging
110- `where` uses Mixpanel expression syntax for profile properties
111- BATCH_UPDATE applies operations (`$set`, `$unset`, `$add`, `$append`) to profiles
112- Batch update has a maximum number of profiles per request; chunk larger updates
113- Profile property names are case-sensitive
114
115### 5. Manage Cohorts
116
117**When to use**: User wants to list or analyze user cohorts
118
119**Tool sequence**:
1201. `MIXPANEL_COHORTS_LIST` - List all saved cohorts [Required]
121
122**Key parameters**:
123- No required parameters; returns all accessible cohorts
124- Response includes cohort `id`, `name`, `description`, `count`
125
126**Pitfalls**:
127- Cohorts are created and managed in Mixpanel UI; API provides read access
128- Cohort IDs are numeric; use exact ID from list results
129- Cohort counts may be approximate for very large cohorts
130- Cohorts can be used as filters in other queries via `where` expressions
131
132### 6. Run JQL and Insight Queries
133
134**When to use**: User wants to run custom JQL queries or insight analyses
135
136**Tool sequence**:
1371. `MIXPANEL_JQL_QUERY` - Execute a custom JQL (JavaScript Query Language) query [Optional]
1382. `MIXPANEL_QUERY_INSIGHT` - Run a saved insight query [Optional]
139
140**Key parameters**:
141- For JQL: `script` containing the JQL JavaScript code
142- For Insight: `bookmark_id` of the saved insight
143- `project_id`: Project context for the query
144
145**Pitfalls**:
146- JQL uses JavaScript-like syntax specific to Mixpanel
147- JQL queries have execution time limits; optimize for efficiency
148- Insight `bookmark_id` must reference an existing saved insight
149- JQL is a legacy feature; check Mixpanel documentation for current availability
150
151## Common Patterns
152
153### ID Resolution
154
155**Project name -> Project ID**:
156```
1571. Call MIXPANEL_GET_ALL_PROJECTS
1582. Find project by name in results
1593. Extract project id
160```
161
162**Funnel name -> Funnel ID**:
163```
1641. Call MIXPANEL_LIST_FUNNELS
1652. Find funnel by name
1663. Extract funnel_id
167```
168
169### Mixpanel Expression Syntax
170
171Used in `where` and `on` parameters:
172- Property reference: `properties["property_name"]`
173- Equality: `properties["country"] == "US"`
174- Comparison: `properties["age"] > 25`
175- Boolean: `properties["is_premium"] == true`
176- Contains: `"search_term" in properties["name"]`
177- AND/OR: `properties["country"] == "US" and properties["plan"] == "pro"`
178
179### Pagination
180
181- Event queries: Follow date-based pagination by adjusting date ranges
182- Profile queries: Use `page` number and `session_id` for consistent results
183- Funnel/cohort lists: Typically return complete results without pagination
184
185## Known Pitfalls
186
187**Date Formats**:
188- Always use 'YYYY-MM-DD' format
189- Date ranges are inclusive on both ends
190- Data freshness depends on Mixpanel ingestion delay (typically minutes)
191
192**Expression Syntax**:
193- Property references always use `properties["name"]` format
194- String values must be quoted: `properties["status"] == "active"`
195- Numeric values are unquoted: `properties["count"] > 10`
196- Boolean values: `true` / `false` (lowercase)
197
198**Rate Limits**:
199- Mixpanel API has rate limits per project
200- Large segmentation queries may time out; reduce date range or segments
201- Use batch operations where available to minimize API calls
202
203**Response Parsing**:
204- Response data may be nested under `data` key
205- Event data is typically grouped by date and segment
206- Numeric values may be returned as strings; parse explicitly
207- Empty date ranges return empty objects, not empty arrays
208
209## Quick Reference
210
211| Task | Tool Slug | Key Params |
212|------|-----------|------------|
213| List projects | MIXPANEL_GET_ALL_PROJECTS | (none) |
214| Aggregate events | MIXPANEL_AGGREGATE_EVENT_COUNTS | event, from_date, to_date, unit |
215| Segmentation | MIXPANEL_QUERY_SEGMENTATION | event, on, from_date, to_date |
216| List funnels | MIXPANEL_LIST_FUNNELS | (none) |
217| Query funnel | MIXPANEL_QUERY_FUNNEL | funnel_id, from_date, to_date |
218| Query profiles | MIXPANEL_QUERY_PROFILES | where, output_properties, page |
219| Batch update profiles | MIXPANEL_PROFILE_BATCH_UPDATE | (profile update objects) |
220| List cohorts | MIXPANEL_COHORTS_LIST | (none) |
221| JQL query | MIXPANEL_JQL_QUERY | script |
222| Query insight | MIXPANEL_QUERY_INSIGHT | bookmark_id |