Skip to main content
Glama

TradingCalc MCP: Options, Forex, Risk Stats, Prediction Markets, On-Chain & Crypto Futures

DCA Entry

workflow.run_dca_entry
Read-only

DCA entry planner: weighted average entry price, breakeven, and per-level contribution from multiple fill prices and sizes. Each fill is { price, size } here (primitive.average_entry calls the same field quantity). Compared with primitive.average_entry, this one adds output for the case where breakeven or the per-level breakdown is also wanted, not just the bare average. Use when user bought at several prices and asks "what's my average entry?" or "where is my DCA breakeven?". Returns: averageEntry, breakeven, per-level summary.

Input Schema

NameRequiredDescriptionDefault
sideYesTrade direction: "long" or "short"
entriesYesFills to average (2 to 20). Each: { price, size }, e.g. [{ "price": 60000, "size": 0.5 }, { "price": 58000, "size": 1 }]. Size is base-asset quantity for linear, USD notional (contracts) for inverse.
contractTypeNolinear = USDT-margined (default), inverse = coin-margined. Each fill's size is USD notional (contracts) for inverse; averageEntry is then the harmonic mean of fill prices, not the arithmetic mean.
fee_open_pctNoOpen fee rate (default 0.0002)
fee_close_pctNoClose fee rate (default 0.0005)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • addedInput schema / properties / entries / description
      Added value: +"Fills to average (2 to 20). Each: { price, size }, e.g. [{ \"price\": 60000, \"size\": 0.5 }, { \"price\": 58000, \"size\": 1 }]. Size is base-asset quantity for linear, USD notional (contracts) for inverse."
    • addedInput schema / properties / entries / items / properties / price / description
      Added value: +"Fill price"
    • addedInput schema / properties / entries / items / properties / size / description
      Added value: +"Fill size"
    • addedInput schema / properties / side / description
      Added value: +"Trade direction: \"long\" or \"short\""
  2. Changed1 schema field changed
    • addedInput schema / properties / contractType
      Added value: +{
      +  "description": "linear = USDT-margined (default), inverse = coin-margined. Each fill's size is USD notional (contracts) for inverse; averageEntry is then the harmonic mean of fill prices, not the arithmetic mean.",
      +  "enum": [
      +    "linear",
      +    "inverse"
      +  ],
      +  "type": "string"
      +}
  3. Added

TDQS

A4.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds real value beyond that — the field-naming discrepancy with primitive.average_entry (size vs quantity) and the fact that inverse contracts yield a harmonic mean — but it does not discuss edge cases like mixed sides or how fees affect breakeven. Useful but not rich enough for a 4 against already-strong annotations.

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?

Front-loaded with the outcome, then the sibling comparison, then the trigger phrases and return list. Slightly dense with cross-references (primitive.average_entry appears twice), but every sentence carries actionable information.

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

Completeness4/5

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

With no output schema, the description enumerates the returns (averageEntry, breakeven, per-level summary), which covers the main gap. A 5 would need a note on how fees feed into breakeven, since fee_open_pct/fee_close_pct are exposed but only defined in the schema.

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 baseline would be 3, but the description compensates for a genuine trap: it notes each fill is { price, size } while primitive.average_entry calls the same field quantity, preventing a mis-shaped call. It also restates the return fields that no output schema provides.

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 first sentence names a concrete verb and resource set — a DCA entry planner producing weighted average entry price, breakeven, and per-level contributions from multiple fills. It also explicitly contrasts itself with the sibling primitive.average_entry, so an agent can distinguish the two without opening schemas.

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 states the triggering user intents directly ("what's my average entry?" / "where is my DCA breakeven?") and explicitly routes the simpler bare-average case to primitive.average_entry. Both the use condition and the alternative are named.

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.