Skip to main content
Glama

Get ETF exposures

get_etf_exposures
Read-only

Calculate sector, country, currency, and broad asset exposure from the latest stored ETF holdings. Sector and country come from the fund provider's own holdings file where it states them (normalized to Bullrun's sector and country names), otherwise from the Bullrun instrument the holding resolves to by ISIN or by symbol with a matching company name. Currency uses the reported holding currency, else an explicitly disclosed estimate from the company's home-market listing or usual country currency. This is a holding quote/listing-currency proxy, not revenue FX exposure, economic currency risk or hedge-adjusted fund exposure. Positions without a classification or currency basis are Unclassified / Not reported. Sector and currency cover all stored rows; country covers securities and excludes cash and derivatives. Coverage states complete bucket weights and any buckets omitted by limitPerType. Broad asset class comes from the normalized fund profile. Factor and thematic look-through are unavailable until dedicated source data exists. Coverage states how much fund weight was classified and how, so partial top-holdings data is never presented as full exposure. Read-only.

Input Schema

NameRequiredDescriptionDefault
typesNo
tickerYesExact Bullrun ETF listing ticker.
limitPerTypeNo

Output Schema

NameRequiredDescriptionDefault
tickerYes
webPageNo
coverageYes
warningsYes
exposuresYes
platformLinkNo
availableTypesYes
notLoadedTypesNo
requestedTypesYes
unavailableTypesYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed9 schema fields changed
    • removedOutput schema / properties / availableTypes / items / $ref
      Removed value: -"#/properties/requestedTypes/items"
    • addedOutput schema / properties / availableTypes / items / enum
      Added value: +[
      +  "sector",
      +  "country",
      +  "currency",
      +  "asset",
      +  "factor",
      +  "thematic"
      +]
    • addedOutput schema / properties / availableTypes / items / type
      Added value: +"string"
    • removedOutput schema / properties / notLoadedTypes / items / $ref
      Removed value: -"#/properties/requestedTypes/items"
    • addedOutput schema / properties / notLoadedTypes / items / enum
      Added value: +[
      +  "sector",
      +  "country",
      +  "currency",
      +  "asset",
      +  "factor",
      +  "thematic"
      +]
    • addedOutput schema / properties / notLoadedTypes / items / type
      Added value: +"string"
    • removedOutput schema / properties / unavailableTypes / items / $ref
      Removed value: -"#/properties/requestedTypes/items"
    • addedOutput schema / properties / unavailableTypes / items / enum
      Added value: +[
      +  "sector",
      +  "country",
      +  "currency",
      +  "asset",
      +  "factor",
      +  "thematic"
      +]
    • addedOutput schema / properties / unavailableTypes / items / type
      Added value: +"string"
  2. Changed1 schema field changed
    • addedOutput schema / properties / notLoadedTypes
      Added value: +{
      +  "items": {
      +    "$ref": "#/properties/requestedTypes/items"
      +  },
      +  "type": "array"
      +}
  3. Changed2 schema fields changed
    • addedOutput schema / properties / platformLink
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "description": {
      +      "type": "string"
      +    },
      +    "label": {
      +      "type": "string"
      +    },
      +    "url": {
      +      "format": "uri",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "label",
      +    "url",
      +    "description"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / webPage
      Added value: +{
      +  "format": "uri",
      +  "type": "string"
      +}
  4. Added

TDQS

A3.6/5.0
Behavior3/5

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

The description is unusually rich on behavior beyond the annotations: data provenance (provider holdings file vs. Bullrun instrument resolution by ISIN/symbol+name), fallback rules, exclusions (country excludes cash and derivatives), and unclassified handling. However, it omits how the resolution fallbacks affect the 'Unclassified / Not reported' bucket and gives no sense of freshness/staleness of 'latest stored' holdings, so a 3 rather than 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded, but the text is dense and repetitive — two separate sentences begin 'Coverage states...' — and the trailing 'Read-only.' merely restates readOnlyHint=true. Most sentences do carry real information, but the passage would read better tightened.

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 tool with an output schema, no return-value prose is required, and the description covers what an agent needs: sources, fallbacks, exclusions, unclassified semantics, coverage caveats that prevent misreading partial top-holdings data as full exposure, and the unsupported factor/thematic types.

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?

With schema coverage at 33% (only `ticker` documented in-schema), the description compensates well: it explains what each `types` value yields and how each is derived, and it explains that coverage reports 'any buckets omitted by limitPerType.' The ticker's exact-listing requirement is left to the schema, which already covers it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'Calculate sector, country, currency, and broad asset exposure from the latest stored ETF holdings.' An agent can tell this is the derived-exposure view rather than the raw holdings (get_etf_holdings), though no sibling is named explicitly to sharpen the boundary.

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

Usage Guidelines3/5

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

It usefully rules out factor and thematic look-through ('unavailable until dedicated source data exists'), steering the agent away from invalid `types` values. But there is no explicit guidance on when to pick this over get_etf_holdings, get_etf_risk, or compare_etfs, and no stated prerequisites.

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.