Skip to main content
Glama

Change a paper position

arena_edit

Changes one of the caller's open paper positions. Use after arena_state for the id; to end a position use arena_close. kind: claim pays the fees waiting to cash; compound puts them back into the rungs; add puts amountUsd more in, in the position's shape; withdraw takes pct of every rung out to cash; rebalance lays the band again at the price now from plan; auto sets the autopilot rules (take profit, stop loss, re-lay, harvest, compound), run for you like the live pilot. Returns: position (as it stands after the change), cashUsd. Behavior: writes to the account at the pool's price now; the field the kind needs is checked before anything changes. Heavy: costs 3 units and a heavy slot. Errors: refused when the id is not one of the caller's open positions, cash is short for an add, or the kind's field is missing (amountUsd for add, pct for withdraw, plan for rebalance, rules for auto).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
idYesThe position's id, from arena_state or arena_open.
pctNoWith kind withdraw: the percent of every rung to take out to cash, 1 to 99.
kindYesWhat to do: claim, compound, add, withdraw, rebalance or auto.
planNoWith kind rebalance: the new band and shape, laid at the price now.
rulesNoWith kind auto: the autopilot rules; every rule at 0 or false turns the autopilot off.
amountUsdNoWith kind add: play dollars to put in, from cash.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed16 schema fields changed
    • changedInput schema / properties / amountUsd / description
      Previous value: -"add"New value: +"With kind add: play dollars to put in, from cash."
    • addedInput schema / properties / id / description
      Added value: +"The position's id, from arena_state or arena_open."
    • addedInput schema / properties / kind / description
      Added value: +"What to do: claim, compound, add, withdraw, rebalance or auto."
    • changedInput schema / properties / pct / description
      Previous value: -"withdraw"New value: +"With kind withdraw: the percent of every rung to take out to cash, 1 to 99."
    • changedInput schema / properties / plan / description
      Previous value: -"rebalance"New value: +"With kind rebalance: the new band and shape, laid at the price now."
    • addedInput schema / properties / plan / properties / fullRange / description
      Added value: +"True lays the whole price range instead of the band; lowPct and highPct are then ignored."
    • changedInput schema / properties / plan / properties / rungs / description
      Previous value: -"default 16"New value: +"How many rungs the band is cut into, 1 to 40; default 16."
    • changedInput schema / properties / plan / properties / shape / description
      Previous value: -"default hybrid"New value: +"How the money is spread over the rungs: spot (even), curve (most at the price), bidask (most at the edges), hybrid (between), custom (weights); default hybrid."
    • changedInput schema / properties / plan / properties / weights / description
      Previous value: -"shape custom: a height per rung, low price to high; relative, any scale"New value: +"With shape custom: a relative height per rung, low price to high, any scale; resampled to the rung count."
    • changedInput schema / properties / rules / description
      Previous value: -"auto"New value: +"With kind auto: the autopilot rules; every rule at 0 or false turns the autopilot off."
    • addedInput schema / properties / rules / properties / autoCompound / description
      Added value: +"True puts the fees earned back into the rungs once a day."
    • addedInput schema / properties / rules / properties / followPct / description
      Added value: +"Re-lay once the price has drifted this percent from the price the band was laid at, in a direction the rebalance rule allows; 0 off, else 1 to 100."
    • addedInput schema / properties / rules / properties / harvestUsd / description
      Added value: +"Claim the fees to cash once they reach this many dollars; 0 off."
    • addedInput schema / properties / rules / properties / rebalanceFeeBps / description
      Added value: +"Re-lay only once the fees earned since the last lay reach this share of the position, in basis points; 0 means at once."
    • addedInput schema / properties / rules / properties / stopLossBps / description
      Added value: +"Close the position once its loss reaches this many basis points; 0 off."
    • addedInput schema / properties / rules / properties / takeProfitBps / description
      Added value: +"Close the position once its gain reaches this many basis points; 0 off."
  2. Added

TDQS

A4.9/5.0
Behavior5/5

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

Annotations declare a non-readOnly, non-idempotent write, but the description adds material behavior beyond them: writes at the pool's price now, validates the kind's field before any mutation, costs 3 units and a heavy slot, and enumerates the refusal conditions (id not open, cash short for add, missing field per kind). This is exactly the extra 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?

Highly dense with no filler and front-loaded with purpose before mechanics. It does read as a long semicolon-chained run-on, which slightly hurts scannability, but every clause carries information.

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 6-parameter tool with nested objects and no output schema, the description covers returns (position and cashUsd), side effects, cost, and failure modes. Nothing an agent needs to invoke it correctly is missing.

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?

Schema coverage is 100%, so the baseline is 3, but the description adds genuinely new semantics the schema lacks — the behavior of each kind enum value (claim pays waiting fees to cash, compound reinvests, add puts amountUsd in, withdraw takes pct of every rung, rebalance re-lays the band from plan, auto sets autopilot rules) and which field each kind requires. That is meaningful meaning beyond the structured fields.

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?

States a specific verb+resource ('Changes one of the caller's open paper positions') and immediately scopes it against siblings by naming arena_state for the id and arena_close for ending a position. An agent can distinguish this from arena_open, arena_close and arena_state without opening any schema.

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?

Gives explicit prerequisites ('Use after arena_state for the id'), an explicit exclusion with the alternative tool ('to end a position use arena_close'), and per-kind guidance on what each kind does. When-to-use is fully covered.

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