Skip to main content
Glama

OneQAZ Trading Intelligence

get_positions

Read-onlyIdempotent

Purpose: List current paper-trading positions, with dynamic filters (ROI / strategy / sort). Triggers (casual questions too): "what are you holding?", "current positions?", "뭐 들고 있어?", "what's the exposure / portfolio?", "any winners / losers right now?", "how's the book doing?". Paper-trading positions (NOT real money). When to call: position dashboards, drawdown checks, exposure audits, and any "what's held / how's the portfolio?" question. Prerequisites: market://{market_id}/status recommended for context. Next steps: get_position_detail, get_strategy_distribution. Caveats: paper-trading data only. Positions are not real money holdings.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNoMax rows returned (default 50, max 1000). Rows are paginated; see total_available / truncated. NOTE: stats (profitable, avg_pnl, avg_ai_score) are aggregated over all open positions, not over the returned rows — see stats_scope.
max_roiNoMax ROI % filter (e.g., 10.0)
min_roiNoMin ROI % filter (e.g., -5.0)
sort_byNoSort field (profit_loss_pct, entry_timestamp, holding_duration, ai_score)profit_loss_pct
strategyNoStrategy filter (e.g., trend, scalping)
market_idYesMarket ID (crypto, kr_stock, us_stock). Aliases coin/kr/us and any letter case are accepted.
sort_orderNoSort direction (desc, asc)desc

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
full_dataNo
timestampYesRFC3339 UTC, server build time
disclaimerYesCanonical compliance disclaimer (always present)
request_idYes32-hex per-response correlation id
is_real_moneyNo
data_classificationNo
is_investment_adviceNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed17 schema fields changed
    • removedOutput schema / properties / _followup_questions_for_user
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "items": {
      -        "type": "string"
      -      },
      -      "type": "array"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ],
      -  "default": null
      -}
    • removedOutput schema / properties / _llm_summary
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "type": "string"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ],
      -  "default": null
      -}
    • removedOutput schema / properties / _market_state_narrative
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "additionalProperties": true,
      -      "description": "Wrapper for `_market_state_narrative` — bilingual + provenance.",
      -      "properties": {
      -        "_source": {
      -          "anyOf": [
      -            {
      -              "type": "string"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ],
      -          "default": null
      -        },
      -        "en": {
      -          "anyOf": [
      -            {
      -              "additionalProperties": true,
      -              "description": "Bilingual narrative — one of {ko, en} must carry a headline.",
      -              "properties": {
      -                "evidence": {
      -                  "items": {
      -                    "type": "string"
      -                  },
      -                  "type": "array"
      -                },
      -                "headline": {
      -                  "type": "string"
      -                },
      -                "what_to_watch": {
      -                  "anyOf": [
      -                    {
      -                      "type": "string"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ],
      -                  "default": null
      -                }
      -              },
      -              "required": [
      -                "headline"
      -              ],
      -              "type": "object"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ],
      -          "default": null
      -        },
      -        "ko": {
      -          "anyOf": [
      -            {
      -              "additionalProperties": true,
      -              "description": "Bilingual narrative — one of {ko, en} must carry a headline.",
      -              "properties": {
      -                "evidence": {
      -                  "items": {
      -                    "type": "string"
      -                  },
      -                  "type": "array"
      -                },
      -                "headline": {
      -                  "type": "string"
      -                },
      -                "what_to_watch": {
      -                  "anyOf": [
      -                    {
      -                      "type": "string"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ],
      -                  "default": null
      -                }
      -              },
      -              "required": [
      -                "headline"
      -              ],
      -              "type": "object"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ],
      -          "default": null
      -        }
      -      },
      -      "type": "object"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ],
      -  "default": null
      -}
    • removedOutput schema / properties / _next_actions
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "items": {
      -        "additionalProperties": true,
      -        "description": "One AI-actionable follow-up call recommendation.",
      -        "properties": {
      -          "args": {
      -            "additionalProperties": true,
      -            "type": "object"
      -          },
      -          "intent": {
      -            "description": "Short intent label, max ~120 chars",
      -            "type": "string"
      -          },
      -          "priority": {
      -            "default": "normal",
      -            "enum": [
      -              "high",
      -              "normal",
      -              "low"
      -            ],
      -            "type": "string"
      -          },
      -          "rationale": {
      -            "default": "",
      -            "description": "Why this is recommended",
      -            "type": "string"
      -          },
      -          "tool": {
      -            "description": "Recommended tool name to invoke next",
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "intent",
      -          "tool"
      -        ],
      -        "type": "object"
      -      },
      -      "type": "array"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ],
      -  "default": null
      -}
    • removedOutput schema / properties / _value_signals
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "additionalProperties": true,
      -      "description": "Static product/value metadata — same for every response of a tool type.",
      -      "properties": {
      -        "data_freshness_seconds": {
      -          "default": 120,
      -          "type": "integer"
      -        },
      -        "key_signup_url": {
      -          "default": "https://api.oneqaz.com/keys",
      -          "type": "string"
      -        },
      -        "pricing_url": {
      -          "default": "https://api.oneqaz.com/pricing",
      -          "type": "string"
      -        },
      -        "schema_version": {
      -          "default": "1.1",
      -          "type": "string"
      -        },
      -        "self_correcting": {
      -          "default": true,
      -          "type": "boolean"
      -        },
      -        "tier_default": {
      -          "default": "free",
      -          "enum": [
      -            "free",
      -            "pro",
      -            "internal"
      -          ],
      -          "type": "string"
      -        },
      -        "tier_default_limits": {
      -          "additionalProperties": {
      -            "type": "integer"
      -          },
      -          "type": "object"
      -        },
      -        "what_pro_unlocks": {
      -          "default": "33x daily quota (50K), 3.3x burst (200/min) — same tools, higher volume",
      -          "type": "string"
      -        }
      -      },
      -      "type": "object"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ],
      -  "default": null
      -}
    • removedOutput schema / properties / action
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "type": "string"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ],
      -  "default": null,
      -  "description": "Recommended client action (error path)"
      -}
    • removedOutput schema / properties / action_value
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "type": "string"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ],
      -  "default": null
      -}
    • removedOutput schema / properties / ai_summary
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "type": "string"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ],
      -  "default": null,
      -  "description": "One-line AI-oriented summary (success path)"
      -}
    • removedOutput schema / properties / ai_summary_generated_at
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "type": "string"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ],
      -  "default": null,
      -  "description": "RFC3339 UTC"
      -}
    • removedOutput schema / properties / ai_summary_ttl_seconds
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "minimum": 0,
      -      "type": "integer"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ],
      -  "default": null
      -}
    • removedOutput schema / properties / error
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "type": "boolean"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ],
      -  "default": null,
      -  "description": "Set true on error responses"
      -}
    • removedOutput schema / properties / error_code
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "type": "string"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ],
      -  "default": null,
      -  "description": "Stable error identifier; see mcp_error_policy.md"
      -}
    • removedOutput schema / properties / fallback_note
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "type": "string"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ],
      -  "default": null
      -}
    • removedOutput schema / properties / fallback_tool
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "type": "string"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ],
      -  "default": null,
      -  "description": "Suggested fallback (error path)"
      -}
    • removedOutput schema / properties / reason
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "type": "string"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ],
      -  "default": null,
      -  "description": "Human-readable cause (error path)"
      -}
    • removedOutput schema / properties / retryable
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "type": "boolean"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ],
      -  "default": null,
      -  "description": "Whether the client should retry (error path)"
      -}
    • removedOutput schema / properties / summary_for_user
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "type": "string"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ],
      -  "default": null,
      -  "description": "One-line jargon-free Korean summary (success path)"
      -}
  2. Changed2 schema fields changed
    • changedInput schema / properties / limit / default
      Previous value: -1000New value: +50
    • changedInput schema / properties / limit / description
      Previous value: -"Max results (default 1000)"New value: +"Max rows returned (default 50, max 1000). Rows are paginated; see total_available / truncated. NOTE: stats (profitable, avg_pnl, avg_ai_score) are aggregated over all open positions, not over the returned rows — see stats_scope."
  3. Changed8 schema fields changed
    • addedInput schema / properties / limit / description
      Added value: +"Max results (default 1000)"
    • addedInput schema / properties / market_id / description
      Added value: +"Market ID (crypto, kr_stock, us_stock). Aliases coin/kr/us and any letter case are accepted."
    • addedInput schema / properties / market_id / enum
      Added value: +[
      +  "crypto",
      +  "kr_stock",
      +  "us_stock"
      +]
    • addedInput schema / properties / max_roi / description
      Added value: +"Max ROI % filter (e.g., 10.0)"
    • addedInput schema / properties / min_roi / description
      Added value: +"Min ROI % filter (e.g., -5.0)"
    • addedInput schema / properties / sort_by / description
      Added value: +"Sort field (profit_loss_pct, entry_timestamp, holding_duration, ai_score)"
    • addedInput schema / properties / sort_order / description
      Added value: +"Sort direction (desc, asc)"
    • addedInput schema / properties / strategy / description
      Added value: +"Strategy filter (e.g., trend, scalping)"
  4. Changed1 schema field changed
    • changedOutput schema / properties / _value_signals / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": true,
      -    "description": "Static product/value metadata — same for every response of a tool type.",
      -    "properties": {
      -      "data_freshness_seconds": {
      -        "default": 120,
      -        "type": "integer"
      -      },
      -      "key_signup_url": {
      -        "default": "https://api.oneqaz.com/keys",
      -        "type": "string"
      -      },
      -      "pricing_url": {
      -        "default": "https://api.oneqaz.com/pricing",
      -        "type": "string"
      -      },
      -      "schema_version": {
      -        "default": "1.0",
      -        "type": "string"
      -      },
      -      "self_correcting": {
      -        "default": true,
      -        "type": "boolean"
      -      },
      -      "tier_default": {
      -        "default": "free",
      -        "enum": [
      -          "free",
      -          "pro",
      -          "internal"
      -        ],
      -        "type": "string"
      -      },
      -      "tier_default_limits": {
      -        "additionalProperties": {
      -          "type": "integer"
      -        },
      -        "type": "object"
      -      },
      -      "what_pro_unlocks": {
      -        "default": "33x daily quota (50K), 3.3x burst (200/min) — same tools, higher volume",
      -        "type": "string"
      -      }
      -    },
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": true,
      +    "description": "Static product/value metadata — same for every response of a tool type.",
      +    "properties": {
      +      "data_freshness_seconds": {
      +        "default": 120,
      +        "type": "integer"
      +      },
      +      "key_signup_url": {
      +        "default": "https://api.oneqaz.com/keys",
      +        "type": "string"
      +      },
      +      "pricing_url": {
      +        "default": "https://api.oneqaz.com/pricing",
      +        "type": "string"
      +      },
      +      "schema_version": {
      +        "default": "1.1",
      +        "type": "string"
      +      },
      +      "self_correcting": {
      +        "default": true,
      +        "type": "boolean"
      +      },
      +      "tier_default": {
      +        "default": "free",
      +        "enum": [
      +          "free",
      +          "pro",
      +          "internal"
      +        ],
      +        "type": "string"
      +      },
      +      "tier_default_limits": {
      +        "additionalProperties": {
      +          "type": "integer"
      +        },
      +        "type": "object"
      +      },
      +      "what_pro_unlocks": {
      +        "default": "33x daily quota (50K), 3.3x burst (200/min) — same tools, higher volume",
      +        "type": "string"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
  5. Changed1 schema field changed
    • changedOutput schema / properties / _value_signals / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": true,
      -    "description": "Static product/value metadata — same for every response of a tool type.",
      -    "properties": {
      -      "data_freshness_seconds": {
      -        "default": 120,
      -        "type": "integer"
      -      },
      -      "key_signup_url": {
      -        "default": "https://oneqaz.com/keys",
      -        "type": "string"
      -      },
      -      "pricing_url": {
      -        "default": "https://oneqaz.com/pricing",
      -        "type": "string"
      -      },
      -      "schema_version": {
      -        "default": "1.0",
      -        "type": "string"
      -      },
      -      "self_correcting": {
      -        "default": true,
      -        "type": "boolean"
      -      },
      -      "tier_default": {
      -        "default": "free",
      -        "enum": [
      -          "free",
      -          "pro",
      -          "internal"
      -        ],
      -        "type": "string"
      -      },
      -      "tier_default_limits": {
      -        "additionalProperties": {
      -          "type": "integer"
      -        },
      -        "type": "object"
      -      },
      -      "what_pro_unlocks": {
      -        "default": "33x daily quota (50K), 3.3x burst (200/min) — same tools, higher volume",
      -        "type": "string"
      -      }
      -    },
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": true,
      +    "description": "Static product/value metadata — same for every response of a tool type.",
      +    "properties": {
      +      "data_freshness_seconds": {
      +        "default": 120,
      +        "type": "integer"
      +      },
      +      "key_signup_url": {
      +        "default": "https://api.oneqaz.com/keys",
      +        "type": "string"
      +      },
      +      "pricing_url": {
      +        "default": "https://api.oneqaz.com/pricing",
      +        "type": "string"
      +      },
      +      "schema_version": {
      +        "default": "1.0",
      +        "type": "string"
      +      },
      +      "self_correcting": {
      +        "default": true,
      +        "type": "boolean"
      +      },
      +      "tier_default": {
      +        "default": "free",
      +        "enum": [
      +          "free",
      +          "pro",
      +          "internal"
      +        ],
      +        "type": "string"
      +      },
      +      "tier_default_limits": {
      +        "additionalProperties": {
      +          "type": "integer"
      +        },
      +        "type": "object"
      +      },
      +      "what_pro_unlocks": {
      +        "default": "33x daily quota (50K), 3.3x burst (200/min) — same tools, higher volume",
      +        "type": "string"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
  6. Changed2 schema fields changed
    • addedOutput schema / properties
      Added value: +{
      +  "_followup_questions_for_user": {
      +    "anyOf": [
      +      {
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null
      +  },
      +  "_llm_summary": {
      +    "anyOf": [
      +      {
      +        "type": "string"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null
      +  },
      +  "_market_state_narrative": {
      +    "anyOf": [
      +      {
      +        "additionalProperties": true,
      +        "description": "Wrapper for `_market_state_narrative` — bilingual + provenance.",
      +        "properties": {
      +          "_source": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null
      +          },
      +          "en": {
      +            "anyOf": [
      +              {
      +                "additionalProperties": true,
      +                "description": "Bilingual narrative — one of {ko, en} must carry a headline.",
      +                "properties": {
      +                  "evidence": {
      +                    "items": {
      +                      "type": "string"
      +                    },
      +                    "type": "array"
      +                  },
      +                  "headline": {
      +                    "type": "string"
      +                  },
      +                  "what_to_watch": {
      +                    "anyOf": [
      +                      {
      +                        "type": "string"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ],
      +                    "default": null
      +                  }
      +                },
      +                "required": [
      +                  "headline"
      +                ],
      +                "type": "object"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null
      +          },
      +          "ko": {
      +            "anyOf": [
      +              {
      +                "additionalProperties": true,
      +                "description": "Bilingual narrative — one of {ko, en} must carry a headline.",
      +                "properties": {
      +                  "evidence": {
      +                    "items": {
      +                      "type": "string"
      +                    },
      +                    "type": "array"
      +                  },
      +                  "headline": {
      +                    "type": "string"
      +                  },
      +                  "what_to_watch": {
      +                    "anyOf": [
      +                      {
      +                        "type": "string"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ],
      +                    "default": null
      +                  }
      +                },
      +                "required": [
      +                  "headline"
      +                ],
      +                "type": "object"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null
      +          }
      +        },
      +        "type": "object"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null
      +  },
      +  "_next_actions": {
      +    "anyOf": [
      +      {
      +        "items": {
      +          "additionalProperties": true,
      +          "description": "One AI-actionable follow-up call recommendation.",
      +          "properties": {
      +            "args": {
      +              "additionalProperties": true,
      +              "type": "object"
      +            },
      +            "intent": {
      +              "description": "Short intent label, max ~120 chars",
      +              "type": "string"
      +            },
      +            "priority": {
      +              "default": "normal",
      +              "enum": [
      +                "high",
      +                "normal",
      +                "low"
      +              ],
      +              "type": "string"
      +            },
      +            "rationale": {
      +              "default": "",
      +              "description": "Why this is recommended",
      +              "type": "string"
      +            },
      +            "tool": {
      +              "description": "Recommended tool name to invoke next",
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "intent",
      +            "tool"
      +          ],
      +          "type": "object"
      +        },
      +        "type": "array"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null
      +  },
      +  "_value_signals": {
      +    "anyOf": [
      +      {
      +        "additionalProperties": true,
      +        "description": "Static product/value metadata — same for every response of a tool type.",
      +        "properties": {
      +          "data_freshness_seconds": {
      +            "default": 120,
      +            "type": "integer"
      +          },
      +          "key_signup_url": {
      +            "default": "https://oneqaz.com/keys",
      +            "type": "string"
      +          },
      +          "pricing_url": {
      +            "default": "https://oneqaz.com/pricing",
      +            "type": "string"
      +          },
      +          "schema_version": {
      +            "default": "1.0",
      +            "type": "string"
      +          },
      +          "self_correcting": {
      +            "default": true,
      +            "type": "boolean"
      +          },
      +          "tier_default": {
      +            "default": "free",
      +            "enum": [
      +              "free",
      +              "pro",
      +              "internal"
      +            ],
      +            "type": "string"
      +          },
      +          "tier_default_limits": {
      +            "additionalProperties": {
      +              "type": "integer"
      +            },
      +            "type": "object"
      +          },
      +          "what_pro_unlocks": {
      +            "default": "33x daily quota (50K), 3.3x burst (200/min) — same tools, higher volume",
      +            "type": "string"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null
      +  },
      +  "action": {
      +    "anyOf": [
      +      {
      +        "type": "string"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null,
      +    "description": "Recommended client action (error path)"
      +  },
      +  "action_value": {
      +    "anyOf": [
      +      {
      +        "type": "string"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null
      +  },
      +  "ai_summary": {
      +    "anyOf": [
      +      {
      +        "type": "string"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null,
      +    "description": "One-line AI-oriented summary (success path)"
      +  },
      +  "ai_summary_generated_at": {
      +    "anyOf": [
      +      {
      +        "type": "string"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null,
      +    "description": "RFC3339 UTC"
      +  },
      +  "ai_summary_ttl_seconds": {
      +    "anyOf": [
      +      {
      +        "minimum": 0,
      +        "type": "integer"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null
      +  },
      +  "data_classification": {
      +    "anyOf": [
      +      {
      +        "const": "research_information_only",
      +        "type": "string"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null
      +  },
      +  "disclaimer": {
      +    "description": "Canonical compliance disclaimer (always present)",
      +    "type": "string"
      +  },
      +  "error": {
      +    "anyOf": [
      +      {
      +        "type": "boolean"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null,
      +    "description": "Set true on error responses"
      +  },
      +  "error_code": {
      +    "anyOf": [
      +      {
      +        "type": "string"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null,
      +    "description": "Stable error identifier; see mcp_error_policy.md"
      +  },
      +  "fallback_note": {
      +    "anyOf": [
      +      {
      +        "type": "string"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null
      +  },
      +  "fallback_tool": {
      +    "anyOf": [
      +      {
      +        "type": "string"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null,
      +    "description": "Suggested fallback (error path)"
      +  },
      +  "full_data": {
      +    "anyOf": [
      +      {
      +        "additionalProperties": true,
      +        "description": "`full_data` for get_positions.",
      +        "properties": {
      +          "market_id": {
      +            "type": "string"
      +          },
      +          "positions": {
      +            "items": {
      +              "additionalProperties": true,
      +              "properties": {
      +                "ai_score": {
      +                  "anyOf": [
      +                    {
      +                      "type": "number"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ],
      +                  "default": null
      +                },
      +                "current_price": {
      +                  "anyOf": [
      +                    {
      +                      "type": "number"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ],
      +                  "default": null
      +                },
      +                "current_strategy": {
      +                  "anyOf": [
      +                    {
      +                      "type": "string"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ],
      +                  "default": null
      +                },
      +                "entry_price": {
      +                  "anyOf": [
      +                    {
      +                      "type": "number"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ],
      +                  "default": null
      +                },
      +                "entry_timestamp": {
      +                  "anyOf": [
      +                    {
      +                      "type": "integer"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ],
      +                  "default": null
      +                },
      +                "holding_duration": {
      +                  "anyOf": [
      +                    {
      +                      "type": "integer"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ],
      +                  "default": null
      +                },
      +                "profit_loss_pct": {
      +                  "anyOf": [
      +                    {
      +                      "type": "number"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ],
      +                  "default": null
      +                },
      +                "quantity": {
      +                  "anyOf": [
      +                    {
      +                      "type": "number"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ],
      +                  "default": null
      +                },
      +                "symbol": {
      +                  "type": "string"
      +                }
      +              },
      +              "required": [
      +                "symbol"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "stats": {
      +            "anyOf": [
      +              {
      +                "additionalProperties": true,
      +                "properties": {
      +                  "avg_pnl": {
      +                    "anyOf": [
      +                      {
      +                        "type": "number"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ],
      +                    "default": null
      +                  },
      +                  "losing": {
      +                    "anyOf": [
      +                      {
      +                        "type": "integer"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ],
      +                    "default": null
      +                  },
      +                  "profitable": {
      +                    "anyOf": [
      +                      {
      +                        "type": "integer"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ],
      +                    "default": null
      +                  },
      +                  "total": {
      +                    "anyOf": [
      +                      {
      +                        "type": "integer"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ],
      +                    "default": null
      +                  },
      +                  "total_positions": {
      +                    "anyOf": [
      +                      {
      +                        "type": "integer"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ],
      +                    "default": null
      +                  }
      +                },
      +                "type": "object"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null
      +          }
      +        },
      +        "required": [
      +          "market_id"
      +        ],
      +        "type": "object"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null
      +  },
      +  "is_investment_advice": {
      +    "anyOf": [
      +      {
      +        "const": false,
      +        "type": "boolean"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null
      +  },
      +  "is_real_money": {
      +    "anyOf": [
      +      {
      +        "const": false,
      +        "type": "boolean"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null
      +  },
      +  "reason": {
      +    "anyOf": [
      +      {
      +        "type": "string"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null,
      +    "description": "Human-readable cause (error path)"
      +  },
      +  "request_id": {
      +    "description": "32-hex per-response correlation id",
      +    "type": "string"
      +  },
      +  "retryable": {
      +    "anyOf": [
      +      {
      +        "type": "boolean"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null,
      +    "description": "Whether the client should retry (error path)"
      +  },
      +  "summary_for_user": {
      +    "anyOf": [
      +      {
      +        "type": "string"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null,
      +    "description": "One-line jargon-free Korean summary (success path)"
      +  },
      +  "timestamp": {
      +    "description": "RFC3339 UTC, server build time",
      +    "type": "string"
      +  }
      +}
    • addedOutput schema / required
      Added value: +[
      +  "disclaimer",
      +  "request_id",
      +  "timestamp"
      +]
  7. First observed

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already disclose read-only and idempotent behavior, so the description's key extra contribution is the paper-trading-only caveat and the explicit warning that positions are not real money. It also mentions dynamic filter behavior, but pagination and stats-scope nuances are left to the schema rather than the main description.

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?

The description is well-structured with short labeled bullets and front-loads the core purpose before triggers and caveats. The trigger list is somewhat redundant with the 'When to call' section, but the multi-language examples and explicit next steps earn their place without bloating the text.

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?

Given the rich annotations, fully documented input schema, and presence of an output schema, the description covers purpose, triggers, when-to-call conditions, prerequisites, next steps, and a critical caveat. Nothing essential for correct invocation is missing.

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

Parameters3/5

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

Schema description coverage is 100%, with detailed parameter descriptions, defaults, examples, enums, and alias behavior, so the schema carries the burden. The main description's 'ROI / strategy / sort' phrasing gives a useful high-level grouping but adds no parameter-level meaning beyond what the input schema already 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 description opens with a specific verb and object: 'List current paper-trading positions' with dynamic filters, and immediately distinguishes the tool's scope by emphasizing paper-trading rather than real-money holdings. This makes it clearly distinct from sibling tools like get_position_detail, get_profitable_positions, or get_losing_positions even without opening their schemas.

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?

There is an explicit 'When to call' section, concrete trigger examples, prerequisites, and next steps, so an agent knows exactly when to invoke this tool. However, it never explicitly states when to prefer specialized siblings such as get_profitable_positions or get_losing_positions, nor does it give any 'do not use when...' guidance.

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.