Mixpanel
Query and analyze Mixpanel
- Category
- Data & Analytics
- Primary Subcategory
- Product Analytics & Experimentation
Integration details
Description
Query and analyze your Mixpanel data directly in ChatGPT. Run segmentation, funnel, and retention analyses, explore your event taxonomy, manage Lexicon metadata, and resolve data quality issues - all without leaving your conversation. With the Mixpanel MCP server connected, ChatGPT can reason about your product analytics alongside your code, documents, and decisions. Ask questions in plain language, drill into user behavior, and get answers grounded in your actual data.
- Integration type
- Plugin
- Verification status
- Not applicable
- Platform
- ChatGPT
- Primary Subcategory
- Product Analytics & Experimentation
- Secondary Subcategories
- None listed
- Brand
- Mixpanel
- Access
- Account required
- First tracked
- 2026-04-07
- Tool count
- 61
- Geography
- US
The Primary Subcategory used for this profile’s headline score.
Other Subcategories where the Integration is listed.
Get alerts for Mixpanel
Get updates when Mixpanel’s Discoverability Score or category rank changes.
ChatGPT Plugin Discovery Score
ChatGPT Plugin discovery is coming soon
ChatGPT can surface a Plugin when it matches a user's request.Your Plugin Discovery Score measures how often yours appears.
No spam. Unsubscribe any time.
What discovery looks like

