Skip to main content
Glama

OneQAZ Trading Intelligence

get_structure_calibration

Read-onlyIdempotent

Purpose: Level 2 (ETF / basket / sector granularity — Level 1 is individual symbols) prediction calibration. Returns hit_rate_ema per (market, group, interval, regime_bucket) with sample counts, plus the majority-class baseline needed to interpret them. This is measurement, NOT a claim of edge — as of 2026-09-18 the measured skill (accuracy minus baseline) is negative in all three markets. Triggers (casual questions too): "how good are your sector calls?", "섹터 예측 잘 맞아?", "sector rotation accuracy?", "그룹 단위 적중률 보여줘", "can you time sector moves?". When to call: when an AI wants to see Layer D evidence (Layer D = sector-structure tier of the 5-layer trust pyramid). Prerequisites: none. Next steps: get_structure_validation_history for the daily trend. Caveats: empty until structure-learning cycles complete. Rows are paginated — read total_available (not len(calibration)) for the whole-set size. baseline, meta.total_entries and meta.total_samples are always whole-set. Rows keep their dimension keys (market_id / interval / regime_bucket); they are never hoisted out of the row.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNoMax results (default 50, max 500). Rows are truncated; see `total_available` and `truncated` in the response. `baseline` and `meta` counts stay whole-set.
market_idNoOptional market filter (crypto, kr_stock, us_stock). Aliases coin/kr/us and any letter case are accepted.
group_nameNoOptional group/sector filter (e.g., layer1, defi, sector, broad_index)

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. Changed2 schema fields changed
    • addedOutput schema / properties
      Added value: +{
      +  "data_classification": {
      +    "anyOf": [
      +      {
      +        "const": "research_information_only",
      +        "type": "string"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null
      +  },
      +  "disclaimer": {
      +    "description": "Canonical compliance disclaimer (always present)",
      +    "type": "string"
      +  },
      +  "full_data": {
      +    "anyOf": [
      +      {
      +        "additionalProperties": true,
      +        "description": "`full_data` for get_structure_calibration — 실응답에서 추출(2026-09-23).",
      +        "properties": {
      +          "baseline": {
      +            "additionalProperties": true,
      +            "type": "object"
      +          },
      +          "calibration": {
      +            "items": {},
      +            "type": "array"
      +          },
      +          "limit": {
      +            "anyOf": [
      +              {
      +                "type": "integer"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null
      +          },
      +          "meta": {
      +            "additionalProperties": true,
      +            "type": "object"
      +          },
      +          "returned": {
      +            "anyOf": [
      +              {
      +                "type": "integer"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null
      +          },
      +          "total_available": {
      +            "anyOf": [
      +              {
      +                "type": "integer"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null
      +          },
      +          "truncated": {
      +            "anyOf": [
      +              {
      +                "type": "boolean"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null
      +          },
      +          "truncated_note": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null
      +          }
      +        },
      +        "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
      +  },
      +  "request_id": {
      +    "description": "32-hex per-response correlation id",
      +    "type": "string"
      +  },
      +  "timestamp": {
      +    "description": "RFC3339 UTC, server build time",
      +    "type": "string"
      +  }
      +}
    • addedOutput schema / required
      Added value: +[
      +  "disclaimer",
      +  "request_id",
      +  "timestamp"
      +]
  2. Changed7 schema fields changed
    • addedInput schema / properties / group_name / anyOf
      Added value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedInput schema / properties / group_name / description
      Added value: +"Optional group/sector filter (e.g., layer1, defi, sector, broad_index)"
    • removedInput schema / properties / group_name / type
      Removed value: -"string"
    • addedInput schema / properties / market_id / anyOf
      Added value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedInput schema / properties / market_id / description
      Added value: +"Optional market filter (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"
      +]
    • removedInput schema / properties / market_id / type
      Removed value: -"string"
  3. Changed1 schema field changed
    • addedInput schema / properties / limit
      Added value: +{
      +  "default": 50,
      +  "description": "Max results (default 50, max 500). Rows are truncated; see `total_available` and `truncated` in the response. `baseline` and `meta` counts stay whole-set.",
      +  "type": "integer"
      +}
  4. First observed

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already declare readOnly/openWorld/idempotent, and the description adds substantial behavioral context beyond that: the measured skill is negative as of a specific date, the tool returns empty until structure-learning cycles complete, pagination semantics (use total_available not len()), whole-set counts for baseline/meta, and that dimension keys remain in rows. This is rich, non-contradictory transparency.

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 longer than average but is tightly structured with labeled sections (Purpose, Triggers, When to call, Prerequisites, Next steps, Caveats), front-loads the core purpose, and every sentence carries useful operational or interpretive information. No filler or redundant restatement of the schema.

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 output schema exists (so return-value details are covered) and the annotations carry the safety profile, the description fully covers what an agent needs: empty-state behavior, pagination caveats, whole-set vs truncated counts, and row key preservation. This is complete for a read-only, idempotent data retrieval tool.

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%, and the schema already documents limit truncation, market_id aliases, and group_name examples. The description adds no new parameter-level meaning beyond what the schema provides, so the baseline 3 applies.

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 states precisely what the tool returns: Level 2 (ETF/basket/sector) prediction calibration with hit_rate_ema per (market, group, interval, regime_bucket) plus the majority-class baseline. It explicitly differentiates itself from Level 1 (individual symbols) and clarifies it is measurement, not a claim of edge, which separates it from related sibling tools.

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 provides explicit trigger phrases (including casual/natural-language variants), states when to call (Layer D evidence), and names the next tool (get_structure_validation_history) for daily trend. The Level 2 vs Level 1 distinction implicitly tells the agent when NOT to use this tool, so the usage guidance is complete.

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.