Skip to main content
Glama

Zovo Decision Tree

Make decision tree

make_decision_tree
Read-onlyIdempotent

Use this when the user wants a decision tree drawn or solved: options of a decision, chance events with probabilities, and payoffs, for example "which option has the higher expected value" or "draw a decision tree for launching this product". Takes the tree as an indented outline or a JSON node list, the objective (max or min), a unit, decimals, a page size and a title. Rolls the tree back with fractions: the expected value of each node, the chosen option at each decision (ties listed), branch costs applied by a stated rule, and the risk profile of the chosen strategy. Refuses a tree whose chance probabilities do not add up to 1, naming the node and the sum, and end nodes without a payoff. Returns a summary, an interactive drawing, and PDF, SVG and CSV downloads. Up to 300 nodes. Does not estimate probabilities or give advice. Download links of large trees expire after about 1 hour.

Input Schema

NameRequiredDescriptionDefault
unitNoUnit or currency shown with values, up to 12 characters, e.g. "$", "EUR" or "hours".
nodesNoThe tree as a JSON list instead of outline: each node has id, parent (not for the root), label, and p, cost or payoff as needed, e.g. [{"id":"r","label":"Launch?"},{"id":"a","parent":"r","label":"Do not launch","payoff":0}].
titleNoTitle printed on the drawing and used in file names, up to 80 characters, e.g. "Product launch".
outlineNoThe tree as indented text, one node per line, children indented under their parent (spaces or tabs, "- " bullets allowed). The first line is the root. Fields after the label: p=<probability> on branches of a chance node, cost=<amount> on any branch, payoff=<amount> on end nodes; separate them with spaces or "|". A node whose branches have p is a chance node, a node with branches and no p is a decision, a node with no branches is an end node; "Decision:", "Chance:" or "End:" before a label states the type. Numbers: decimals (0.35, -1,200.50, $300), fractions (1/3), and percents for p (35%). Up to 300 nodes. Example: "Launch? | decision\n Launch | cost=200\n Strong demand | p=0.6 | payoff=1000\n Weak demand | p=0.4 | payoff=-300\n Do not launch | payoff=0".
decimalsNoDecimals shown in the drawing and summary, 0 to 6 (default 2), e.g. 2. The CSV also has the fraction.
objectiveNomax (default): choose the option with the highest expected value, for profit or gain. min: choose the lowest, when payoffs are costs, losses or time. Example: max.
page_sizeNoPDF page: letter (default) or a4. Landscape unless portrait needs fewer pages.

Output Schema

NameRequiredDescriptionDefault
pdfYes
rootYes
tiesYes
unitYes
nodesYes
rulesYes
shownNo
titleYes
checksYes
countsYes
issuesYes
decimalsYes
strategyYes
warningsYes
downloadsYes
objectiveYes
risk_profileYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.3/5.0
Behavior5/5

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

Annotations already declare readOnly/idempotent/non-destructive, and the description adds substantial behavior beyond them: fractional rollback semantics, tie listing, branch-cost rule, validation refusals naming the offending node and sum, a 300-node cap, the concrete return artifacts, and the ~1 hour expiry on large-tree download links. That is exactly the operational context annotations cannot carry.

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

Conciseness4/5

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

It is a single dense paragraph but front-loaded with the trigger condition and free of filler; each sentence adds scope, input, output or a limit. The size is justified by the tool's complexity, though a short bulleted split of inputs vs. guarantees would scan faster.

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 7-parameter combinatorial tool with an output schema, the description covers input modes, limits (300 nodes), failure modes, output artifacts and link expiry. Nothing an agent needs in order to call it correctly appears to be missing.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3; the description earns one more by framing outline and nodes as alternative input modes for the same tree (an either/or relationship the schema lists as two independent properties). It also flags that costs are applied 'by a stated rule', though it does not state the rule, leaving some ambiguity.

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

Purpose4/5

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

The description states a specific verb+resource pair ('decision tree drawn or solved') and enumerates the concrete inputs and outputs (rollback with expected values, chosen option, PDF/SVG/CSV). It never names the sibling check_tree, so an agent must infer the boundary between 'make' and 'check' on its own, which keeps this out of the top band.

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?

It gives explicit trigger phrases ('which option has the higher expected value', 'draw a decision tree for launching this product') and a clear scope exclusion ('does not estimate probabilities or give advice'). It does not name alternatives or say when to prefer check_tree instead, and the built-in validation refusal partially overlaps what a check tool would do.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources