Skip to main content
Glama

OneQAZ Trading Intelligence

get_winning_trades

Read-onlyIdempotent

Purpose: Winning paper trades only (P&L > 0). Convenience wrapper around get_trade_history(min_pnl=0.01). Triggers (casual questions too): "what worked?", "뭐가 제일 잘 벌었어?", "show me the winners", "best trades lately?", "수익 난 거래 보여줘". When to call: success-pattern review. Prerequisites: none. Next steps: analyze_trades for breakdowns. Caveats: paper-trading data only.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNoMax results (default 10)
market_idYesMarket ID (crypto, kr_stock, us_stock; aliases coin/kr/us accepted)

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. Changed3 schema fields changed
    • addedInput schema / properties / limit / description
      Added value: +"Max results (default 10)"
    • addedInput schema / properties / market_id / description
      Added value: +"Market ID (crypto, kr_stock, us_stock; aliases coin/kr/us accepted)"
    • addedInput schema / properties / market_id / enum
      Added value: +[
      +  "crypto",
      +  "kr_stock",
      +  "us_stock"
      +]
  3. 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"
      +  }
      +]
  4. 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://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"
      +      }
      +    ],
      +    "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_trade_history.",
      +        "properties": {
      +          "filters": {
      +            "additionalProperties": true,
      +            "type": "object"
      +          },
      +          "market_id": {
      +            "type": "string"
      +          },
      +          "stats": {
      +            "additionalProperties": true,
      +            "properties": {
      +              "avg_pnl": {
      +                "type": "number"
      +              },
      +              "losses": {
      +                "type": "integer"
      +              },
      +              "total_pnl": {
      +                "type": "number"
      +              },
      +              "total_trades": {
      +                "type": "integer"
      +              },
      +              "win_rate": {
      +                "type": "number"
      +              },
      +              "wins": {
      +                "type": "integer"
      +              }
      +            },
      +            "required": [
      +              "total_trades",
      +              "wins",
      +              "losses",
      +              "win_rate",
      +              "total_pnl",
      +              "avg_pnl"
      +            ],
      +            "type": "object"
      +          },
      +          "trades": {
      +            "items": {
      +              "additionalProperties": true,
      +              "properties": {
      +                "action": {
      +                  "anyOf": [
      +                    {
      +                      "type": "string"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ],
      +                  "default": null
      +                },
      +                "ai_score": {
      +                  "anyOf": [
      +                    {
      +                      "type": "number"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ],
      +                  "default": null
      +                },
      +                "entry_price": {
      +                  "anyOf": [
      +                    {
      +                      "type": "number"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ],
      +                  "default": null
      +                },
      +                "entry_timestamp": {
      +                  "anyOf": [
      +                    {
      +                      "type": "integer"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ],
      +                  "default": null
      +                },
      +                "exit_price": {
      +                  "anyOf": [
      +                    {
      +                      "type": "number"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ],
      +                  "default": null
      +                },
      +                "exit_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
      +                },
      +                "signal_pattern": {
      +                  "anyOf": [
      +                    {
      +                      "type": "string"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ],
      +                  "default": null
      +                },
      +                "symbol": {
      +                  "type": "string"
      +                }
      +              },
      +              "required": [
      +                "symbol"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          }
      +        },
      +        "required": [
      +          "market_id",
      +          "stats"
      +        ],
      +        "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"
      +]
  5. First observed

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and openWorldHint. The description adds important non-obvious behavioral context: paper-trading data only, the P&L > 0 filter, and that this is a thin wrapper around another tool. This goes beyond what annotations and schema provide, though rate limits or auth are not mentioned, which is acceptable given the simple read-only nature.

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 organized with labeled sections and front-loads the core purpose. Trigger examples are useful but somewhat repetitive, including multilingual variants, which adds length without changing meaning. Still, every section earns its place and there is no fluff, so it remains concise.

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 simple, read-only wrapper tool, the description covers purpose, triggers, when to call, prerequisites, caveats, and next steps. An output schema exists, so return-value details are not required. Nothing an agent needs to decide when to use this tool 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 coverage is 100%: both limit and market_id have descriptions, defaults, and enum values. The description does not add parameter-level detail beyond mentioning the underlying min_pnl=0.01 threshold, which is not a parameter on this tool. With full schema coverage, baseline 3 is appropriate.

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 line states exactly what the tool does: returns winning paper trades only (P&L > 0), and clarifies it is a convenience wrapper around get_trade_history(min_pnl=0.01). This precisely distinguishes it from siblings like get_losing_trades and get_trade_history.

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?

The description gives explicit trigger phrases ('what worked?', 'show me the winners'), a clear 'When to call: success-pattern review', and a next-step hint (analyze_trades). It does not explicitly state when NOT to call (e.g., use get_losing_trades for losses), but the positive-only framing and wrapper relationship make the usage context sufficiently clear.

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.