Alpha MCPAPI reference · v1

The MCP your agents call.

Tritemporal memory that cannot lie about the past, a governed causal graph, knock-on simulation, and a decision ledger — the engine behind every Cascadian answer, at machine speed.

MCPPOSTGRESGOVERNED
Tools / Causal

attribute_change()

Key

Distribution-change attribution between two as-of windows (DoWhy-GCM): which upstream causes account for the move in a metric. Capability is partial — when the GCM method can't run, it falls back to a structured candidate-cause analysis over the approved graph, and says so.

attribute_change(metric, window_a, window_b)ATTRIBUTION

Callable over MCP as attribute_change(metric, window_a, window_b). REST mirror POST /v1/attribute Planned — alpha is MCP-only

Why your agent calls it

The retrospective twin of simulation: win rate moved — what caused it? Distribution-change attribution between two as-of windows, over the approved graph. And because the capability is honestly marked partial, the agent knows when it's getting the GCM answer versus the structured fallback.

What it returns
discount_mix−1.4ppseasonality−0.5pprep_turnover−0.2pp
attribute_change() · What caused this metric to move?ILLUSTRATIVE
Call it from an agent

Over MCP, your agent invokes it on its own when the moment calls for it — just describe the situation. A Python SDK for headless runtimes is planned; this is what the call will look like.

agent · python sdkSDK · PLANNED — ALPHA IS MCP-ONLY
from cascadian import Cascadian cx = Cascadian(api_key=os.environ["CASCADIAN_API_KEY"]) result = cx.attribute_change( metric="win_rate", window_a="2026-03-01/2026-04-15", window_b="2026-04-16/2026-05-31", )
Parameters
ParamTypeDescription
metricREQUIREDstringThe variable that moved.
window_aREQUIREDstringBaseline as-of window, e.g. "2026-03-01/2026-04-15".
window_bREQUIREDstringComparison as-of window.
Example response
attribute_change()JSON · ILLUSTRATIVE
{ "metric": "win_rate", "windows": ["2026-03-01/2026-04-15", "2026-04-16/2026-05-31"], "attribution": [ { "cause": "discount_mix", "contribution_pp": -1.4 }, { "cause": "seasonality", "contribution_pp": -0.5 } ], "capability_status": "partial — structured candidate-cause fallback" }
Related — Causal