auto_categorize_data
ChatGPTCategorize 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
ChatGPTWRITE. 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
ChatGPTPre-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
ChatGPTWhich 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
ChatGPTCheck 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
ChatGPTRemove business prior from a variable and reset to statistical prior mode. Updates configuration_selections.json.
clone_configuration
ChatGPTExact 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
ChatGPTCompare 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
ChatGPTConvert 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
ChatGPTBest 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
ChatGPTCreate 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
ChatGPTCreate 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
ChatGPTCreate 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
ChatGPTCreate 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
ChatGPTRender 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
ChatGPTMeta-tool: summarize model metadata, fit statistics, and channel ROI in one call. Use before get_contributions/get_predictions for narrative explanations.
explore_scenario
ChatGPTBudget 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
ChatGPTCreate 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
ChatGPTGenerate 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
ChatGPTGet 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
ChatGPTRead Model Comparison cached results bundle for one model and window/toggle combination (same as POST /api/model-comparison/cached-bundle).
get_categorization_status
ChatGPTGet 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
ChatGPTList business priors configured per channel/variable in a configuration (priorMode=business). Prefer this over loading the full configuration_selections JSON.
get_column_statistics
ChatGPTPer-column statistics (null %, min/max/mean, dtypes) for a fact table, aggregated table, wide_data, or raw upload sheet.
get_configuration_selections
ChatGPTLoad 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
ChatGPTRead-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
ChatGPTGet per-period contributions for all variables (not aggregated). Returns dates and per-variable time series for decomposition charts.
get_contributions
ChatGPTGet 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
ChatGPTPreview 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
ChatGPTRead-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
ChatGPTShow 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
ChatGPTGet 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
ChatGPTGet 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
ChatGPTLoad 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
ChatGPTGet 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
ChatGPTGet 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
ChatGPTGet 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
ChatGPTGet 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
ChatGPTGet a variable's modeling-units time series (transformed values used in the model). Useful for understanding how raw data was transformed.
get_output_mode
ChatGPTGet the current output mode for this session. Returns the active mode and available options.
get_parameters
ChatGPTGet 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
ChatGPTRobyn 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
ChatGPTGet 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
ChatGPTGet SaaS-wide default priors configuration (adstock, saturation, coefficient constraints). Same data as GET /api/priors-defaults.
get_project
ChatGPTGet 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
ChatGPTGet 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
ChatGPTGet 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
ChatGPTReturn 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
ChatGPTGet 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
ChatGPTGet 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
ChatGPTStatus and full reply thread for one of the user's own tickets. Support replies are attributed to MMMLabs Support.
get_upload_status
ChatGPTCheck 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
ChatGPTCurrent user profile: role, can_write, and account context.
get_variable_reference_stats
ChatGPTPer-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
ChatGPTReturn 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
ChatGPTInitialize per-configuration variable selections (configuration_selections.json) from dataset categorization_results.json. Requires create_configuration first. Distinct from auto_categorize_data (d...
list_accounts
ChatGPTList 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
ChatGPTList 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
ChatGPTList all configurations in a dataset (fresh Firestore read). Prefer this over get_workspace_snapshot after create_configuration—the snapshot is cached.
list_control_variables
ChatGPTList control variables (non-media factors) with their display names.
list_cross_sections
ChatGPTList available cross-sections (geographic regions, products, etc.) for a model. Returns empty list if the model has no cross-sections.
list_datasets
ChatGPTList 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
ChatGPTList auto-generated features the model added (fourier, holiday, STL, intercept). Useful for understanding model complexity.
list_model_types
ChatGPTList all available model types that can be run. Returns model names, descriptions, and capabilities.
list_paid_channels
ChatGPTList 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
ChatGPTList 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
ChatGPTList 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
ChatGPTThe 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
ChatGPTPivot cross-tab or wide upload sheet into long-format fact table preview (same engine as POST /api/pivot).
query_fact_table
ChatGPTQuery a categorized fact table, aggregated table, or wide_data with filters, group_by, and aggregates (pandas). Returns up to 5000 rows.
refresh_dataset_files
ChatGPTReplace 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
ChatGPTRename 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
ChatGPTRe-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
ChatGPTAdd 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
ChatGPTReview 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
ChatGPTRun 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
ChatGPTRun 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
ChatGPTPersist 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
ChatGPTSearch Knowledge Center for platform methodology and product help.
set_channel_business_prior
ChatGPTSet 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
ChatGPTSet 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
ChatGPTSet 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
ChatGPTControl 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
ChatGPTSurgically 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
ChatGPTBatch 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
ChatGPTPin 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
ChatGPTStart 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
ChatGPTFile 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
ChatGPTSummarize 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
ChatGPTSwitch 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
ChatGPTUpdate 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
ChatGPTUpdate 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
ChatGPTUpload 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
ChatGPTUpload 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
ChatGPTValidate business priors in a configuration for a target model engine (returns warnings when priors are unsupported or heterogeneous).
validate_categorization
ChatGPTRun server-side categorization validation (UI save-gate parity). Returns blocking and warning checks before saving or modeling.
validate_priors_family_consistency
ChatGPTCheck 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
ChatGPTPoll 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
Claudediscover_tools
Claudeget_model_status
Claudeget_output_mode
Claudeget_project
Claudeget_user_info
Claudeget_workspace_context
Claudelist_accounts
Claudelist_projects
Clauderun_data_action
Clauderun_mmm_workflow
Clauderun_model_action
Clauderun_results_action
Claudesearch_knowledge_center
Claudeset_output_mode
Claudeset_workspace_context
Claude