Skip to main content
Glama
getsimba-ai

Simba MCP Server

Official
by getsimba-ai

run_scenario

Predict KPI outcomes for what-if marketing scenarios by providing future channel activity rows to a completed model. Use the scenario template to format inputs, replace missing values with 0, and poll results for completion.

Instructions

Run a "what-if" scenario prediction on a completed model.

Takes a set of future period rows with channel activity values and predicts the KPI outcome. Use get_scenario_template first to get the expected format, channel names, and baseline values. Channel names are the activity-column keys from the template/results (e.g. "search_activity"), not the channels[].name passed to create_model.

IMPORTANT: Before submitting, replace any NaN/null values in scenario_data with 0. The template from get_scenario_template may contain NaN for channels without historical data, which will cause the prediction to fail.

This is async (returns 202 with status "pending"). Poll get_scenario_results until status is "complete" or "failed".

Workflow: get_scenario_template -> modify values -> run_scenario -> poll get_scenario_results

Args: model_hash: Hash of a completed model. scenario_data: Array of period rows, each a dict with "Date" (YYYY-MM-DD format) and channel activity columns. Channel names must match exactly what get_scenario_template returns in the "channels" field. Example: [{"Date": "2025-01-06", "TV_Impressions": 50000, "Search_Clicks": 1200}] spend_metadata: Optional per-channel spend info for ROI calculation in results. Each entry: {"channel": "TV_Impressions", "metric": "impressions", "cpm": 25.0, "total_spend": 125000, "weekly_spend": [25000, 25000, ...]} rebuild_model: Recompile the model graph before prediction. Must be True (default) for API-initiated scenarios where the model graph is not in memory. evaluate_holdout: Evaluate the scenario against held-out actuals when the scenario period overlaps observed data (default False). skip_slicing: Skip per-channel contribution slicing in the prediction output — faster when only the KPI total is needed (default False). proxy_channels: Optional list of proxy-channel mappings, each mapping a scenario channel to a fitted channel whose transforms it borrows (for channels without their own history).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
model_hashYes
skip_slicingNo
rebuild_modelNo
scenario_dataYes
proxy_channelsNo
spend_metadataNo
evaluate_holdoutNo
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral disclosure burden, and it does so thoroughly. It reveals the async 202/pending behavior, the need to poll until completion, the NaN failure mode, the rebuild_model requirement for API-initiated scenarios, and the performance implications of skip_slicing. No annotation contradiction exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Though lengthy, the description is efficiently organized: a one-line summary, a critical NaN warning front-loaded, an async note, a compact workflow, then per-parameter details. Every sentence adds necessary information, and headings/separators make the size navigable for an agent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex async tool with no output schema and zero schema-level parameter help, the description is remarkably complete. It covers prerequisites, input format, parameter semantics, failure conditions, async polling, and the intended workflow. An agent has nearly everything needed to call the tool correctly and interpret the follow-up step.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0% property description coverage, so the description must compensate for all seven parameters. It does this completely: model_hash is explained, scenario_data has a concrete example and format details, spend_metadata shows the exact per-entry structure, and each boolean parameter gets its meaning and default. This is exemplary parameter documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb-resource pairing: "Run a what-if scenario prediction on a completed model." It clearly distinguishes this from siblings by naming the workflow (get_scenario_template -> run_scenario -> get_scenario_results) and by clarifying that channel names come from the template/results, not from create_model.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives strong usage context: use get_scenario_template first, then modify values, then run_scenario, then poll get_scenario_results. It also states the async polling requirement. It does not explicitly say when not to use run_scenario versus a sibling like run_optimizer, so it misses the full 5, but the workflow guidance is clear and actionable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/getsimba-ai/simba-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server