Skip to main content
Glama

holdings_by_security

Read-onlyIdempotent

Who owns a stock: institutional holders of a security from SEC Form 13F, ranked by position value, with quarter-over-quarter share changes. Answers 'who are the largest holders of NVDA', 'which funds added or trimmed this quarter', 'did anyone initiate a new position'. Give a ticker (resolved via CUSIP) or a CUSIP directly. Each holder row carries its accession number and an EDGAR source_url so the figure is verifiable against the primary filing. Coverage: quarter ends from 2024-12-31 through 2026-06-30, all ~10,000 filing managers, not just large ones; the newest quarter is still filling in as filers submit, so its holder_count is lower than a settled quarter's. Positions are aggregated per filer CIK — a single 13F contains one line per sub-manager (BlackRock's carries 42 separate NVDA lines), so per-line reading understates holders badly. One book per filer: the original 13F-HR, or the 13F-HR/A RESTATEMENT that replaced it (add-on amendments are excluded); values are USD even where the filer reported in thousands. Note total_value_usd is the sum across filers and may double-count where combination reports include other managers' holdings; coverage_caveat flags this when relevant. 13F covers US-listed long equity and options only — it does not show shorts, cash, bonds, or non-US listings, and is filed 45 days after quarter end.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
cusipNo9-character CUSIP, e.g. 67066G104. Use when the ticker is unmapped.
limitNoHolders to return, 1-100 (default 20), ranked by value.
issuerNoThe company the question is about, in the same shape financial_search and search take — so an agent can carry ONE issuer object across tools. Alias only: `issuer.ticker` fills in `ticker` when you have not set it. Ownership is a structured lookup, so there is no scope or quality_caveat here — `coverage_caveat` is this tool's equivalent.
periodNoQuarter end as YYYY-MM-DD, e.g. 2026-03-31. Defaults to the most recent loaded quarter.
tickerNoTicker, e.g. NVDA. Resolved to a CUSIP internally.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare a safe read-only, idempotent operation, yet the description adds substantial non-obvious behavior: the newest quarter is still filling in, positions are aggregated per filer CIK (with the BlackRock 42-line example), one book per filer (13F-HR or HR/A restatement, add-ons excluded), USD normalization, and the total_value_usd double-count caveat flagged by coverage_caveat.

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?

Long but densely packed — the core 'who owns a stock' purpose is front-loaded, followed by examples, input modes, and caveats. Nearly every sentence carries operational weight, though the coverage/aggregation paragraph is heavy enough that some trimming is conceivable.

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 multi-parameter, nested-object tool with no output schema, the description covers scope, coverage window, aggregation policy, caveats, and 13F limitations (no shorts, cash, bonds, non-US). Nothing an agent needs to invoke it correctly appears missing.

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 coverage is 100%, so baseline is 3, but the description adds real meaning: ticker is resolved via CUSIP internally, cusip should be used when the ticker is unmapped, period defaults to the most recent loaded quarter, and issuer is an alias shape shared with financial_search/search. This goes beyond the structured fields.

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 and resource — institutional holders of a security from SEC Form 13F — plus the ranking (position value) and the delta dimension (quarter-over-quarter share changes). It is clearly the inverse of the sibling holdings_by_manager, so an agent can select it without ambiguity.

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?

Gives concrete triggering questions ('who are the largest holders of NVDA', 'which funds added or trimmed') and states the input modes (ticker or CUSIP). It implicitly routes against holdings_by_manager via the 'who owns a stock' framing, but never explicitly names when not to use it or points to the sibling by name.

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.