MCP App Store
by KeenEthics

Overview

MMMLabs connects Claude to the MMMLabs marketing mix modeling platform. Use natural language to explore projects and datasets, search the Knowledge Center, check model readiness, run models (OLS, Robyn, PyMC, Meridian, and others per role), and analyze ROI, contributions, response curves, and scenarios. OAuth 2.1 with PKCE via your MMMLabs login. Destructive actions require explicit approval via Confirm delete or cancel. Requires an active MMMLabs organization account.

Tools

auto_categorize_data

ChatGPT
Categorize uploaded dataset columns and run the Data Hub transform pipeline (aggregated long-format fact tables, channel split, frequency stamp). By default runs the same Column Intelligence engine...

build_custom_results_view

ChatGPT
WRITE. Build and persist a named results view for every model in a configuration, from the existing fitted models (nothing is refitted) (same as POST /api/model-comparison/build-custom). Optionally...

check_entitlements

ChatGPT
Pre-check plan limits before create/run actions: project slots, bundle usage, dataset limits, and allowed model types for the current user role.

check_model_feasibility

ChatGPT
Which engines can fit this configuration's transform mix, and the reason each blocked engine is blocked. Every variable may carry its OWN adstock and saturation; OLS, Constrained OLS and Adaptive M...

check_model_readiness

ChatGPT
Check if a configuration is ready to call start_model. Validates upload, categorization, Firestore configuration, configuration_selections.json in storage, and model_inputs.json. Returns ordered is...

clear_channel_business_prior

ChatGPT
Remove business prior from a variable and reset to statistical prior mode. Updates configuration_selections.json.

clone_configuration

ChatGPT
Exact clone of an existing configuration (Firestore entry + configuration_selections.json and model_inputs.json when present). Preserves included/excluded variables — use this instead of create_con...

compare_models

ChatGPT
Compare two model runs (statistics and platform get_roi side by side on the same basis — revenue $ per media $). Pass model_type_a and model_type_b, or model_types: [a, b]. Engine ROI gaps are fit...

convert_distribution

