Automate Mixpanel tasks via Rube MCP (Composio): events, segmentation, funnels, cohorts, user profiles, JQL queries. Always search tools first for current schemas.
Add this skill
npx mdskills install sickn33/mixpanel-automationComprehensive Mixpanel automation with detailed workflows, parameter guidance, and pitfall documentation
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."4requires:5 mcp: [rube]6---78# Mixpanel Automation via Rube MCP910Automate Mixpanel product analytics through Composio's Mixpanel toolkit via Rube MCP.1112## Prerequisites1314- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)15- Active Mixpanel connection via `RUBE_MANAGE_CONNECTIONS` with toolkit `mixpanel`16- Always call `RUBE_SEARCH_TOOLS` first to get current tool schemas1718## Setup1920**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.2122231. Verify Rube MCP is available by confirming `RUBE_SEARCH_TOOLS` responds242. Call `RUBE_MANAGE_CONNECTIONS` with toolkit `mixpanel`253. If connection is not ACTIVE, follow the returned auth link to complete Mixpanel authentication264. Confirm connection status shows ACTIVE before running any workflows2728## Core Workflows2930### 1. Aggregate Event Data3132**When to use**: User wants to count events, get totals, or track event trends over time3334**Tool sequence**:351. `MIXPANEL_GET_ALL_PROJECTS` - List projects to get project ID [Prerequisite]362. `MIXPANEL_AGGREGATE_EVENT_COUNTS` - Get event counts and aggregations [Required]3738**Key parameters**:39- `event`: Event name or array of event names to aggregate40- `from_date` / `to_date`: Date range in 'YYYY-MM-DD' format41- `unit`: Time granularity ('minute', 'hour', 'day', 'week', 'month')42- `type`: Aggregation type ('general', 'unique', 'average')43- `where`: Filter expression for event properties4445**Pitfalls**:46- Date format must be 'YYYY-MM-DD'; other formats cause errors47- Event names are case-sensitive; use exact names from your Mixpanel project48- `where` filter uses Mixpanel expression syntax (e.g., `properties["country"] == "US"`)49- Maximum date range may be limited depending on your Mixpanel plan5051### 2. Run Segmentation Queries5253**When to use**: User wants to break down events by properties for detailed analysis5455**Tool sequence**:561. `MIXPANEL_QUERY_SEGMENTATION` - Run segmentation analysis [Required]5758**Key parameters**:59- `event`: Event name to segment60- `from_date` / `to_date`: Date range in 'YYYY-MM-DD' format61- `on`: Property to segment by (e.g., `properties["country"]`)62- `unit`: Time granularity63- `type`: Count type ('general', 'unique', 'average')64- `where`: Filter expression65- `limit`: Maximum number of segments to return6667**Pitfalls**:68- The `on` parameter uses Mixpanel property expression syntax69- Property references must use `properties["prop_name"]` format70- Segmentation on high-cardinality properties returns capped results; use `limit`71- Results are grouped by the segmentation property and time unit7273### 3. Analyze Funnels7475**When to use**: User wants to track conversion funnels and identify drop-off points7677**Tool sequence**:781. `MIXPANEL_LIST_FUNNELS` - List saved funnels to find funnel ID [Prerequisite]792. `MIXPANEL_QUERY_FUNNEL` - Execute funnel analysis [Required]8081**Key parameters**:82- `funnel_id`: ID of the saved funnel to query83- `from_date` / `to_date`: Date range84- `unit`: Time granularity85- `where`: Filter expression86- `on`: Property to segment funnel by87- `length`: Conversion window in days8889**Pitfalls**:90- `funnel_id` is required; resolve via LIST_FUNNELS first91- Funnels must be created in Mixpanel UI first; API only queries existing funnels92- Conversion window (`length`) defaults vary; set explicitly for accuracy93- Large date ranges with segmentation can produce very large responses9495### 4. Manage User Profiles9697**When to use**: User wants to query or update user profiles in Mixpanel9899**Tool sequence**:1001. `MIXPANEL_QUERY_PROFILES` - Search and filter user profiles [Required]1012. `MIXPANEL_PROFILE_BATCH_UPDATE` - Update multiple user profiles [Optional]102103**Key parameters**:104- `where`: Filter expression for profile properties (e.g., `properties["plan"] == "premium"`)105- `output_properties`: Array of property names to include in results106- `page`: Page number for pagination107- `session_id`: Session ID for consistent pagination (from first response)108- For batch update: array of profile updates with `$distinct_id` and property operations109110**Pitfalls**:111- Profile queries return paginated results; use `session_id` from first response for consistent paging112- `where` uses Mixpanel expression syntax for profile properties113- BATCH_UPDATE applies operations (`$set`, `$unset`, `$add`, `$append`) to profiles114- Batch update has a maximum number of profiles per request; chunk larger updates115- Profile property names are case-sensitive116117### 5. Manage Cohorts118119**When to use**: User wants to list or analyze user cohorts120121**Tool sequence**:1221. `MIXPANEL_COHORTS_LIST` - List all saved cohorts [Required]123124**Key parameters**:125- No required parameters; returns all accessible cohorts126- Response includes cohort `id`, `name`, `description`, `count`127128**Pitfalls**:129- Cohorts are created and managed in Mixpanel UI; API provides read access130- Cohort IDs are numeric; use exact ID from list results131- Cohort counts may be approximate for very large cohorts132- Cohorts can be used as filters in other queries via `where` expressions133134### 6. Run JQL and Insight Queries135136**When to use**: User wants to run custom JQL queries or insight analyses137138**Tool sequence**:1391. `MIXPANEL_JQL_QUERY` - Execute a custom JQL (JavaScript Query Language) query [Optional]1402. `MIXPANEL_QUERY_INSIGHT` - Run a saved insight query [Optional]141142**Key parameters**:143- For JQL: `script` containing the JQL JavaScript code144- For Insight: `bookmark_id` of the saved insight145- `project_id`: Project context for the query146147**Pitfalls**:148- JQL uses JavaScript-like syntax specific to Mixpanel149- JQL queries have execution time limits; optimize for efficiency150- Insight `bookmark_id` must reference an existing saved insight151- JQL is a legacy feature; check Mixpanel documentation for current availability152153## Common Patterns154155### ID Resolution156157**Project name -> Project ID**:158```1591. Call MIXPANEL_GET_ALL_PROJECTS1602. Find project by name in results1613. Extract project id162```163164**Funnel name -> Funnel ID**:165```1661. Call MIXPANEL_LIST_FUNNELS1672. Find funnel by name1683. Extract funnel_id169```170171### Mixpanel Expression Syntax172173Used in `where` and `on` parameters:174- Property reference: `properties["property_name"]`175- Equality: `properties["country"] == "US"`176- Comparison: `properties["age"] > 25`177- Boolean: `properties["is_premium"] == true`178- Contains: `"search_term" in properties["name"]`179- AND/OR: `properties["country"] == "US" and properties["plan"] == "pro"`180181### Pagination182183- Event queries: Follow date-based pagination by adjusting date ranges184- Profile queries: Use `page` number and `session_id` for consistent results185- Funnel/cohort lists: Typically return complete results without pagination186187## Known Pitfalls188189**Date Formats**:190- Always use 'YYYY-MM-DD' format191- Date ranges are inclusive on both ends192- Data freshness depends on Mixpanel ingestion delay (typically minutes)193194**Expression Syntax**:195- Property references always use `properties["name"]` format196- String values must be quoted: `properties["status"] == "active"`197- Numeric values are unquoted: `properties["count"] > 10`198- Boolean values: `true` / `false` (lowercase)199200**Rate Limits**:201- Mixpanel API has rate limits per project202- Large segmentation queries may time out; reduce date range or segments203- Use batch operations where available to minimize API calls204205**Response Parsing**:206- Response data may be nested under `data` key207- Event data is typically grouped by date and segment208- Numeric values may be returned as strings; parse explicitly209- Empty date ranges return empty objects, not empty arrays210211## Quick Reference212213| Task | Tool Slug | Key Params |214|------|-----------|------------|215| List projects | MIXPANEL_GET_ALL_PROJECTS | (none) |216| Aggregate events | MIXPANEL_AGGREGATE_EVENT_COUNTS | event, from_date, to_date, unit |217| Segmentation | MIXPANEL_QUERY_SEGMENTATION | event, on, from_date, to_date |218| List funnels | MIXPANEL_LIST_FUNNELS | (none) |219| Query funnel | MIXPANEL_QUERY_FUNNEL | funnel_id, from_date, to_date |220| Query profiles | MIXPANEL_QUERY_PROFILES | where, output_properties, page |221| Batch update profiles | MIXPANEL_PROFILE_BATCH_UPDATE | (profile update objects) |222| List cohorts | MIXPANEL_COHORTS_LIST | (none) |223| JQL query | MIXPANEL_JQL_QUERY | script |224| Query insight | MIXPANEL_QUERY_INSIGHT | bookmark_id |225
Full transparency — inspect the skill content before installing.