Skip to main content
Glama

Open a position (market entry + optional bracket)

open_position

Enter a NEW position with a MARKET order, sized by base size OR quote notionalUsd (exactly one required; notionalUsd converts at the oracle price and is floored to the step size). Optionally attach a reduce-only stopLossPrice and/or takeProfitPrice as conditional orders in the SAME call (the bracket, placed with the opposite/closing side and a 500 bps execution bound past the trigger). slippageBps caps the entry fill vs oracle (default 500). Returns the entry confirmation plus any bracket order ids. Bracket legs are placed only if the entry broadcast succeeds; each is reduce-only so it can only close, never flip.

Input Schema

NameRequiredDescriptionDefault
sideYes
sizeNoPosition size in base units.
marketYesMarket ticker, e.g. BTC-USD
confirmNo
notionalUsdNoPosition size in quote USD (converted at oracle). Use instead of size.
slippageBpsNoMax slippage vs oracle for the entry, in bps (default 500).
stopLossPriceNoAttach a reduce-only stop-loss trigger at this price.
takeProfitPriceNoAttach a reduce-only take-profit trigger at this price.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / market / pattern
      Added value: +"^[A-Z0-9]{1,20}-[A-Z0-9]{1,20}$"
  2. Changed1 schema field changed
    • changedInput schema / properties / slippageBps / description
      Previous value: -"Max slippage vs oracle, in bps"New value: +"Max slippage vs oracle for the entry, in bps (default 500)."
  3. Added

TDQS

A4.4/5.0
Behavior5/5

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

With annotations only covering readOnly/idempotent/destructive hints, the description adds rich behavioral detail far beyond structured fields: market entry semantics, notional conversion at oracle and step-size flooring, bracket legs placed with opposite side and a 500 bps execution bound past trigger, bracket only placed if entry broadcast succeeds, and reduce-only enforcement preventing flips. This is exactly the kind of operation-specific transparency the dimension rewards.

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 dense but front-loads purpose and sizing before bracket, slippage, returns, and safety details. Every sentence carries operational information: no filler, no repetition of obvious schema content. Length is appropriate for an 8-parameter mutation tool with bracket semantics.

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?

Although there is no output schema, the description explains the return value (entry confirmation plus bracket order ids). Combined with annotations, the description covers entry mechanics, bracket behavior, failure conditions, and sizing rules, leaving no significant gap for an agent to invoke this tool correctly.

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 75%, but the description adds substantial meaning beyond the schema: exactly one of size/notionalUsd is required, notionalUsd converts at oracle price and is floored to step size, slippageBps caps entry fill vs oracle with default 500, and stopLossPrice/takeProfitPrice are reduce-only conditional orders with specific placement behavior. These are non-obvious parameter relationships and conversions not captured in the schema.

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 and resource: 'Enter a NEW position with a MARKET order.' It clarifies scope with sizing logic and optional bracket attachments, which differentiates it from generic order-placement siblings. However, it never explicitly names or contrasts with specific alternatives like place_market_order or place_limit_order, so sibling differentiation relies on inference from the name and scope rather than explicit routing.

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

Usage Guidelines3/5

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

The phrase 'Optionally attach ... in the SAME call' implies the tool's use case: opening a new position and atomically attaching stop-loss/take-profit legs. Yet there is no explicit when-to-use vs. alternatives guidance (e.g., 'use this instead of place_market_order when you want a bracket'), nor any when-not-to-use or prerequisite conditions. Usage is therefore implied rather than stated.

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