ChatGPT
Convert prior distribution specs: mode 'bounds' computes lower/upper/mean/std from a distribution object (e.g. Beta, Gamma); mode 'resolve' derives native distribution parameters from a [lower, upp...

create_config_variant

ChatGPT
Best path for 'same variables, different priors': exact-clone a config, then surgically apply prior updates. Preserves exclusions. Prefer this over rebuilding selections or save_configuration_selec...

create_configuration

ChatGPT
Create a new configuration for a dataset. A configuration stores model settings and must exist before running models. Creates a 'default' config if config_name is not specified. After categorizatio...

create_dataset

ChatGPT
Create a new dataset within an existing project. Datasets contain the data files used for modeling. After creation, files can be uploaded via the Data Hub. ALWAYS call this tool when the user ment...

create_project

ChatGPT
Create a new project in MMM Labs. Projects organize datasets and models. ALWAYS call this tool when the user mentions creating a project, including: - 'create project X' - 'new project X' - 'start...

create_scenario

ChatGPT
Create a Scenario Planner scenario (budget optimization hypothesis). Requires a completed model for the dataset/config/model_type. By default (initialize_planner_defaults=true), applies UI-equivale...

draft_support_ticket

ChatGPT
Render a support ticket for the user to approve. Writes nothing and emails no one. CHECK THE DOCUMENTED BEHAVIOUR FIRST, SILENTLY. The Knowledge Center and your loaded product skills are the refere...

explain_model_results

ChatGPT
Meta-tool: summarize model metadata, fit statistics, and channel ROI in one call. Use before get_contributions/get_predictions for narrative explanations.

explore_scenario

ChatGPT
Budget what-if — list all scenarios for a dataset (any configuration) and load results for scenario_name or the first match. Omit config_name unless disambiguating duplicate titles.

generate_engineered_variables

ChatGPT
Create engineered variables (seasonality/Fourier, trends, interactions, dummies, composites) for a configuration. Persists engineered_variables.json — confirm in Data Hub UI, then regenerate model...

generate_model_inputs

ChatGPT
Generate model inputs (model_inputs.json) for a configuration. This must be done after data is uploaded and categorized, and before running a model. The model inputs file contains the processed dat...

get_actuals

ChatGPT
Get the actual observed values of the dependent variable (KPI) over time. Returns the raw actuals time series that the model was trained to predict. Use together with get_predictions to compare mod...

get_cached_results_bundle

ChatGPT
Read Model Comparison cached results bundle for one model and window/toggle combination (same as POST /api/model-comparison/cached-bundle).

get_categorization_status

ChatGPT
Get dataset-level categorization status (column → Sales/Advertising/Others). This is not configuration_selections.json (per-config variable picks). Shows how columns are categorized and their metri...

get_channel_business_priors

ChatGPT
List business priors configured per channel/variable in a configuration (priorMode=business). Prefer this over loading the full configuration_selections JSON.

get_column_statistics

ChatGPT
Per-column statistics (null %, min/max/mean, dtypes) for a fact table, aggregated table, wide_data, or raw upload sheet.

get_configuration_selections

ChatGPT
Load configuration_selections.json for a named configuration (per-config variable picks). Not the same as categorization_results.json. Config names from the UI (e.g. 'Config 1') must match config_n...

get_configuration_staleness

ChatGPT
Read-only: which configurations no longer describe the dataset. Reports any configuration that references a column the dataset no longer has — those cannot be fitted, and the failure otherwise surf...

get_contribution_time_series

ChatGPT
Get per-period contributions for all variables (not aggregated). Returns dates and per-variable time series for decomposition charts.

get_contributions

ChatGPT
Get per-variable contributions in dependent variable (KPI) units — every variable incl. intercept and controls. Served from the cached results view when available; the response states its source an...

get_data_preview

ChatGPT
Preview uploaded data. Without sheet_name: returns sheet metadata from data_frames.json (columns, row counts). With sheet_name: returns row samples matching the Data Hub preview — raw upload sheets...

get_dataset_refresh_preview

ChatGPT
Read-only: what would replacing a dataset file change, and may it? Classifies the change as added sheets / added columns / more observations / restated values / REMOVED column, and refuses a remova...

get_decomposition_settings

ChatGPT
Show how each variable's contribution will be MEASURED for a configuration: its reference point (the level the contribution is measured from, and whose displaced level folds into the base), plus it...

get_decomposition_time_series

ChatGPT
Get decomposition over time (per-period channel contributions and date axis) from completed model outputs. Use for 'decomposition chart', 'contribution by week', or time-series MMM decomposition.Re...

get_elasticity

ChatGPT
Get sales elasticity per modeled variable: the % change in total predicted sales per 1% change in the variable's own activity (Marginal Contribution / Total Predicted Sales), sign preserved (price...

get_model_inputs

ChatGPT
Load the generated model_inputs.json for a configuration so an agent can verify the wire (priors_configurations, configurations_keys, variable_groups) or reproduce a run locally. generate_model_inp...

get_model_metadata

ChatGPT
Get agent-friendly metadata from a fitted model: algorithm, KPI, date range, frequency, revenue conversion type, transform family, cross-section info, and variable_scaling (per-channel max/max-abs...

get_model_results

ChatGPT
Get results from a completed model run (ROI, contributions, accuracy, MAPE, R²). When the outputs file includes a predictions block, also returns fit_time_series_preview with aligned dates, actual,...

get_model_statistics

ChatGPT
Get model fit statistics. Returns in-sample (full/train) and out-of-sample (holdout) metrics when dataset_metrics is present, plus test_split metadata (num_obs_test, test_start). Flat r_squared/map...

get_model_status

ChatGPT
Get model run status for a dataset (completed, running, failed, etc.). After start_model, poll with get_model_status or wait_for_model_completion.

get_modeling_units

ChatGPT
Get a variable's modeling-units time series (transformed values used in the model). Useful for understanding how raw data was transformed.

get_output_mode

ChatGPT
Get the current output mode for this session. Returns the active mode and available options.

get_parameters

ChatGPT
Get model parameters with posterior/prior distributions (Bayesian) or point estimates (non-Bayesian). Includes coefficients, adstock params, and saturation params for each variable. Use for underst...

get_pareto_candidates

ChatGPT
Robyn Pareto front from the model artifact: selected solution, front candidate ids with fit metrics (nrmse, decomp_rssd, mape), and the solutions cloud (same data as the Model Results Pareto chart).

get_predictions

ChatGPT
Get the model's per-period predictions (fitted values) over a date window. Returns dates, predicted values, and KPI name. IMPORTANT — models run with a train/holdout split are fit TWICE, and this t...

get_priors_defaults

ChatGPT
Get SaaS-wide default priors configuration (adstock, saturation, coefficient constraints). Same data as GET /api/priors-defaults.

get_project

ChatGPT
Get details of a specific project including its datasets, configurations, and metadata. Prefer this over list_datasets. Pass account_id or account_name from the list_projects row when the project i...

get_response_curves

ChatGPT
Get budget-scaling response curves for paid channels in REAL spend dollars (x = spend, revenue/dependent = contribution, operating point marked), plus per-channel ROI/MROI. Served from the cached r...

get_roi

ChatGPT
Get platform ROI per paid channel: revenue_contribution / media_spend (revenue $ per media $), identical postprocess basis for every engine including meridian and pymc — gaps between engines are fi...

get_scatter_data

ChatGPT
Return paired x/y series ready for scatter charts. chart_type=actual_vs_predicted (default), spend_vs_kpi (requires channel), or response_curve (requires channel).

get_scenario_results

ChatGPT
Get Scenario Planner optimization results for a scenario (optimized spend allocation and predicted outcomes). Prefer scenario_id when known (from list_scenarios). Otherwise use scenario_name; add d...

get_spends

ChatGPT
Get actual spend (real spend column values). Pass a channel for one channel, or omit channel to get every paid channel keyed by name (under 'by_channel') — useful for spend reconciliation. Can aggr...

get_support_ticket

ChatGPT
Status and full reply thread for one of the user's own tickets. Support replies are attributed to MMMLabs Support.

get_upload_status

ChatGPT
Check if files have been uploaded to a dataset and get file metadata. Use this after asking the user to upload files to verify the upload completed.

get_user_info

ChatGPT
Current user profile: role, can_write, and account context.

get_variable_reference_stats

ChatGPT
Per-variable reference levels for one fitted model: the window minimum/maximum/mean/median in the variable's own units, the level the decomposition actually measures from, how much contribution the...

get_workspace_context

ChatGPT
Return the project/dataset/config pinned for this MCP session plus server-resolved workspace facts (model statuses, configurations, champion). Auto-populated from your last app selection on connect when available.

initialize_configuration_selections

ChatGPT
Initialize per-configuration variable selections (configuration_selections.json) from dataset categorization_results.json. Requires create_configuration first. Distinct from auto_categorize_data (d...

list_accounts

ChatGPT
List all accounts (workspaces) the current user has access to within their organization. Returns account names and IDs. Use this to see available accounts before listing projects for a specific acc...

list_cached_results_views

ChatGPT
List Model Comparison cached result views for a configuration: the two defaults (all_date, latest_year) plus saved named custom views with windows and toggles (same as POST /api/model-comparison/li...

list_configurations

ChatGPT
List all configurations in a dataset (fresh Firestore read). Prefer this over get_workspace_snapshot after create_configuration—the snapshot is cached.

list_control_variables

ChatGPT
List control variables (non-media factors) with their display names.

list_cross_sections

ChatGPT
List available cross-sections (geographic regions, products, etc.) for a model. Returns empty list if the model has no cross-sections.

list_datasets

ChatGPT
List all datasets in a specific project. Prefer get_project when you also need project metadata; call this tool directly (not via run_data_action or run_results_action). Pass account_id or account_...

list_engineered_variables

ChatGPT
List auto-generated features the model added (fourier, holiday, STL, intercept). Useful for understanding model complexity.

list_model_types

ChatGPT
List all available model types that can be run. Returns model names, descriptions, and capabilities.

list_paid_channels

ChatGPT
List paid media channels with their spend columns and display names. Returns channel name, display name, spend column, and whether it's unit-based (impressions/GRPs) vs spend-based.

list_projects

ChatGPT
List projects for the active account (owned + team + cross-account shares). Each row includes name, account_id, owner_email, and project_doc_id (Firestore document id). Within an account, display n...

list_scenarios

ChatGPT
List Scenario Planner scenarios for a project (budget optimization hypotheses created in the Scenario Planner UI). Each scenario is tied to a dataset, configuration, and model type — call with proj...

list_support_tickets

ChatGPT
The user's own support tickets with current status and whether support has replied. Use this when they ask what happened to a request they filed.

pivot_sheet

ChatGPT
Pivot cross-tab or wide upload sheet into long-format fact table preview (same engine as POST /api/pivot).

query_fact_table

ChatGPT
Query a categorized fact table, aggregated table, or wide_data with filters, group_by, and aggregates (pandas). Returns up to 5000 rows.

refresh_dataset_files

ChatGPT
Replace a dataset file from a link: restate figures, add observations, add columns or add sheets, keeping every configuration's settings. Name the file being replaced with target_filename; the so...

rename_dataset

ChatGPT
Rename a dataset within a project. Same semantics as the Project Setup UI (POST /api/projects/update_dataset_stream): moves the GCS prefix, updates the Datasets document and Scenario references. Bl...

reparse_sheet

ChatGPT
Re-parse a CSV upload sheet with delimiter/decimal/thousands/currency overrides, and its layout: encoding, text qualifier, the line the header is on and rows to skip at the end (same as POST /api/u...

reply_to_support_ticket

ChatGPT
Add the user's reply to one of their own tickets and notify the MMMLabs Support team. Use this to add detail to an existing ticket rather than filing a near-duplicate.

review_categorization

ChatGPT
Review categorization with confidence levels, issues detection, and suggestions. Returns detailed analysis including confidence levels for each column, critical issues (missing sales, no date), war...

run_column_intelligence

ChatGPT
Run Data Hub Column Intelligence (same engine as Auto Group + Run). Classifies columns, groups channels, and optionally applies results via auto_categorize_data column_hints.

run_scenario_optimization

ChatGPT
Run budget optimization for a Scenario Planner scenario. Resolves the scenario from the Scenario Planner collection (same as create_scenario / list_scenarios), loads model inputs/outputs from GCS,...

save_configuration_selections

ChatGPT
Persist configuration_selections.json (and derived engineered_variables.json when present). Prefer set_variable_prior(s) / create_config_variant for priors and clone_configuration for copies. When...

search_knowledge_center

ChatGPT
Search Knowledge Center for platform methodology and product help.

set_channel_business_prior

ChatGPT
Set a business prior on one variable: ROI/contribution range (source=range) or ROI lift test (source=lift_test with spend/incremental). Identify the target with variable_name (a variableRegistry ke...

set_cross_section_effects

ChatGPT
Set cross-section pooling and equalization (panel models). Per variable: coefficient = auto | full | varying | partial (full is the default, applied whenever nothing is set) and equalize = true/fal...

set_modeling_approach

ChatGPT
Set modelSetup.modelingApproach (panel|summed|individual) and/or which cross-section values are included. Cross-section pooling/equalization emits only in panel mode — call this before set_cross_se...

set_output_mode

ChatGPT
Control response verbosity for this session. Modes: 'user' (simplified, plain language - default), 'developer' (structured JSON), 'debug' (full technical detail). Say 'debug mode', 'verbose', or 's...

set_variable_prior

ChatGPT
Surgically patch statistical priors for ONE variable (adstock, saturation, and/or coefficient). Does not rebuild the config — excluded variables stay excluded. For many variables use set_variable_p...

set_variable_priors

ChatGPT
Batch surgical prior edits: patch coefficient/adstock/saturation priors for many variables in one save. Preserves included/excluded flags. Prefer this over N calls to set_variable_prior. To copy a...

set_workspace_context

ChatGPT
Pin project and dataset (and optional config) for this MCP session. After setting, account-wide discovery tools are hidden and invokes default to this scope.

start_model

ChatGPT
Start a model run for a specific dataset. The model will run in the background and you can check status with get_model_status.

submit_support_ticket

ChatGPT
File the drafted ticket with the MMMLabs Support team. Requires the draft_token from draft_support_ticket and the same draft fields, unchanged — call it only after the user has seen the draft and s...

summarize_table

ChatGPT
Summarize a raw upload sheet or categorized fact table: row count, per-column null %, min/max/mean for numeric columns, date span, and top categorical values. Use sheet_name from get_data_preview o...

switch_active_account

ChatGPT
Switch the active account context for subsequent tool calls in this session. Persists the selection on the user profile (same as the UI switcher). Use list_accounts first, then pass account_id or a...

update_scenario_constraints

ChatGPT
Update Scenario Planner budget timing and per-channel optimization constraints. Use budget_window_preset (latest_year, entire_dataset) to match UI Latest Year / Entire Dataset buttons. Use constrai...

update_variable_category

ChatGPT
Update a variable's category or settings. Use this to change how a column is categorized (Sales, Advertising, Others, or Ignored) or its metric type.

upload_file

ChatGPT
Upload a marketing data file (.xlsx, .xls, .csv) to a dataset. Use the first path that applies — never describe encoding or binary formats to the user. 1. User attached a file in chat → pass file_...

upload_from_url

ChatGPT
Upload data from a URL (Google Drive, Dropbox, S3, or direct file link). The file will be fetched and processed. Supports Excel (.xlsx, .xls) and CSV files. For Google Drive, use the sharing link....

validate_business_priors

ChatGPT
Validate business priors in a configuration for a target model engine (returns warnings when priors are unsupported or heterogeneous).

validate_categorization

ChatGPT
Run server-side categorization validation (UI save-gate parity). Returns blocking and warning checks before saving or modeling.

validate_priors_family_consistency

ChatGPT
Check that variables in each group share the same adstock family, saturation family, and coefficient prior distribution (paid media vs organic/controls). ENGINE-AGNOSTIC: a reported conflict is not...

wait_for_model_completion

ChatGPT
Poll get_model_status until a model reaches a terminal state (completed, completed_no_artifact, failed, cancelled) or timeout. Use after start_model.

confirm_destructive_action

Claude

discover_tools

Claude

get_model_status

Claude

get_output_mode

Claude

get_project

Claude

get_user_info

Claude

get_workspace_context

Claude

list_accounts

Claude

list_projects

Claude

run_data_action

Claude

run_mmm_workflow

Claude

run_model_action

Claude

run_results_action

Claude

search_knowledge_center

Claude

set_output_mode

Claude

set_workspace_context

Claude

Capabilities

Writes

Similar Apps