Skip to main content
Glama

My open positions

get_my_open_positions
Read-onlyIdempotent

Every open perpetual futures position on every connected exchange account: side, size, entry, mark, open profit or loss, leverage, the liquidation price with how far away it is, and the trade plan left on it (set_position_plan_close_or_notify_later). Use first in a new session, and before closing, adjusting a stop or reporting exposure. Not for resting orders or stops (use get_my_open_orders). No inputs. Sizes in the base coin, prices in USD. Next: close_perp_position_reduce_only or get_my_open_orders.

Input Schema

NameRequiredDescriptionDefault

No arguments

Output Schema

NameRequiredDescriptionDefault
positionsYesOpen positions on every connected venue
deprecationNoPresent only while this tool is deprecated: replacement, removal_date, changelog

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • addedOutput schema / $defs / PlanOut
      Added value: +{
      +  "additionalProperties": true,
      +  "properties": {
      +    "created_at": {
      +      "description": "When it was set, ISO 8601 UTC",
      +      "title": "Created At",
      +      "type": "string"
      +    },
      +    "created_by": {
      +      "description": "Agent id that set the plan, or person",
      +      "title": "Created By",
      +      "type": "string"
      +    },
      +    "deprecation": {
      +      "anyOf": [
      +        {
      +          "additionalProperties": true,
      +          "type": "object"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "description": "Present only while this tool is deprecated: replacement, removal_date, changelog",
      +      "title": "Deprecation"
      +    },
      +    "plan_id": {
      +      "description": "Plan id",
      +      "title": "Plan Id",
      +      "type": "string"
      +    },
      +    "rules": {
      +      "description": "The rules, each fired at most once",
      +      "items": {
      +        "$ref": "#/$defs/PlanRuleOut"
      +      },
      +      "title": "Rules",
      +      "type": "array"
      +    },
      +    "status": {
      +      "description": "active, done, ended, replaced or cancelled",
      +      "title": "Status",
      +      "type": "string"
      +    },
      +    "symbol": {
      +      "description": "Base coin",
      +      "title": "Symbol",
      +      "type": "string"
      +    },
      +    "thesis": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "description": "Why the position is held, as its author wrote it; present only for the agent that wrote it and the person",
      +      "title": "Thesis"
      +    },
      +    "venue": {
      +      "description": "Venue name",
      +      "title": "Venue",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "plan_id",
      +    "venue",
      +    "symbol",
      +    "rules",
      +    "created_by",
      +    "created_at",
      +    "status"
      +  ],
      +  "title": "PlanOut",
      +  "type": "object"
      +}
    • addedOutput schema / $defs / PlanRuleOut
      Added value: +{
      +  "additionalProperties": true,
      +  "properties": {
      +    "action": {
      +      "description": "notify or close",
      +      "title": "Action",
      +      "type": "string"
      +    },
      +    "close_pct": {
      +      "anyOf": [
      +        {
      +          "type": "number"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "description": "close: percent of the position it closes",
      +      "title": "Close Pct"
      +    },
      +    "deprecation": {
      +      "anyOf": [
      +        {
      +          "additionalProperties": true,
      +          "type": "object"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "description": "Present only while this tool is deprecated: replacement, removal_date, changelog",
      +      "title": "Deprecation"
      +    },
      +    "fired_at": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "description": "When it fired, ISO 8601 UTC; null while waiting",
      +      "title": "Fired At"
      +    },
      +    "outcome": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "description": "notified, closed, or the error code that stopped the close",
      +      "title": "Outcome"
      +    },
      +    "value": {
      +      "description": "price_*: USD per coin; held_hours: hours since the plan was set; funding_above: yearly rate this position pays, as a fraction (0.5 = 50%)",
      +      "title": "Value",
      +      "type": "number"
      +    },
      +    "when": {
      +      "description": "price_above, price_below, held_hours or funding_above",
      +      "title": "When",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "when",
      +    "value",
      +    "action"
      +  ],
      +  "title": "PlanRuleOut",
      +  "type": "object"
      +}
    • addedOutput schema / $defs / PositionOut / properties / plan
      Added value: +{
      +  "anyOf": [
      +    {
      +      "$ref": "#/$defs/PlanOut"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "The trade plan on this position (set_position_plan_close_or_notify_later), if any"
      +}
  2. First observed

TDQS

A4.6/5.0
Behavior4/5

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

The annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is covered. The description adds real context beyond them: cross-account coverage, that there are no inputs, and that sizes are in the base coin while prices are in USD — unit conventions the annotations do not convey. It does not mention authentication or latency, which is a minor gap for a read-only tool.

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 front-loaded with the scope and returned fields, then usage, exclusions, and follow-ups — a logical order with no filler. The only redundancy is that get_my_open_orders appears twice, once as the excluded alternative and again in the 'Next:' list, which slightly muddies the routing signal.

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?

An output schema exists, so return values need not be explained, and the description still summarizes the payload shape. With no parameters, a complete safety annotation set, and covered units, scope, exclusions, and follow-up actions, an agent has everything needed to select and call this tool correctly.

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?

There are zero parameters, so the baseline is 4 and nothing needs compensating for. The description confirms 'No inputs' explicitly, removing any doubt that the call takes arguments and reinforcing the unit conventions used in the response.

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 names a specific resource (open perpetual futures positions), its scope (every connected exchange account), and enumerates the fields returned: side, size, entry, mark, P&L, leverage, liquidation price and distance, and attached trade plan. It explicitly separates itself from resting orders and stops, which are handled by get_my_open_orders. An agent can distinguish it from every sibling without reading a 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?

It gives explicit when-to-use cues ('Use first in a new session, and before closing, adjusting a stop or reporting exposure'), an explicit when-not ('Not for resting orders or stops (use get_my_open_orders)'), and names the recommended follow-up tools. Both the alternative and the condition that selects it are stated, so nothing is left to inference.

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