Skip to main content
Glama

TickerInside ETF Holdings

Overlap across many ETFs

get_etf_overlap_matrix
Read-onlyIdempotent

Use this when the user lists three to thirty US ETFs, often a portfolio, and asks which of them duplicate each other or whether the list is diversified across companies; two give one pair. Returns every pair ranked by overlap by weight, with the share of each ETF held in common and the count of companies in both, and the holdings date and source of each ETF in those pairs. It measures diversification by the holdings the ETFs share, not by how their returns move together. Bond ETFs are paired by issuer overlap and listed apart. Uncovered tickers are named and skipped; commodity, multi-asset, sponsor-file and prospectus-only ETFs and ETFs read from SEC filings that are leveraged, inverse, under half in stock or half in swaps and futures are listed as not comparable, each with its reason. Not for the companies underneath (get_etf_portfolio_lookthrough) or how ETFs move together (get_etf_portfolio_risk).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
tickersYes2 to 30 US ETF tickers, for example ["VOO", "QQQ", "SCHD"]: three or more give the matrix, two give one pair.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
pairsNoIn percent, largest first.
sourceNo
coveredNo
skippedNo
computedNo
not_coveredNo
prices_as_ofNo
holdings_as_ofNo
not_comparableNo
holdings_sourceNo
issuer_overlap_pairsNoBy issuer, in percent, largest first.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.6/5.0
Behavior5/5

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

Beyond the readOnly/idempotent annotations it discloses the return shape (every pair ranked by weight overlap, shared share, common-company count, holdings date/source), the measurement method (shared holdings, not return correlation), and rich degradation behavior: uncovered tickers named and skipped, and a long list of non-comparable ETF categories each with a reason. This is substantive behavioral context annotations never convey.

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 usage trigger and organized from purpose to output to edge cases to exclusions. Dense but nearly every sentence carries unique information; the long enumeration of non-comparable categories is verbose yet genuinely useful for interpreting partial results.

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?

With an output schema present the description need not detail return values, yet it still characterizes them, and it covers inputs, semantics, failure modes, and alternatives. Nothing an agent needs to select or invoke this tool correctly 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% and the schema already documents the 2-30 range and the 'two give one pair' behavior, so the description largely restates structured fields. It confirms the ticker semantics but adds no format or edge-case detail the schema lacks, making baseline 3 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?

States a specific verb+resource (produces an overlap matrix across 3-30 US ETFs) and the user intent it serves (duplicate detection, diversification check). It explicitly distinguishes itself from the two nearest siblings, get_etf_portfolio_lookthrough and get_etf_portfolio_risk, so an agent can route without opening schemas.

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?

Front-loads the trigger ('user lists three to thirty US ETFs... asks which duplicate each other'), covers the degenerate two-ticker case, and names explicit not-for alternatives with their own use cases. When-to-use, when-not, and alternatives are all present.

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.

Resources