Competing in ChatGPT Product Analytics & Experimentation
View Category61 tools agents can invoke
Edit multiple events at once. Supports two modes: 1. Uniform fields (applied to ALL events): hidden, verified, dropped, tags, contact_emails, team_contact_names. 2. Per-event fields (on individual events in the events list): description, display_name. Both modes can be combined in a single call. Maximum 50 events per call.
Bulk-Edit-Events
Edit multiple properties at once. Supports two modes: 1. Uniform fields (applied to ALL properties): hidden, dropped, sensitive, tags. 2. Per-property fields (on individual entries in the properties list): description, display_name, example_value. Both modes can be combined in a single call. All properties must share the same resource_type ("Event" or "User"). Maximum 50 properties per call.
Bulk-Edit-Properties
Create a new Mixpanel cohort. A cohort is a saved group of users matching a set of criteria. Pass a `definition` dict matching the CohortDefinition schema (grouped or selector format). Call Describe-Cohort-Schema first to retrieve the full JSON schema, including the required fields per format (grouped uses a `groups[]` filters grammar; selector uses the lower-level `behaviors{}` + compound `selector` AST for cohorts that embed funnel or retention report behaviors). For the grouped format, each group's `event` is the anchor cohort the filters narrow down — almost always `{"resourceType": "cohort", "value": "$all_users"}`. To anchor on members of an existing cohort instead, pass that cohort's integer id as `value`. `workspace_id` is required (unlike List-Cohorts, which lists project-wide when it is omitted).
Create-Cohort
Create a formula-based custom property (a computed event or user property) in a project. Define it with a `display_formula` expression that references named `composed_properties` variables (_A, _B, ...). Every property used in the formula must be mapped in `composed_properties` — use List-Properties to find the properties to compose. `resource_type` is 'events' or 'people'. The created property appears in Lexicon and is usable in reports.
Create-Custom-Property
Create a Mixpanel dashboard that combines multiple reports and text into a single view. Use when the user asks for a "dashboard," "board", or requests to save several reports grouped together. For a single report request, prefer Run-Query. Requires query_id(s) from prior Run-Query calls (use skip_results=true to chain multiple queries). Max 30 rows per dashboard. Each row can contain up to 4 items (text cards or reports). Row schema: {'$defs': {'ReportContent': {'additionalProperties': False, 'description': 'Report content for a dashboard row.', 'properties': {'type': {'const': 'report', 'default': 'report', 'title': 'Type', 'type': 'string'}, 'query_id': {'description': 'query_id from Run-Query', 'title': 'Query Id', 'type': 'string'}, 'name': {'maxLength': 255, 'title': 'Name', 'type': 'string'}, 'description': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'title': 'Description'}}, 'required': ['query_id', 'name'], 'title': 'ReportContent', 'type': 'object'}, 'TextContent': {'additionalProperties': False, 'description': 'Text content for a dashboard cell.', 'properties': {'type': {'const': 'text', 'default': 'text', 'title': 'Type', 'type': 'string'}, 'html_content': {'description': 'HTML content for the text card. Allowed tags: a, blockquote, br, code, em, h1, h2, h3, hr, li, mark, ol, p, s, strong, u, ul. Other tags are stripped. Do not include newlines; Each html element means a new line.', 'maxLength': 2000, 'title': 'Html Content', 'type': 'string'}}, 'required': ['html_content'], 'title': 'TextContent', 'type': 'object'}}, 'description': 'A row to add to a dashboard.', 'properties': {'contents': {'items': {'discriminator': {'mapping': {'report': '#/$defs/ReportContent', 'text': '#/$defs/TextContent'}, 'propertyName': 'type'}, 'oneOf': [{'$ref': '#/$defs/TextContent'}, {'$ref': '#/$defs/ReportContent'}]}, 'maxItems': 4, 'minItems': 1, 'title': 'Contents', 'type': 'array'}}, 'required': ['contents'], 'title': 'DashboardRow', 'type': 'object'} Time filter schema: {'$defs': {'DateRange': {'description': 'Date range specification for dashboard time filter.', 'properties': {'type': {'description': 'Type of date range', 'enum': ['since', 'between', 'in the last'], 'title': 'Type', 'type': 'string'}, 'from': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': "Start date (YYYY-MM-DD) for 'since' or 'between'", 'title': 'From'}, 'to': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': "End date (YYYY-MM-DD) for 'between'", 'title': 'To'}, 'window': {'anyOf': [{'$ref': '#/$defs/TimeWindow'}, {'type': 'null'}], 'default': None, 'description': "Time window for 'in the last'"}}, 'required': ['type'], 'title': 'DateRange', 'type': 'object'}, 'TimeWindow': {'description': 'Time window for relative date ranges.', 'properties': {'unit': {'description': 'Time unit', 'enum': ['day', 'week', 'month'], 'title': 'Unit', 'type': 'string'}, 'value': {'description': 'Number of units', 'minimum': 1, 'title': 'Value', 'type': 'integer'}}, 'required': ['unit', 'value'], 'title': 'TimeWindow', 'type': 'object'}}, 'description': 'Dashboard time filter.', 'properties': {'dateRange': {'$ref': '#/$defs/DateRange', 'description': 'Date range configuration'}, 'displayText': {'description': "Human-readable display text, e.g. 'Last 30 days'", 'title': 'Displaytext', 'type': 'string'}}, 'required': ['dateRange', 'displayText'], 'title': 'DashboardTimeFilter', 'type': 'object'}
Create-Dashboard
Create a lookup table from rows. Pass `rows` as a list of {column: value} objects; one column is the primary key (`primary_key_column`, default "Primary Key") used to join the table to event/user data. The table appears in Lexicon and can then be mapped to a property in the UI.
Create-Lookup-Table
Create a tag for organizing events and properties in Lexicon.
Create-Tag
Create an experiment (in DRAFT status) in the current project. For setup decisions (hypothesis writing, metric selection, sample sizing, testing model, end condition, advanced features like CUPED/Winsorization/ multiple testing correction) call Get-Experiment-Setup-Guidance first — it is the single source of truth for what makes a sound experiment. `project_id` and `experiment.workspaceId` are auto-injected from the caller's session — pass any int (or omit workspaceId) and the values you supply will be replaced before the call reaches the server. Do not ask the user for them or call other tools to discover them. Mechanics (NOT best-practice advice — see setup guidance for that): - For duration-based experiments, set endCondition="days" and endAfterDays; for sample-size-based, set endCondition="sample_size" and sampleSize. - Metrics: pass saved metrics via primaryMetricIds/guardrailMetricIds/ secondaryMetricIds (find IDs with List-Metrics), or define inline via the metrics array with eventName and metricType. - Optional `variants` array — only include when the user explicitly states variant keys/values/splits. Otherwise the system creates a default 50/50 control/treatment flag. - The server always runs the seven deterministic pre-launch pitfall checks before creation, deriving most inputs (arm count, sample size, metric counts, stats toggles) from the experiment itself. Optional `validationContext` supplies the few externals it can't derive (baseline rate, MDE, expected exposures, cohort size, primary-metric measurement types). Blocker pitfalls (under-half-required exposures, cohort too small) short-circuit the create and are surfaced as an actionable error; warnings and fyi findings ride along on the created experiment as `validationFindings`. After creation, use Update-Experiment with action="launch" to start the experiment.
Create a feature flag in the current project. `project_id` and `workspace_id` are auto-injected from the caller's session — pass any int and the values you supply will be replaced before the call reaches the server. Do not ask the user for them. For routing (Feature Gate vs Dynamic Config vs Experiment), input gathering, naming/keying conventions, and per-flagType variant rules, call `Get-Feature-Flag-Setup-Guidance` first. Mechanics: flag key is auto-derived from name when omitted; flag starts disabled (use Update-Feature-Flag to enable, or call Get-Feature-Flag-Lifecycle-Guidance for rollout decisions); rolloutPercentage defaults to 1.0 (100% of targeted traffic). Configure cohort targeting in the Mixpanel UI via the URL in the response.
Create a saved metric (behavior or formula) for reuse across experiments. Types: - "metric": Single event behavior (count, unique users, DAU, etc.) - "formula": Combines multiple metrics with mathematical expressions Definition schema: { "displayOptions": { "chartType": "line | bar" }, "sections": { "events": [ { "event": "string", "math": "unique | total | session | dau | wau | mau", "filters": [ [ { "type": "string", "propertyName": "string", "propertyType": "string | number | boolean | datetime | list", "resource": "event | user", "operator": "equals | contains | does not equal | does not contain", "value": "string" }, { "type": "string", "propertyName": "string", "propertyType": "string | number | boolean | datetime | list", "resource": "event | user", "operator": "is set | is not set" }, { "type": "number_array", "propertyName": "string", "propertyType": "string | number | boolean | datetime | list", "resource": "event | user", "operator": "is between", "value": [ "number" ] }, { "type": "number", "propertyName": "string", "propertyType": "string | number | boolean | datetime | list", "resource": "event | user", "operator": "is at least | is equal to | is not equal to | is greater than | is less than | is at most", "value": "number" }, { "type": "boolean", "propertyName": "string", "propertyType": "string | number | boolean | datetime | list", "resource": "event | user", "operator": "true | false", "value": "boolean" }, { "type": "datetime", "propertyName": "string", "propertyType": "string | number | boolean | datetime | list", "resource": "event | user", "operator": "was on | was before | was since", "value": "string" }, { "type": "list-of-objects", "propertyName": "string", "resource": "event | user", "listItemFilters": [ [ { "type": "string", "propertyName": "string", "propertyType": "string | number | boolean | datetime | list", "resource": "event | user", "operator": "equals | contains | does not equal | does not contain", "value": "string" }, { "type": "string", "propertyName": "string", "propertyType": "string | number | boolean | datetime | list", "resource": "event | user", "operator": "is set | is not set" }, { "type": "number_array", "propertyName": "string", "propertyType": "string | number | boolean | datetime | list", "resource": "event | user", "operator": "is between", "value": [ "number" ] }, { "type": "number", "propertyName": "string", "propertyType": "string | number | boolean | datetime | list", "resource": "event | user", "operator": "is at least | is equal to | is not equal to | is greater than | is less than | is at most", "value": "number" }, { "type": "boolean", "propertyName": "string", "propertyType": "string | number | boolean | datetime | list", "resource": "event | user", "operator": "true | false", "value": "boolean" }, { "type": "datetime", "propertyName": "string", "propertyType": "string | number | boolean | datetime | list", "resource": "event | user", "operator": "was on | was before | was since", "value": "string" } ] ], "listQuantifier": "any | all", "listInclusion": "all | matching", "propertyObjectKey": [ "string" ] } ] ] } ] } } Returns metric with ID for use in Create-Experiment with primaryMetricIds. For complex definitions, use Get-Metric on existing metrics as templates.
Delete a Mixpanel cohort. WARNING: This action is destructive and cannot be undone. Always confirm with the user before deleting a cohort. The webapp will prevent deletion if the cohort is used in active reports or other dependencies, returning an actionable error message. `workspace_id` is required (unlike List-Cohorts, which lists project-wide when it is omitted).
Delete-Cohort
Delete a dashboard. Always confirm with the user before proceeding. Use List-Dashboards or Get-Dashboard to find the dashboard ID.
Delete-Dashboard
Delete a tag from a Mixpanel project. This removes the tag from all associated events and properties. Use with caution as this operation cannot be undone.
Delete-Tag
Return the schema for the `definition` parameter accepted by Create-Cohort and Update-Cohort. Call this before authoring a cohort definition for the first time in a session so you know which fields are required for the grouped vs. selector format. The result has three keys: - `definition`: the CohortDefinition JSON schema (grouped/selector union). - `grouped_filter_types`: per-type schemas + worked examples for the grouped format's `groups[].filters[]` entries (property / behavioral / cohort_membership), which the base schema leaves opaque. - `notes`: gotchas worth reading before authoring a definition.
Describe-Cohort-Schema
Dismiss data quality issues matching natural criteria - no need to look up IDs first. Specify what to dismiss using event names, property names, dates, and issue types. Example: dismiss issues for the 'signup' event from November 15th, or dismiss all type drift issues for the 'user_id' property. IMPORTANT: If multiple issues match your criteria, you must set dismiss_all_matching=True as a safety measure. To dismiss a single issue, provide enough criteria to uniquely identify it (event + date, or property + date).
Dismiss-Issues
Display the interactive chart widget for a previously-run query. Takes a query_id returned by Run-Query and render results in the MCP App visualization widget.
Display-Query
Create a copy of an existing dashboard with all its contents. Optionally override the title and description of the new dashboard.
Duplicate-Dashboard
Use contact_emails or team_contact_names for ownership. Set verified=True to verify/approve events, hidden=True to hide from UI, dropped=True to deprecate.
Edit-Event
Set sensitive=True for PII data classification. Set example_value to populate the example shown in Lexicon.
Edit-Property
Explain why an experiment's health check is firing — or confirm it isn't — and recommend a next action. Supports two checks: - `health_check_kind="srm"` — Sample Ratio Mismatch (traffic split deviates from configured allocation). Call Get-Experiment with compute_exposures=true first, then pass: - p_value: liveSrmAnalysis.p_value (null when SRM can't be computed yet — pass it as-is and the tool returns a clear "SRM unavailable" message instead of erroring) - live_exposures: liveExposures (variant → count); webapp emits percentages (e.g. {control: 50}), the tool accepts either fractions or percentages - target_allocations: experiment.settings.srm.targetAllocations - `health_check_kind="retro_a_a"` — pre-experiment bias (per-metric A/B z-tests on the pre-experiment window, Bonferroni-corrected). Call Get-Experiment with compute_metrics=true first (null when retro A/A hasn't been computed — typical right after an experiment starts), then pass: - retro_aa_verdict: the `liveRetroAa` block from Get-Experiment; carries `any_failing`, `acknowledged`, and per-metric `results` - metric_names: map of metric_id → display name built from `experiment.metrics`; the summary names the affected metrics instead of surfacing raw ids Returns a HealthCheckDiagnosis. For SRM: signed per-variant deviation, likely causes in most-probable-first order, recommended action (pause / investigate exposures / restart with bot filtering / continue). For retro A/A: list of biased metrics, retro-A/A- specific causes (randomization bug, context mismatch, insufficient pre-period, natural variance), recommended action (enable CUPED / restart with longer pre-period / acknowledge / pause). The Kohavi (SRM) or Twyman's-Law (retro A/A) trustworthiness principle is cited in the failing case.
Use AI to fill in missing event metadata for a Mixpanel project. For every event that is missing a display name and/or description, this generates one and applies it in bulk to the project's Lexicon. GAP-FILL ONLY: events that already have both a display name and a description are left untouched — this never overwrites existing metadata. DESTRUCTIVE: it writes metadata to the project's events. Always confirm with the user before calling. Returns the number of events whose metadata was filled in.
Fill-Event-Metadata
Find groups of duplicate or near-duplicate names in a Mixpanel project — both events and event properties. Returns clusters a user might want to merge in Lexicon (e.g. 'Add to Cart', 'add_to_cart', 'addToCart'; or 'from_date', 'from-date'). Returns a FormattedTable with Columns: - suggested_name: the most-popular variant in the cluster — use this as the merge target. - entity_names: every variant in the group, in popularity order (includes suggested_name as the first entry). - entity_type: 'events' or 'event_properties'. Pass this value back to Merge-Group / Dismiss-Duplicate-Group. Groups already merged or dismissed by the user are filtered out by the server. Empty `rows` means there is nothing actionable.
Retrieve a Mixpanel cohort by ID. Returns the cohort's metadata (name, description, count, is_visible, verified, creator, updated_at) and its definition in the AI-typed format (CohortDefinition). Only `updated_at` (last edited) is tracked — there is no creation timestamp. If the wire-format definition contains unmodeled clause kinds, the `definition` field will be None, `unmodeled_clause_kinds` will list the unsupported shapes, and `definition_raw` will contain the wire-format dict so callers can still inspect the cohort's structure. `workspace_id` is required (unlike List-Cohorts, which lists project-wide when it is omitted).
Get-Cohort
Get a custom property by id, including its full definition (behavior or display_formula + composed_properties). Use this before Update-Custom-Property to see the current definition. Custom property ids come from List-Properties (custom properties are named '$custom_property:<id>').
Get-Custom-Property
Set include_layout=True to get full layout with cell/row IDs (needed for Update-Dashboard). Layout format: [[row_id, [[cell_id, type, extra], ...]], ...].
Get-Dashboard
Get events for a Mixpanel project. Two lookup modes (mutually exclusive): - event_names: Look up specific events by exact name. Lightweight server-side filter. - query: Search/discover events by substring match (case-insensitive). Fetches all events. include_details: When True, return full event metadata (tags, description, display_name, verified, hidden, dropped) for each event. Set to false if no details are needed, to keep the response compact. tag: Filter to events that have this tag name. verified/hidden/dropped: Filter by metadata status (True or False). Results are ordered verified-first. Prefer verified events (verified=True) when choosing events that match the user's request; fall back to unverified events only when no verified event fits. Unverified events are still returned and may be used. Each event's verified status is included in the response (set include_details=True for full metadata).
Get-Events
Get all data quality issues for a Mixpanel project. Returns rich context with human-readable descriptions, event/property names, timestamps, and variance details. Filter by event name, property name, issue type, status, date range, or search by description.
Get-Issues
Return a Mixpanel Lexicon transformations detail URL for an event or property. Provide either event or property along with project_id. If workspace_id is omitted, the tool will choose the 'All project data' workspace. Use this when the user wants to change event/property metadata such as display name and description.
Get-Lexicon-URL
Read a lookup table by id or name, or list all lookup tables. Provide `data_group_id` or `name` to get one table's schema (columns), row count, and a capped preview of its rows. Omit both to list every lookup table in the project (metadata only) — useful for discovering table names/ids. The `id` returned for each table is the `data_group_id` you pass back to this tool or to Update-Lookup-Table. The preview is capped by `preview_limit` (default 100) and may be smaller than `row_count` — it is a sample, not the full table. Use it to inspect the schema and existing values; to change rows, send only the rows you want to add/overwrite (`upsert_rows`) or remove (`delete_keys`) to Update-Lookup-Table, which applies the delta to the full table for you.
Get-Lookup-Table
If you have not yet called Get-Business-Context this conversation, call it FIRST — it may resolve project nicknames, acronyms, or org-specific terms in the user's request and tell you which project to pick without listing them. Get projects that are accessible to current user. Returns the project's id, name, workspaces and context. Use this and prompt the user to select a project from the available projects.
Get-Projects
Get values for one or more properties, returned as a table. properties: one or more property names. With a single property the result is a one-column table of its distinct values. With multiple Event properties the result has one column per property so you can see which values co-occur on the same events. Prefer this over the deprecated single-string 'property' alias. property: DEPRECATED alias for a single-element 'properties'. Use 'properties' instead. Passing both 'property' and 'properties' with conflicting values is an error. result_mode (Event properties only): - 'grouped' (default): deduped combinations of the property values with a 'count' column, sorted by count descending. - 'expanded': one row per event occurrence, with a 'time' column, sorted by time. Use this to inspect raw, high-cardinality values (e.g. free-text) alongside their co-occurring properties. limit: maximum rows to return (default 100, max 1000). When results are truncated a trailing note row makes the cap explicit. from_date / to_date (YYYY-MM-DD): query window for the returned values. For the multi-property and expanded paths this defaults to the trailing ~30 days; for the single-property distinct-values path, omitting it falls back to the server's default trailing window. For Event properties, the 'event' parameter is required. User properties support only a single property in grouped mode.
Get-Property-Values
Get the full instructions and JSON schema for building a full Mixpanel query. Call this to learn all available fields and options for the 'report' parameter in Run-Query. report_type: 'insights', 'funnels', 'flows', or 'retention'.
Get-Query-Schema
Retrieve a saved report's metadata from a Mixpanel project. Optionally include the report results if it's a queryable report type. Returns report metadata (id, name, type, creator info, timestamps) but NOT the query definition. To build a similar query, call Get-Query-Schema for the report type, then Run-Query.
Get-Report
Get session replays information. Provide either a distinct_id (with from_date and to_date) to find all replays for a user, OR a list of specific replay_ids (up to 20) to analyze directly. Optionally include event_properties (up to 5) to fetch specific property values for each event. Each replay includes a replay_url when available. When linking to a replay, always use replay_url verbatim — NEVER construct, guess, or modify replay URLs yourself. If replay_url is absent, state that no direct link is available instead of fabricating one.
Get-User-Replays-Data
Read the audit log for the current user's organization: who changed what, and when. Use it to answer questions like "what changed in this project last week?", "what has this user been doing?", or "who deleted something last Tuesday?". There is NO search by entity name. To answer "who deleted the Q3 Revenue board?", filter by type and time (e.g. types=["board.deleted"]) and read the entity name off the returned records — do not put the board's name in a filter, which matches nothing. Requires organization admin or owner access — the same access the audit log page in Mixpanel requires. Other roles get a permission error; that is expected, not a bug, so do not retry with different arguments. Results are newest-first and paginated. If the response carries a next_cursor, pass it back as `cursor` to get the following page; a null next_cursor means you have reached the end. Do not walk the whole log looking for something — narrow with the filters instead. Every filter is optional and omitting one WIDENS the search. Multiple filters are combined with AND; multiple values within one filter are combined with OR. Params: - project_ids (list[str], optional): Only records for these projects. Omit to cover every project in the organization PLUS the organization-level records that belong to no project (organization.sso_settings_updated and organization.user_added, for example); supplying this drops those. Role changes are NOT organization-level and stay visible under a project filter. This narrows results only — it cannot read another organization's records. - types (list[str], optional): Full event types, each in {entity_type}.{action} form — e.g. "board.deleted", "cohort.created". A bare entity type like "board" matches NOTHING and returns an empty page. - user_ids (list[str], optional): Only records performed by these users. - user_emails (list[str], optional): Only records performed by these user emails. - exclude_user_ids (list[str], optional): Drop records performed by these users. - exclude_user_emails (list[str], optional): Drop records performed by these user emails. - created_after (str, optional): Exclusive lower bound on record time, RFC 3339 WITH an offset, e.g. "2026-01-01T00:00:00Z". A timestamp without an offset is rejected — do not guess the organization's timezone. - created_before (str, optional): Exclusive upper bound, same format. - services (list[str], optional): Filter to only records that ORIGINATED from these services: "webapp", "mcp", "cron", "webapp_worker", "export_server". Describes HOW a record was produced, not what happened, so it combines with `types` rather than replacing it: a cohort created through MCP is a cohort.created record whose service is "mcp". - user_email_search (str, optional): Case-insensitive substring match against the ACTOR's email address, e.g. "alice@". It does not search entity names or record contents. - cursor (str, optional): next_cursor from a previous call. Keep every other filter identical while paging — the cursor is a position, not a saved query, so changing a filter mid-page silently skips or repeats records. - limit (int, optional): Records per page, 1-100. Defaults to a full page.
Call this FIRST, before any other Mixpanel tool whenever ANY of these are true: 1. It is the first substantive turn of the conversation about this org or project. 2. The user references a name, acronym, product, team, project nickname, event, property, or concept whose org-specific meaning you cannot verify just from the tool list. Examples that should trigger this: "show me MCP data", "how is ingest doing?", "the onboarding funnel", "Project Atlas". 3. You are about to guess which project_id, event name, or property to use based on a name in the user's request. Example: User: "what project has sales data?" ❌ Wrong: jump to Get-Projects and pattern-match against project names. ✅ Right: call Get-Business-Context first, the org likely defines what "sales data" refers to (a product area, an internal acronym, a specific project). Once you have called this in the current conversation for a given organization (and project, if applicable), do NOT call it again. The result is stable for the session; reuse the previously returned context on every subsequent turn — including follow-ups, drill-downs, refinements, and new questions about the same project. Re-call ONLY if: - The user asks about a different project_id whose context you have not yet fetched this conversation. - The user explicitly asks you to refresh or reload business context. - You called Update-Business-Context this conversation and need the new content. What you get back: - Specialized instructions on how to query data in this org - How projects, events, and other entities are organized and named - Business vocabulary and definitions (acronyms, internal product names, etc.) Params: - project_id (int, optional): If provided, returns context for the project AND its organization. organization_id is not required in this case — the org is derived from the project. - organization_id (int, optional): Required when project_id is NOT provided. Call List-Organizations FIRST to obtain it. If List-Organizations returns exactly one org, use its id directly; if it returns more than one, ASK the user which org they mean before calling this tool.
Returns best-practice guidance for interpreting Mixpanel experiment results and making ship/iterate/kill decisions. Call this when the user is analyzing, interpreting, or making a decision based on experiment results — including reviewing a concluded experiment, asking about p-values, lift, SRM, or whether to ship. The response is the canonical results interpretation document; follow it when reasoning about results. No input parameters. Equivalent to reading the `guidance://experiments/results-interpretation` MCP resource — provided as a tool for clients that don't read resources directly.
Returns best-practice guidance for designing a Mixpanel experiment before launch. Call this when the user is creating, configuring, or troubleshooting an experiment setup — including writing a hypothesis, picking metrics, sizing the experiment, or choosing a testing model. The response is the canonical setup guidance document; follow it when proposing or validating experiment configuration. No input parameters. Equivalent to reading the `guidance://experiments/setup` MCP resource — provided as a tool for clients that don't read resources directly.
Get full configuration for a specific feature flag. Returns metadata, variants, rollout rules, experiment link, and UI URL. For listing flags, use List-Feature-Flags.
Returns best-practice guidance for managing a Mixpanel feature flag after creation — staged rollout, kill-switch, hygiene/cleanup, archival, exposure tracking, and experiment linkage. Call this when the user is rolling out, monitoring, killing, archiving, or cleaning up an existing feature flag, or asking about exposure tracking or flag-to-experiment links. The response is the canonical lifecycle guidance document; follow it when reasoning about post-creation flag operations. No input parameters. Equivalent to reading the `guidance://feature-flags/lifecycle` MCP resource — provided as a tool for clients that don't read resources directly.
Returns best-practice guidance for creating and configuring a Mixpanel feature flag. Call this when the user is creating, configuring, or troubleshooting a feature-flag setup — including choosing the flag type (Feature Gate vs Dynamic Config vs Experiment-backed), naming the flag, defining variants, or deciding on initial rollout. The response is the canonical setup guidance document; follow it when proposing or validating feature-flag configuration. No input parameters. Equivalent to reading the `guidance://feature-flags/setup` MCP resource — provided as a tool for clients that don't read resources directly.
Recent events streaming into a project, newest first, with event name, time, and distinct ID. Use it to confirm newly instrumented events are arriving, or to debug what just happened for one user. Present the complete returned numbered Markdown table exactly as returned, with columns # | Event | Time | Distinct ID. Render it as a table, without a code fence. Include every row, preserving duplicates, row numbers, and newest-first order. Time is formatted as YYYY-MM-DD HH:MM:SS in the project's timezone, with daylight-saving time applied for each event. Do not group events, calculate counts, add a Count column, collapse events into "Other", truncate the listing, or replace it with a summary. Do not add commentary, comparisons with previous results, or inferred properties. Missing distinct IDs must remain marked as missing. This tool only returns these three fields; changing filters or the limit does not expose additional properties. For event definitions, tags, or verified status use Get-Events; for counts, trends, conversion, or paths use Run-Query. An event can exist in Get-Events without arriving, and can arrive before Get-Events knows it. An empty result means nothing has arrived yet, not a failure. Params: project_id (int), workspace_id (int), event_names (list of exact names to filter to), search (free text across properties, e.g. a distinct id or email), limit (default 15, max 100), paging_window (days back, default and max 30), from_date / to_date ("YYYY-MM-DD", default today in the project's timezone).
Get full definition for a saved metric. Returns complete metric structure (events, formulas, filters, aggregation). Use to inspect, copy, or verify metric configuration.
A project's Mixpanel tracking token — the value an SDK is initialized with to send events to api.mixpanel.com/track. Use it when instrumenting tracking. This is NOT the API Secret or a service account, which are what reading data OUT of Mixpanel needs. Do not call this for those. Reading the token needs project owner or admin access, so a permission error means the user should ask an org admin rather than retrying. Treat the value as a credential: give it to the user, and keep it out of files, logs, and commits. Params: project_id (int).
List all cohorts in a Mixpanel project. Returns a lightweight list of cohort headers (id, name, description, count, verified). Use the optional `query` parameter to filter by name (case-insensitive substring match). Results are ordered verified-first. Prefer verified cohorts (verified=True) when choosing a cohort that matches the user's request; fall back to unverified cohorts only when no verified cohort fits. Unverified cohorts are still returned and may be used. `workspace_id` is optional here: omit it to list across the whole project, or pass one to scope to a single workspace. Note: `count` is frequently `null` in this list. The backend suppresses cached member counts in non-global workspaces and in projects with sensitive/classified properties for callers without sensitive-data access. Call Get-Cohort for an authoritative count. For full cohort definitions, call Get-Cohort on individual cohort IDs.
List-Cohorts
Prefer Search-Entities with entity_types=['dashboard'] instead, it offers more flexibility and efficiency. Returns a list of all the dashboards in the project. Use query to filter by title (case-insensitive substring match).
List-Dashboards
List properties for a Mixpanel project. Returns name and type by default. Two lookup modes (mutually exclusive): - names: Look up specific properties by exact name (max 100). - query: Search/discover properties by substring match (case-insensitive). resource_type: 'Event' for event properties, 'User' for user properties, or omit for both. events: Scope to one or more events' properties (only valid with resource_type='Event' or omitted). attributes: Extra attributes to include in the response. Valid values: description, display_name, hidden, dropped, sensitive, example_value, merged, tags, events. The 'events' attribute is only allowed when 'names' is provided — it requires a specific set of properties to look up event associations for. It is also expensive for large projects, so only request it when needed. tag: Filter to properties that have this tag name. hidden/dropped/sensitive: Filter by metadata status (True or False).
List-Properties
List and search experiments in a project. Filter by status, name (case-insensitive substring match), creator, creation date, or tags. Use Get-Experiment for full configuration.
List and search feature flags in a project. Filter by status, key, name, creator, or creation date. Use Get-Feature-Flag for full configuration.
List all saved metrics in a project. Returns metric IDs, names, types, descriptions, and verified status. Use before creating experiments to find reusable metrics. For full definition: Get-Metric. To use in experiment: reference by ID. Results are ordered verified-first. Prefer verified metrics (verified=True) when choosing a metric that matches the user's request; fall back to unverified metrics only when no verified metric fits. Unverified metrics are still returned and may be used.
How do I improve a ChatGPT Plugin's discoverability?
The levers are the listing surface agents actually read: names, descriptions, keywords, tool metadata, and registry health. Which lever matters depends on where discovery breaks, which is what continuous measurement shows.
What are Mixpanel alternatives on ChatGPT?
As of 2026-09-28, Mixpanel competes with Amplitude, Amplitude EU, Churn Solution, Clics, ConvRadar: CRO for GA4, Customer Journey Analytics, Datadog Experiments, Edgemesh, Fullstory, Hardal, KrystalView, LaunchDarkly, Magnus, Parse.ly, Pendo, PostHog, Savri, SEO Programático, Statsig, Subtext, Userflow, Wingz by Wingify in ChatGPT Product Analytics & Experimentation, ranked by public Discoverability Score.
Where is this profile measured?
This profile uses the geography attached to the latest public registry snapshot: US. Locale tags are intentionally omitted.