Skip to main content
Glama
sablier-ai

Sablier MCP Server

Official
by sablier-ai

check_scenario_probability

Read-only

Check if a constrained scenario is achievable before running a full simulation. Probe the model to estimate the probability and get a recommended generation method.

Instructions

Pre-flight feasibility check for a constrained FLOW scenario. ALWAYS call this BEFORE simulate_flow_scenario when you have ≥2 constraints, or whenever you're unsure if a scenario is in the model's natural distribution.

Probes the trained model with up to n_baseline unconstrained paths and reports what fraction satisfy your constraints, plus a recommended generation method: • probability ≥5% → 'rejection' (fast, exact samples) • probability 1-5% → 'hybrid' (rejection + latent fallback) • probability <1% → 'latent' (paths satisfy by construction; mild dynamics distortion) • probability <0.1% → infeasibility floor — refuse or relax constraints

Cheap (~1-15s) compared to a full scenario (minutes + GPU credits). Reuses today's baseline if generate_flow_paths has already been called; if not, auto_generate_baseline=True (default) creates one in the same call.

Workflow when probability is low: report it back to the user, then iterate — try each constraint individually to identify the binding one, relax magnitudes, widen t_start/t_end windows, or drop the least-essential constraint. Only commit to simulate_flow_scenario once probability is in a usable band, OR the user has explicitly accepted latent-mode distortion.

feature_name in constraints must be the DISPLAY NAME from the trained model's feature_names (e.g. 'Apple Inc.', 'SPDR S&P 500 ETF Trust'), NOT ticker symbols.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
n_baselineNoProbe size when generating a baseline. Larger = better resolution (1/n_baseline = floor) but slower. Default 1000.
constraintsYesSame shape as simulate_flow_scenario constraints. Each MUST have 'lower' and/or 'upper'. Required keys: feature_name, lower and/or upper. Optional: type, t_start, t_end. Example: [{'feature_name': 'Equity Volatility (VIX)', 'lower': 30, 't_start': 10, 't_end': 25}]
model_group_idYesUUID of the model group with a trained Flow model (from train_flow_model)
n_paths_targetNoNumber of paths the eventual scenario would generate (used for the method recommendation). Default 1000.
auto_generate_baselineNoIf no same-day baseline exists, generate one (~30s extra). Default True.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes
Behavior5/5

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

The description discloses behavior beyond the readOnlyHint and openWorldHint annotations: it explains the probing mechanism, probability threshold bands, the meaning of the recommended generation methods, the cost (~1-15s), baseline reuse, and the auto_generate_baseline fallback. It also warns that feature_name must be the display name, not a ticker, which is critical. No contradiction with annotations.

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?

The description is long but every sentence carries actionable information. It front-loads the purpose and usage rule, uses a clear bulleted list for probability thresholds, and concludes with a critical data-format note. No filler or redundancy.

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?

Given the tool's complexity (5 params, output schema, branching logic for method recommendation), the description is remarkably complete. It covers cost, baseline reuse, fallback behavior, low-probability workflow, and input validation, leaving no significant gaps for the agent to guess.

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?

Although schema descriptions cover all parameters (100%), the tool description adds semantic context by explaining how n_baseline affects resolution, what n_paths_target is used for (method recommendation), and when auto_generate_baseline creates a baseline. It also clarifies the constraints shape and requirement that 'lower' and/or 'upper' must be present, adding value over the schema.

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 clearly identifies the tool as a pre-flight feasibility check for constrained FLOW scenarios, explicitly stating it should be called before simulate_flow_scenario. It distinguishes itself from siblings by focusing on probability estimation and method recommendation, not simulation itself.

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

Usage Guidelines5/5

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

It provides explicit when-to-use guidance ('ALWAYS call this BEFORE simulate_flow_scenario when you have ≥2 constraints') and spells out the workflow for low-probability cases, including alternative actions like relaxing constraints or dropping least-essential constraints. It also names the sibling tool simulate_flow_scenario as the alternative.

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/sablier-ai/sablier-mcp'

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