Skip to main content
Glama

beatandraise.com SEC Filings

Get Institutional Holders

get_institutional_holders
Read-onlyIdempotent

Who holds a company, from 13F filings: how much of each share class institutions hold, and how that changed quarter by quarter. The company-side view of 13F; get_holdings is the manager side (what one institution owns).

Use it for questions like:

  • "What % of AMD do institutions hold, and how has it changed over the last 4 quarters?" -> quarters=4; read quarters[].share_classes[].pct_of_class.

  • "Is Baupost an investor in AMD?" -> holder="Baupost" (a name fragment or a filer CIK). holder.matched_filers says which 13F filers the name matched; holder.positions gives each quarter's position; holder.not_held_in lists quarters with none. If matched_filers is empty, no 13F filer has that name. With holder the response is lean by default (about 5 KB: no top_holders/buyers/sellers lists); pass detail="full" if you also need those.

  • "Who are the largest holders / who bought or sold most last quarter?" -> top_holders, biggest_buyers, biggest_sellers, largest_new_positions, largest_exits.

  • "Who owns more than 5%?" -> large_holders_5pct (latest 13D/13G per holder).

Returns, newest complete quarter first (the quarter still being filed is in in_progress_quarter, not in quarters): quarters[]: period, holders, new_holders, exited_holders, shares_held, value_usd, share_classes[] (one per class on the company's cover page: shares_outstanding as of the 10-Q/10-K after the quarter, listed/symbol, held_by_13f, pct_of_class, holders, cusips), share_count_source (the filing the count comes from), holders_url. source.beatandraise_url: the holders page, the human view of the same data.

Report each share class separately; never add classes together (Meta's Class B is unlisted, so no institution can hold it). State the caveats in notes when giving numbers: 13F is as filed and not deduplicated, options are excluded, holdings can exceed 100% for heavily shorted stocks, and a "new position" can be a manager whose previous 13F was late or a placeholder. Cite share_count_source's link for share counts and holders_url for holdings.

Args: company: Ticker (e.g. "AMD") or CIK of the company being held (not of the institution) quarters: Number of complete quarters, newest first (1-12, default 4) holder: Optional 13F filer to follow across the quarters: a name fragment ("Baupost", "Berkshire") or a CIK ("1061768") limit: Number of top holders to return for the latest quarter (1-100, default 25) detail: "lean" or "full". Default: lean when holder is given (just the holder's positions, share classes and sources), full otherwise (adds top holders, buyers, sellers, new positions, exits and 5%+ holders) ticker: Same as company (models often name it so) cik: Same as company

A ticker that cannot be tied to a company (an index option such as XSP, a former ticker) is not an error: the response has empty quarters and not_covered with the reason, and ticker_used_by names companies whose cover pages stated it.

Input Schema

NameRequiredDescriptionDefault
cikNo
limitNo
detailNo
holderNo
tickerNo
companyNo
quartersNo

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed7 schema fields changed
    • addedInput schema / properties / cik
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null
      +}
    • addedInput schema / properties / company / anyOf
      Added value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedInput schema / properties / company / default
      Added value: +null
    • removedInput schema / properties / company / type
      Removed value: -"string"
    • changedInput schema / properties / detail / anyOf
      Previous value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "type": "boolean"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedInput schema / properties / ticker
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null
      +}
    • removedInput schema / required
      Removed value: -[
      -  "company"
      -]
  2. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Beyond the annotations, the description discloses important behavioral traits: 13F data caveats, non-deduplication, exclusion of options, possible >100% ownership, placeholder/late-filer effects on new positions, and lean versus full response behavior. It also explains that an untied ticker is not an error and returns empty quarters with not_covered, which prevents misinterpreting a valid response.

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?

The description is front-loaded with purpose and the sibling distinction, then organized into use cases, returns, and args, so it is easy to scan. It is still quite long, and some field-level return detail is verbose given that an output schema exists, so it is not maximally concise.

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 complex 13F ownership tool with seven parameters, zero schema descriptions, and an output schema, the definition supplies the missing context an agent needs: data source, response structure, caveats, defaults, error semantics, and share-class handling. Nothing material appears missing for correct selection and invocation.

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 0%, and the description compensates well by documenting all seven arguments, including defaults, ranges, aliases, and the intended meaning of company/ticker/cik and holder. Minor gaps remain: the schema permits a boolean for detail but the description only mentions "lean" or "full", and it does not explicitly state that at least one of company/ticker/cik must be supplied despite none being required in the schema.

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 opening sentence states a specific resource and scope: institutional ownership of a company from 13F filings, including share-class detail and quarterly change. It also explicitly distinguishes the tool from the sibling get_holdings by describing this as the company-side view versus the manager-side view.

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?

The description gives concrete question-to-parameter mappings, such as using quarters=4 for ownership trend questions and holder="Baupost" for filer-specific questions. It also names the alternative get_holdings and makes clear when this company-side tool is appropriate instead.

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