Skip to main content
Glama
Portfolio Analytics MCP

Portfolio Analytics MCP

by RugSec

get_etf_exposure

Read-only

Fetch country, sector, and top-10 holdings exposure for a single ETF by ISIN, with optional cache refresh, to assess portfolio concentration.

Instructions

Country, sector and top-10 holdings breakdown of one ETF (justETF).

    justETF lists the largest ~10 countries and ~13 sectors; the remainder
    is reported as "Other". Top holdings are limited to the top 10.

    Args:
        isin: ETF ISIN.
        section: "countries", "sectors", "holdings" or "all".
        refresh: Bypass the 24h cache.

    Returns:
        The requested breakdowns with weights in %, the as-of date and
        warnings; or an `error`.
    

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "isin": "<isin>"
    },
    "name": "get_etf_exposure"
  }
}

Input Schema

NameRequiredDescriptionDefault
isinYes
refreshNo
sectionNoall

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already cover read-only and open-world behavior, and the description adds meaningful context beyond them: a 24h cache with a bypass flag, that justETF reports only ~10 countries / ~13 sectors with an 'Other' remainder, that holdings are capped at 10, and that results carry an as-of date and warnings. These completeness caveats are exactly the kind of trait an agent needs. Minor gap: no mention of failure modes beyond 'error'.

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?

Front-loaded with the core purpose in the first clause, then progressively discloses limits and parameter meaning. The Args/Returns block is conventional and readable, though slightly verbose for only three parameters.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With three simple parameters and no output schema, the description explains return shape (weights in %, as-of date, warnings, error) adequately, so an agent knows what comes back. What's missing is routing context against the many ETF siblings, which matters given this crowded toolset.

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?

Schema description coverage is 0% and the schema has no enum for `section`, so the description carries the full burden — and it does, documenting isin, the four valid section values, and the refresh cache-bypass semantics. It stops short of noting case sensitivity or invalid-section behavior, so not a 5.

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: a country/sector/top-10-holdings breakdown of a single ETF via justETF, keyed by ISIN. The scope is clear, but it does not name or differentiate itself from close siblings like get_etf_sector_allocation and get_etf_holdings, which an agent could plausibly pick instead.

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?

The `section` argument implicitly documents that this tool can fetch countries, sectors, holdings, or all, and the refresh note gives a clear condition for bypassing cache. However, there is no explicit guidance about when to prefer this over the more granular sibling tools (e.g., sector allocation or holdings endpoints) 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.