Skip to main content
Glama

Server Details

US stock market data for AI agents: SEC filings, financials, insider trades, 13F, options, macro.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
9.9% over 44 days
OAuth
Works in Glama
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A4.4/5.0

Scored across 14 tools

Disambiguation4/5

Most tools target distinct resources and actions, and descriptions carefully distinguish overlapping ownership tools (get_institution by filer, get_stock_13f_holders by stock, get_major_holders for 5%+ via 13D/13G, get_superinvestor_activity for quarterly moves). The cluster of 13F/ownership tools and insider tools (get_insider_trades vs get_insider_lists vs get_form144_notices) could still cause some hesitation, but boundaries are spelled out.

Naming Consistency4/5

Strong, predictable get_<noun> pattern throughout (get_stock, get_insider_trades, get_politician_trades, get_ownership_filings, etc.). Minor deviations are list_superinvestors and the bare search, which are reasonable variations rather than inconsistencies.

Tool Count5/5

14 tools is well within the sweet spot and each maps to a distinct resource or workflow (coverage, insiders, Form 144, 13F, 13D/13G, politicians, superinvestors, search). No redundant or filler tools evident from the surface.

Completeness4/5

The surface covers the ownership/filings domain broadly: insider trades, proposed sales, 13F holders, 13D/13G, politician trades, superinvestor activity, entity resolution via search, and a coverage tool. Minor gaps like Form 3/5 initial holdings or a direct single-filing lookup are the only notable omissions.

Available Tools

14 tools
get_data_coverageData coverage and freshnessA
Read-onlyIdempotent
Inspect

What data Livermore has and how fresh it is: the Form 4 filing-date range, the 13F quarters loaded (with the number of filers), the latest complete 13F quarter, the number of curated superinvestors, the Schedule 13D, 13G and Form 144 filing-date ranges, the filing-date range of politicians' trade reports (the congress field: reports by members of the U.S. Congress), the last successful data updates (ISO 8601 UTC), the update schedule and the usage limits of this server. Call it to check whether a date or quarter is covered.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
f13Yes
form4Yes
limitsYes
sourcesYes
websiteYes
congressYes
docs_urlYes
ownershipYes
llms_txt_urlYes
superinvestorsYes
update_scheduleYes
last_successful_updateYes

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, openWorld=false, so the safety profile is covered. The description goes further by disclosing what the response contains (last successful updates, update schedule, server usage limits), which is genuine behavioral context an agent needs, though it says nothing about response size or rate limits on the call itself.

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?

One dense enumeration sentence followed by a short usage imperative — front-loaded and functional, though the field list is long and could be trimmed since an output schema exists. No filler or repetition.

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 parameterless read-only inventory tool with an output schema, the description fully covers scope (which datasets), freshness semantics (ISO 8601 UTC update timestamps), and the decision it supports. Nothing needed to invoke it correctly is absent.

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?

Zero parameters, so there is no parameter semantics to miss; baseline 4 applies. The description correctly signals this is a no-argument inventory call.

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 concrete verb+resource: returns the server's data coverage and freshness, enumerated by dataset (Form 4, 13F quarters, 13D/13G/144, congress trades). This is clearly distinct from the sibling fetch tools like get_insider_trades or get_stock_13f_holders, which return records rather than coverage metadata.

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?

The closing sentence is an explicit call-to-action: 'Call it to check whether a date or quarter is covered.' This gives clear when-to-use context (validate coverage before querying), but names no alternative tool or when-not-to-use condition, so it stops short of the top band.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_form144_noticesForm 144 notices of proposed salesA
Read-onlyIdempotent
Inspect

Form 144 notices of proposed sales of restricted or control stock by insiders (officers, directors, large holders), newest first, like livermore.club/en/ownership/144. A notice is a plan to sell, not a completed sale. Notices replaced by a Form 144/A are left out. Filter by ticker (one company's whole history), seller_cik, query (seller or company name, or a ticker) and filing dates. Without ticker or seller_cik the query is market-wide and limited to 365 days of filings (default: the last 30 days), and notices whose market value is clearly misreported are left out, as on the website; with ticker or seller_cik they are listed with value_outlier true. A notice is flagged when the price per share its market value implies is far above the company's reference prices from Form 4 trades and 13F holdings around the planned sale date; values that are too low are not flagged. Each row has the company, the seller and their relationships to it, shares_to_sell, market_value_usd, shares_outstanding, approx_sale_date, plan_adoption_date (a Rule 10b5-1 plan, when given), the broker, and links to livermore.club and the SEC filing. Coverage: XML notices since 2023 (required since 2023-04-13); call get_data_coverage for the loaded date range. At most 200 rows per call; use page for more.

ParametersJSON Schema
NameRequiredDescriptionDefault
toNoLatest filing date, YYYY-MM-DD, inclusive.
fromNoEarliest filing date, YYYY-MM-DD (US Eastern).
pageNoPage number starting at 1; each page has `limit` rows. Check has_more.
limitNoMaximum rows to return (1-200, default 25).
queryNoSeller or company name contains this text, or a ticker for that company's notices (like the search box on livermore.club/en/ownership/144).
tickerNoOnly notices for this company (all share classes; Form 144 has no CUSIP), whole history.
seller_cikNoOnly notices by this seller, whole history. Sellers use the same CIK as their Form 4 filings.

Output Schema

ParametersJSON Schema
NameRequiredDescription
urlYes
noteYes
pageYes
rowsYes
limitYes
scopeYes
stockYes
sellerYes
filtersYes
has_moreYes

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already cover read-only/idempotent safety, but the description adds substantial behavior: value_outlier suppression and flagging logic, which notices are excluded (superseded by Form 144/A), the 200-row pagination cap, and the XML coverage start date. This is far beyond what annotations provide.

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?

Dense but front-loaded: purpose first, then exclusion rules, then flagging rationale, then filter behavior, then row shape and limits. It is long, but nearly every clause carries operational information; only the intermediate flagging-mechanism detail could be trimmed.

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?

Given an output schema exists, the description needn't enumerate return values, yet it does helpfully list row fields, plus pagination, coverage caveats, and filtering edge cases. Nothing an agent needs to call this correctly is 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 the baseline is 3, but the description meaningfully augments it – 'whole history' semantics for ticker/seller_cik, the query matching seller or company name, and the market-wide 365-day/default-30-day behavior tied to date params. These add semantics the schema does not.

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 (Form 144 notices of proposed sales of restricted/control stock by insiders) with a clear scope and ordering ('newest first'). It also distinguishes the concept semantically from completed trades ('a notice is a plan to sell, not a completed sale') which separates it from siblings like get_insider_trades.

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?

Explicitly describes when to use ticker vs seller_cik vs query vs bare date filtering, and what happens in each case (whole history vs market-wide, 365-day cap, default 30 days). It also routes to get_data_coverage for the loaded range, naming an alternative for coverage questions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_insider_listsInsider trading screensA
Read-onlyIdempotent
Inspect

Ready-made insider trading screens, the same lists as livermore.club/en/insiders: cluster-buys (companies where 3 or more different insiders bought on the open market in the last 30 days, ranked by total value; returned in companies), ceo-cfo-buys (CEO or CFO open-market purchases of $25,000 or more in 30 days, newest first), top-buys-week and top-buys-month (largest open-market purchases filed in the last 7 or 30 days), top-sells-week and top-sells-month (largest open-market sales). Windows count back from now by SEC filing time. Non-derivative transactions only; rows flagged as price outliers, duplicate filings (the same trade reported again in a later filing) and issuers without a ticker are excluded. Trade rows have the same fields as get_insider_trades. Amounts in USD. At most 200 rows.

ParametersJSON Schema
NameRequiredDescriptionDefault
listYescluster-buys, ceo-cfo-buys, top-buys-week, top-buys-month, top-sells-week or top-sells-month.
limitNoMaximum rows to return (1-200, default 25).

Output Schema

ParametersJSON Schema
NameRequiredDescription
urlYes
listYes
titleYes
tradesYes
companiesYes
definitionYes
window_daysYes

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already cover safety (readOnly, idempotent, non-destructive), but the description adds substantial behavioral context: non-derivative transactions only, exclusion of outlier rows, duplicate filings and issuers without tickers, SEC filing-time windows, USD amounts, and a 200-row cap. This is well beyond what the structured annotations provide.

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

Conciseness5/5

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

The description is dense but front-loaded: it opens with the overall purpose, then defines each list, then covers exclusions, shared fields, currency, and row limits. Every sentence carries specific information, and none appears to be filler.

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 read-only screen-listing tool with a full output schema and strong annotations, the description provides everything needed: list semantics, filtering rules, data currency, row limit, and field compatibility with get_insider_trades. Return-value details are appropriately left to the output schema.

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 the schema already documents both parameters, making the baseline 3. The description meaningfully adds to the `list` parameter by defining each enum value's exact criteria and ranking, though it adds little beyond the schema for `limit` aside from restating the 200-row maximum.

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 description names a specific resource (insider trading screens) and enumerates all six ready-made lists with their ranking criteria. It also distinguishes itself from the sibling get_insider_trades by stating that trade rows share the same fields, so an agent can tell it apart without opening either schema.

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?

The description clearly explains what each screen represents and when those lists are useful, e.g., cluster-buys means 3+ insiders bought in 30 days. However, it does not explicitly state when to prefer this tool over get_insider_trades or other siblings, nor does it name exclusions or alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_insider_tradesInsider trades (Form 4)A
Read-onlyIdempotent
Inspect

Insider transactions from SEC Form 4 filings (coverage starts July 2021; updated daily). One row per filing and transaction type: same-day lots are combined, avg_price_usd is value-weighted, value_usd is the USD total, shares_owned_after is the holding after the last lot, ownership_change_pct is the change in the insider's holding in percent (null = new position or not computable). Filter by ticker, insider_cik, filing-date range, codes, the primary insider's role and minimum value. Without ticker or insider_cik the query is market-wide and limited to 30 days of filings (default: last 7 days). Codes: P = open-market or private purchase, S = sale, A = grant or award, D = disposition to the issuer, F = shares withheld for taxes, G = gift, M = option exercise under a company plan, X = in-the-money exercise, C = conversion, W = inheritance, J = other. Default codes P and S. Dates are YYYY-MM-DD; filed_at is ISO 8601 UTC and filed_date its US Eastern date; backfilled filings may only have the date (filed_at at midnight Eastern). price_outlier is true when the reported price or value is not reliable (a typo, a wrong unit or a foreign company's home-market shares priced in local currency instead of US dollars); avg_price_usd and value_usd are then as filed, and the site leaves these rows out of rankings and totals. carried_from is set on rows that a Form 4/A carried over from the original filing: an amendment that restates only some lines leaves the original's other transactions standing, so they are listed under the amendment's accession (amendment true), with the original's accession in carried_from and the original's filed_at and sec_url; it is null otherwise. rule_10b5_1 is null for filings before 2023. Each row links to livermore.club (url) and the SEC filing that reports the transaction (sec_url). At most 200 rows per call; use page for more.

ParametersJSON Schema
NameRequiredDescriptionDefault
toNoLatest SEC filing date, YYYY-MM-DD, inclusive.
fromNoEarliest SEC filing date, YYYY-MM-DD (US Eastern).
pageNoPage number starting at 1; each page has `limit` rows. Check has_more.
sortNofiled = newest filing first (default); trade_date = most recent trade date first; value = largest USD value first (rows flagged as price outliers or duplicate filings are left out).filed
codesNoForm 4 transaction codes to include, e.g. ["P"] for purchases only, or "all". Default ["P","S"] (open-market purchases and sales).
limitNoMaximum rows to return (1-200, default 25).
rolesNoKeep rows whose primary reporting owner has any of these roles: ceo, cfo, director, officer, owner10 (10% owner). Empty = any role.
tickerNoOnly this company's filings (all share classes of the issuer), e.g. AAPL or BRK.B.
insider_cikNoOnly filings on which this insider (reporting owner) appears, across all companies. Get the CIK from search.
min_value_usdNoMinimum transaction value in USD (rows without a price are then excluded).

Output Schema

ParametersJSON Schema
NameRequiredDescription
urlYes
noteYes
pageYes
rowsYes
limitYes
scopeYes
stockYes
filtersYes
insiderYes
has_moreYes

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, idempotent read, so the bar is lower, yet the description adds substantial behavioral context: daily updates, 200-row cap with pagination via page, price_outlier rows excluded from rankings/totals, carried_from semantics for Form 4/A amendments, and rule_10b5_1 null before 2023. These are non-obvious traits an agent could not infer from the schema.

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 and a dense but largely waste-free paragraph; nearly every sentence carries field semantics or a constraint. It would be more scannable with structure, and the back-half semantics (carried_from, price_outlier) could be tightened, but there is little filler.

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 explain return shapes, yet it still covers row granularity, aggregation rules, date formats, null conditions, and pagination limits. For a 10-parameter tool with zero required params, this is fully sufficient to call it correctly.

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 100%, so a baseline of 3 applies, but the description goes further by enumerating the meaning of each transaction code (P, S, A, D, F, G, M, X, C, W, J) and restating the default codes P and S, which the schema only lists as values. It also clarifies that 'without ticker or insider_cik' triggers a 30-day market-wide limit, adding conditional meaning to those params.

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 ('Insider transactions from SEC Form 4 filings') and immediately scopes it with coverage start and update cadence. It is easily separable from siblings like get_insider_lists and get_superinvestor_activity, which cover different data.

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 clear usage context: 'Filter by ticker, insider_cik, filing-date range, codes, the primary insider's role and minimum value,' and explains that omitting ticker/insider_cik yields a market-wide query capped at 30 days, defaulting to the last 7. However, it never names or routes to an alternative sibling tool, so it falls short of explicit when-to-use-vs-alternative guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_institution13F institution and its holdingsA
Read-onlyIdempotent
Inspect

One 13F filer (an institution or a curated superinvestor) by SEC CIK: names (and the superinvestor's manager and style), the quarters it filed (newest 12, with quarters_total: number of positions, portfolio value in USD, filing time, amendments), and its holdings for one quarter (default: the latest it filed) with shares, market value in USD at quarter end, pct_of_portfolio (percent) and the change versus the previous calendar quarter (new/added/reduced/unchanged, share_change_pct in percent). When a stock split between the two quarters, previous_shares is converted to this quarter's shares before comparing (split_factor = new shares per old share) and a change within 0.5% counts as unchanged; a split that changed the CUSIP is shown as one row under the new CUSIP. Also returns the 10 largest positions sold out that quarter and the 10 largest option positions (put/call market value), each with its total count. Portfolio value counts long positions and excludes options. If the institution did not file the previous quarter, changes and sold-out positions are not reported. Securities without a ticker (bonds, some ETFs and foreign shares) have url null. At most 200 holdings per call; use page.

ParametersJSON Schema
NameRequiredDescriptionDefault
cikYesSEC CIK of the 13F filer, e.g. 0001067983 (Berkshire Hathaway). Get it from search.
pageNoPage number starting at 1; each page has `limit` rows. Check has_more.
sortNovalue = largest market value first (default); shares; change = largest share increase first; pct = largest share of the portfolio first.value
limitNoMaximum rows to return (1-200, default 25).
quarterNoQuarter to show, e.g. 2026-q2. Default: the latest quarter this institution filed.

Output Schema

ParametersJSON Schema
NameRequiredDescription
urlYes
noteYes
periodYes
optionsYes
quarterYes
summaryYes
holdingsYes
quartersYes
sold_outYes
institutionYes
quarters_totalYes
previous_quarterYes
changes_availableYes
previous_quarter_filedYes

TDQS

A4.2/5.0
Behavior5/5

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

Annotations already cover read-only/idempotent/non-destructive, and the description adds substantial non-obvious behavior: split handling with split_factor and CUSIP changes, the 0.5% unchanged threshold, a 200-holding cap requiring pagination, exclusion of options from portfolio value, null url for tickerless securities, and suppression of changes when the prior quarter was not filed.

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 core purpose and defaults are front-loaded, and every clause carries real information rather than repetition. It is dense to the point of reading as one long block, which slightly hurts scannability, but there is no filler to cut.

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 this complex, the description covers the edge cases an agent must know before calling: pagination limits, split adjustments, missing-prior-quarter behavior, and option/sold-out reporting. Return fields are also covered by the output schema, so nothing material is 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 the baseline is 3, but the description adds meaning about how parameters interact: the quarter parameter's default (latest filed) is tied to the change/sold-out logic, and the page hint is linked to the 200-holding cap. This slightly exceeds what the schema alone conveys.

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: retrieving one 13F filer (institution or curated superinvestor) by SEC CIK, plus its filing quarters and holdings. The scope is narrow and unambiguous enough that an agent can distinguish it from siblings like get_stock_13f_holders (the inverse direction) without opening the schema.

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

Usage Guidelines2/5

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

The description never says when to use this tool versus get_stock_13f_holders, get_superinvestor_activity, or search; the only routing hint ('Get it from search') lives in the schema, not the description. Usage is inferable from the resource name alone, but no explicit conditions or exclusions are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_major_holdersCurrent 5% holders of a stock (13D/13G)A
Read-onlyIdempotent
Inspect

The current holders of 5% or more of a stock according to their latest Schedule 13D or 13G filing, largest first, like the Major holders tab on livermore.club. Each holder has pct_of_class (percent of the share class, 7.5 = 7.5%) and shares from its latest filing, the change against the previous filing of the same position (previous_pct_of_class, pct_of_class_change in percentage points; new_position is true for a first filing), the form (13D, 13G, 13D/A, 13G/A), filing and event dates, when the position was first filed and how many filings it has, and links to the holder's livermore.club page (institutions and insiders) and the SEC filing. In a group filing each member reports the shares it counts as its own, so the figure is the largest single stake, not a sum. Share classes (GOOG, GOOGL) are split by the CUSIP in the filing. Limits: holders stop filing after a company is acquired or delisted, and holders whose latest filing is an older SC 13D or SC 13G (before 2024-12-18) have no percent and are not counted. Structured 13D/13G filings (voluntary since 2023-12-18, required since 2024-12-18) carry the percent, shares and event date; older SC 13D and SC 13G filings (since 2021) list only the filer, the company and the date (legacy true). Call get_data_coverage for the loaded date range.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum rows to return (1-200, default 25).
tickerYesStock ticker, e.g. AAPL or BRK.B (share classes use a dot; BRK-B also works).

Output Schema

ParametersJSON Schema
NameRequiredDescription
cikYes
urlYes
nameYes
noteYes
tickerYes
holdersYes
holders_totalYes

TDQS

A4.2/5.0
Behavior5/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive), and the description adds substantial non-obvious behavior: group filings report the largest single stake rather than a sum, share classes are split by CUSIP, legacy SC 13D/13G filings lack percent and are excluded, and holders stop filing after acquisition/delisting. This is exactly the kind of caveat an agent cannot infer from structured fields.

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?

Purpose and the field inventory are front-loaded, and every clause carries real information (field semantics, filing-form caveats, limits). It is dense and close to a wall of text, which slightly hurts scannability, but little is expendable.

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?

Though an output schema exists (so return values need not be explained), the description goes further by documenting field semantics and legacy/group-filing edge cases, leaving an agent fully equipped to interpret results and avoid misreading the figures.

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 description coverage is 100%, so both parameters (ticker, limit) are already documented in the schema and the description adds no further parameter detail. Baseline 3 applies when the schema does the heavy lifting.

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 resource (current holders of 5%+ of a stock via Schedule 13D/13G filings), ordering (largest first), and anchors it to a known reference (the Major holders tab on livermore.club). An agent can distinguish it from get_stock_13f_holders or get_ownership_filings, which cover different filing regimes.

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?

Usage context is implied through the described data scope and the pointed 'Call get_data_coverage for the loaded date range' note, but it never explicitly says when to prefer this over sibling tools like get_ownership_filings or get_stock_13f_holders. No when-not or alternative-selection guidance is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_ownership_filingsSchedule 13D and 13G filingsA
Read-onlyIdempotent
Inspect

Schedule 13D and 13G filings by holders of more than 5% of a company, newest first, like livermore.club/en/ownership. 13D is filed by holders who may seek to influence the company (activists), 13G by passive holders; /A marks an amendment. Filter by form, ticker (one stock's whole history), filer_cik (an institution's or person's filings, including those it is named in), query (filer or company name, or a ticker) and filing dates. Without ticker or filer_cik the query is market-wide and limited to 365 days of filings (default: the last 30 days); note says when the range was narrowed. Each row has the company (issuer_cik, issuer_name, ticker), the filer (filer_cik, filer_name, the superinvestor name when it is one, reporting_persons in a group filing), pct_of_class and shares, the change against the previous filing of the same position (previous_pct_of_class, pct_of_class_change in percentage points, new_position), below_5_pct (an exit or a drop below the threshold), the event date, and links to livermore.club (filer_url, stock_url) and the SEC filing. Structured 13D/13G filings (voluntary since 2023-12-18, required since 2024-12-18) carry the percent, shares and event date; older SC 13D and SC 13G filings (since 2021) list only the filer, the company and the date (legacy true). Call get_data_coverage for the loaded date range. At most 200 rows per call; use page for more.

ParametersJSON Schema
NameRequiredDescriptionDefault
toNoLatest filing date, YYYY-MM-DD, inclusive.
formNo13D (holders who may seek to influence the company) or 13G (passive holders). Default: both.
fromNoEarliest filing date, YYYY-MM-DD (US Eastern).
pageNoPage number starting at 1; each page has `limit` rows. Check has_more.
limitNoMaximum rows to return (1-200, default 25).
queryNoFiler or company name contains this text, or a ticker for that company's filings (like the search box on livermore.club/en/ownership).
tickerNoOnly filings for this stock (the company's filings for this share class), whole history.
filer_cikNoOnly filings this filer submitted or is named in as a reporting person, whole history. Get the CIK from search (institutions and insiders).

Output Schema

ParametersJSON Schema
NameRequiredDescription
urlYes
noteYes
pageYes
rowsYes
filerYes
limitYes
scopeYes
stockYes
filtersYes
has_moreYes

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already cover read-only/idempotent safety, and the description goes further: the 200-row cap and paging requirement, the note signal when the date range is narrowed, and the legacy/structured data split (percent/shares only available post-2023-12-18, legacy rows carry filer/company/date only). That is exactly the operational context an agent needs.

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 purpose, then filters, then defaults, then row shape and data caveats — a logical progression. It is long and repeats the form definitions already in the schema, but nearly every clause carries information useful for calling the tool.

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 an 8-param, zero-required, read-only search tool with pagination and heterogeneous data vintages, the description covers filtering modes, defaults, pagination limits, and data-quality caveats. With an output schema present, the row-field enumeration is a bonus rather than a gap.

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 the baseline is 3, but the description adds real meaning beyond the schema: filer_cik includes filings where the entity is merely *named* as a reporting person, ticker returns the stock's whole history, and query can match a ticker as well as a name. The restated 13D/13G definitions duplicate the schema wording.

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 (Schedule 13D/13G filings by >5% holders), scope (newest first, market-wide vs. single-entity), and anchors to a concrete analog (livermore.club/en/ownership). It is clearly separable from siblings like get_stock_13f_holders or get_superinvestor_activity.

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?

Explains when the query is market-wide and how it is then capped to 365 days (default 30), and routes the agent to get_data_coverage for the loaded range. However, it never explicitly says when to prefer this tool over get_major_holders or get_stock_13f_holders.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_politicianPolitician (member of the U.S. Congress)A
Read-onlyIdempotent
Inspect

One politician (a member of the U.S. Congress: House or Senate), by bioguide ID or name: party, chamber, state, district, in office or former, terms served with start and end dates; a profile with the official photo_url, position (e.g. U.S. Representative for California's 11th district), district code (CA-11), birthday and age, official website, social accounts and Wikipedia as URLs, leadership roles (Speaker, whips, caucus chairs; current first) and, for politicians in office, current committee and subcommittee seats with titles (chair, ranking_member and so on); trade statistics since 2020 for the chosen assets (listed securities by default: trades, buys, sells, estimated volume in USD, median filing delay in days, late trades and the reports that contain them), unlisted_trades (trades in bonds, private holdings and other assets, whatever asset is), the number of reports and how many are paper or scanned, the latest filing date, and the 5 tickers the politician traded most in the chosen assets, with livermore.club links. Use get_politician_trades with the bioguide ID for the trades. Profiles, committees and photos come from the unitedstates project (public domain), refreshed daily. Data: House and Senate periodic transaction reports (PTRs) filed since 2020-01-01, from the U.S. House Clerk and the Senate Office of Public Records (eFD), updated daily. Only listed securities are included by default: stocks (including ADRs), ETFs and options, the assets with an exchange ticker. Politicians also report Treasury bills and notes, municipal and corporate bonds, private companies, private funds, crypto and other assets; pass asset=other for those or asset=all for everything. Amounts are the statutory ranges members of Congress report, not exact values: amount_min_usd to amount_max_usd, where a null amount_max_usd is an 'Over $X' range; estimated volumes add up range midpoints (an 'Over $X' range counts as X), so treat them as rough sizes. Trades replaced by an amendment and duplicates reported again in a later filing are left out. Paper and scanned reports are listed on politician pages but their trades are not read.

ParametersJSON Schema
NameRequiredDescriptionDefault
assetNoWhich assets to include: listed (default) = listed securities, that is stocks including ADRs, ETFs and options; stock = listed stocks and ETFs without options; option = options; other = Treasury bills and notes, municipal and corporate bonds, private companies, private funds, crypto and other assets; all = everything. The statistics and top tickers cover these assets.listed
politicianYesA bioguide ID (e.g. P000197) or a name (e.g. Pelosi, Nancy Pelosi, Bernie Sanders). A name that matches several politicians returns an error listing them.

Output Schema

ParametersJSON Schema
NameRequiredDescription
urlYes
noteYes
assetYesThe assets that stats and top_tickers cover.
statsYes
profileYes
politicianYes
top_tickersYes

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already cover read-only/idempotent safety; the description adds data provenance, daily refresh, statutory amount ranges, treatment of amendments/duplicates, and paper/scanned reports not being read. These are substantive behavioral constraints beyond annotations.

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 a single dense block with semicolon-delimited clauses, front-loading identity and fields but running very long. Most content is relevant for this complex tool, though some output detail is redundant with the output schema.

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 explain returns, yet it goes beyond by covering data sources, refresh cadence, asset defaults, amount interpretation, and report limitations. Combined with annotations and 100% schema coverage, an agent has everything needed to call correctly.

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 description coverage is 100%, with both parameters fully documented including the asset enum. The description restates the default and asset meanings but adds no parameter-level syntax or meaning beyond what the schema already provides.

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 description names the resource and scope precisely—one U.S. Congress member, by bioguide ID or name—and enumerates profile fields and trade statistics. It explicitly distinguishes this from get_politician_trades, so an agent can select it without inspecting siblings.

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?

It states the alternative tool and the selector: use get_politician_trades with the bioguide ID for trades. It also defines asset parameter choices and default, giving context for when to fetch other asset classes. The alternative routing is explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_politician_tradesPolitician trades (U.S. Congress: House and Senate)A
Read-onlyIdempotent
Inspect

Trades in stocks, ETFs, options and, on request, other assets reported by politicians (members of the U.S. Congress: House and Senate), one row per trade, newest report first by default. Filter by politician (bioguide ID or name), ticker, asset (listed by default, or stock, option, other, all), chamber, party, type (buy, sell, exchange), report filing dates (filed_from, filed_to) and trade dates (traded_from, traded_to). Each row has the politician (politician_bioguide, politician_name, party, chamber, state), the asset and reported ticker, asset_class, type (purchase, sale_full, sale_partial, sale or exchange), owner (self, spouse, joint or child), traded_date and filed_date, delay_days (days from the trade to its first report; null when the reported trade date is after the filing date, a typo flagged by trade_date_error), late (reported more than 45 days after the trade), the amount range, the official source_url, and livermore.club links for the politician and the stock (stock_url is null when the asset is not a listed company). totals summarize all trades matching the filters, not just this page. Data: House and Senate periodic transaction reports (PTRs) filed since 2020-01-01, from the U.S. House Clerk and the Senate Office of Public Records (eFD), updated daily. Only listed securities are included by default: stocks (including ADRs), ETFs and options, the assets with an exchange ticker. Politicians also report Treasury bills and notes, municipal and corporate bonds, private companies, private funds, crypto and other assets; pass asset=other for those or asset=all for everything. Amounts are the statutory ranges members of Congress report, not exact values: amount_min_usd to amount_max_usd, where a null amount_max_usd is an 'Over $X' range; estimated volumes add up range midpoints (an 'Over $X' range counts as X), so treat them as rough sizes. Trades replaced by an amendment and duplicates reported again in a later filing are left out. Paper and scanned reports are listed on politician pages but their trades are not read. At most 200 rows per call; use page for more.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number starting at 1; each page has `limit` rows. Check has_more.
sortNofiled = newest report first (default); traded = most recent trade first; amount = largest amount range first.filed
typeNobuy (purchases), sell (full, partial or unspecified sales) or exchange.
assetNoWhich assets to include: listed (default) = listed securities, that is stocks including ADRs, ETFs and options; stock = listed stocks and ETFs without options; option = options; other = Treasury bills and notes, municipal and corporate bonds, private companies, private funds, crypto and other assets; all = everything.listed
limitNoMaximum rows to return (1-200, default 25).
partyNodemocrat, republican or independent (the politician's latest party).
tickerNoOnly trades in this company (all its share classes, options and former tickers), e.g. MSFT. A ticker that is not a listed company (many ETFs and funds) matches the ticker as reported.
chamberNohouse or senate.
filed_toNoLatest filing date of the report, YYYY-MM-DD, inclusive.
traded_toNoLatest trade date, YYYY-MM-DD, inclusive.
filed_fromNoEarliest filing date of the report, YYYY-MM-DD.
politicianNoOnly this politician (a member of the U.S. Congress): a bioguide ID (e.g. P000197) or a name (e.g. Pelosi, Nancy Pelosi, Bernie Sanders). A name that matches several politicians returns an error listing them.
traded_fromNoEarliest trade date, YYYY-MM-DD.

Output Schema

ParametersJSON Schema
NameRequiredDescription
urlYes
noteYes
pageYes
rowsYes
limitYes
stockYes
tickerYesThe ticker filter when it is not a listed company and is matched as reported.
totalsYes
filtersYes
has_moreYes
politicianYes

TDQS

A4.3/5.0
Behavior5/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive), yet the description adds substantial behavioral context: daily updates, 2020-01-01 coverage floor, exclusion of amended and duplicate trades, unreadable paper filings, null semantics for delay_days and amount_max_usd, and the 200-row-per-call cap with paging. This is far beyond what the annotations convey.

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?

The purpose is front-loaded and much of the content earns its place (asset filtering rules, amendment exclusions), but it is a single dense paragraph that also enumerates output fields. Because an output schema exists, that field-by-field return listing is largely redundant and inflates the length.

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?

Given the tool's complexity (13 params, multi-source disclosure data), the description covers data provenance, coverage dates, update cadence, deduplication/amendment handling, amount-range caveats, pagination, and default asset scope. An agent has everything needed to call it correctly; return-value detail is further backed by the output schema.

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 description coverage is 100%, so every parameter is already documented; the description mostly restates the same filters (asset classes, type values, date ranges). It adds minor value by clarifying that totals span all matching trades and that ticker matching behaves differently for non-listed tickers, but the baseline of 3 applies when the schema does the heavy lifting.

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 ('Trades... reported by politicians') with precise scope: U.S. Congress House and Senate, one row per trade. It distinguishes this from corporate-insider data by explicitly naming the data source (PTRs from the House Clerk and Senate eFD), letting an agent tell it apart from get_insider_trades without opening the schema.

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 clear context: default returns only listed securities, and it routes the agent to asset=other or asset=all for bonds, crypto, private holdings, etc. It also notes paper/scanned reports have no readable trades. It doesn't explicitly name a sibling alternative (e.g., get_insider_trades vs this), so routing is inferred rather than spelled out.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_stockStock overviewA
Read-onlyIdempotent
Inspect

Overview of one US-listed stock: company facts (SEC name, CIK, exchange, SIC industry, other share classes), open-market insider activity in the last 90 days (Form 4 codes P and S, non-derivative: number of filings and total USD), institutional ownership from 13F for the latest complete quarter (number of holders, total shares and market value in USD, and the previous quarter for comparison), and the curated superinvestors holding it (shares, market value, pct_of_portfolio = percent of that superinvestor's 13F portfolio). A quarter is complete once its 45-day filing deadline has passed and the data is loaded; in_progress_quarter is a newer quarter still being filed. Share classes (GOOG/GOOGL, BRK.A/BRK.B) are separate tickers because 13F reports each class separately. A ticker that is no longer on the SEC's list (active false; delisted true when the company has no listed common stock left, with the Form 25 delisting date in delisted_on when known) keeps its page, and its 13F figures are for its last quarter with a full set of 13F holders (f13.note). Use get_insider_trades and get_stock_13f_holders for the full lists.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYesStock ticker, e.g. AAPL or BRK.B (share classes use a dot; BRK-B also works).

Output Schema

ParametersJSON Schema
NameRequiredDescription
cikYes
f13Yes
sicYes
urlYes
nameYes
activeYesfalse when the ticker is no longer on the SEC's list of tickers.
tickerYes
delistedYestrue when the ticker is inactive and the company has no active common-stock ticker left (delisted or acquired). An inactive ticker whose company still trades under another ticker (a ticker change) is not delisted.
exchangeYes
industryYes
delisted_onYesDelisting date (YYYY-MM-DD) of a delisted stock: the SEC filing date of the Form 25 that removed its common stock from the exchange. null when the stock is not delisted or no Form 25 was found (for example a company that kept trading over the counter).
holders_urlYes
insiders_urlYes
superinvestorsYes
sec_filings_urlYes
insider_activityYes
other_share_classesYes

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare readOnly/idempotent/non-destructive, and the description goes well beyond by disclosing data-freshness semantics (a quarter is complete only after the 45-day filing deadline; in_progress_quarter is still being filed), delisting behavior (active=false, delisted_on Form 25 date, last full 13F quarter), and why share classes are separate tickers. This is exactly the kind of state caveat an agent cannot infer from annotations.

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?

Purpose and the alternative-tool routing are front-loaded, and every clause carries substantive information rather than filler. The main cost is readability: the opening sentence is a single long chain of parentheticals, which makes scanning harder than it needs to be, but the density is largely justified by the tool's complexity.

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 explain return shapes, and it correctly spends its budget on the things structured fields cannot carry: quarterly completeness/timing, in-progress vs complete quarters, delisting edge cases, and share-class handling. An agent has everything needed to call this correctly and interpret freshness.

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% and the singular ticker parameter is fully documented in the schema, so the baseline is 3. The description adds real meaning beyond that by explaining that share classes (GOOG/GOOGL, BRK.A/BRK.B) are distinct tickers because 13F files each class separately, and by describing what happens when the ticker is delisted — useful semantics for interpreting the single input.

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?

Opens with a specific verb+resource ("Overview of one US-listed stock") and then enumerates the exact content blocks returned: SEC company facts, Form 4 P/S insider activity, 13F institutional ownership, and curated superinvestors. It explicitly names siblings (get_insider_trades, get_stock_13f_holders) as the source for the full lists, so an agent can separate this summary tool from them without opening any schema.

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?

States when to route elsewhere: use get_insider_trades and get_stock_13f_holders for the full lists, implying this tool returns only aggregates. It also implicitly frames itself as a single-ticker overview. It does not, however, address other plausible alternatives such as get_institution or get_data_coverage, so the exclusions are incomplete.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_stock_13f_holders13F institutional holders of a stockA
Read-onlyIdempotent
Inspect

Institutions that reported holding a stock in their 13F-HR filings for one calendar quarter (default: the latest complete quarter, or for a ticker that is no longer listed its last quarter with a full set of 13F holders; 13F is filed up to 45 days after quarter end and covers long positions in US-listed securities only). Each row: institution, shares, market value in USD at quarter end as reported, pct_of_portfolio (percent of that institution's 13F portfolio), and the change versus the previous calendar quarter (action new/added/reduced/unchanged/sold_out, share_change, share_change_pct in percent). When the stock split between the two quarters, previous_shares is converted to this quarter's shares before comparing (split_factor = new shares per old share; the filed count is previous_shares / split_factor) and a change within 0.5% counts as unchanged; the previous totals are as filed. Institutions that held the stock last quarter and filed this quarter without it are listed after the holders as sold_out; institutions that held it last quarter but have not filed this quarter yet are listed at the very end as not_filed (not a sale, shares and value null). Totals (holders, shares, value_usd) cover all holders, not just this page. Multiple CUSIPs of the same ticker are combined. changes_available is false (and the change fields are null) when the previous quarter cannot be compared; note explains incomplete or still-filing quarters. At most 200 rows per call; use page.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number starting at 1; each page has `limit` rows. Check has_more.
sortNovalue = largest market value first (default); shares = most shares; change = largest share increase first. Sold-out holders are always listed last.value
limitNoMaximum rows to return (1-200, default 25).
tickerYesStock ticker, e.g. AAPL or BRK.B (share classes use a dot; BRK-B also works).
quarterNoQuarter to show, e.g. 2026-q2. Default: the latest complete quarter; for a ticker that is no longer listed, its last quarter with a full set of 13F holders.

Output Schema

ParametersJSON Schema
NameRequiredDescription
urlYes
nameYes
noteYes
pageYes
rowsYes
sortYes
limitYes
periodYes
sharesYes
tickerYes
holdersYes
quarterYes
has_moreYes
previousYes
value_usdYes
split_factorYesStock split between previous_quarter and quarter: new shares per old share (10 = 10-for-1 split, 0.1 = 1-for-10 reverse split); null when there was none.
previous_quarterYes
changes_availableYes
in_progress_quarterYes
latest_complete_quarterYes

TDQS

A4.3/5.0
Behavior5/5

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

Annotations already declare read-only/idempotent/non-destructive, and the description adds substantial behavior beyond them: split-adjusted prior-share comparison with a 0.5% unchanged threshold, sold_out vs not_filed trailing rows, nulled change fields when changes_available is false, and totals that cover all holders rather than the page.

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 single dense paragraph dedicates much of its length to enumerating row fields and change semantics that the output schema already covers. The genuinely non-obvious domain logic (splits, sold_out/not_filed) earns its place; the field-by-field recap does not.

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?

Given a complex financial domain, full annotation coverage, and an output schema, the description supplies exactly the logic an agent cannot infer: quarter completeness, filing lag, split normalization, and how non-holder rows are ordered. Nothing needed to interpret a call 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 description coverage is 100%, so parameters (page, limit, sort, ticker, quarter) are already documented in the schema itself. The description reinforces the quarter default and the 200-row page cap but adds little semantic detail beyond what the schema already carries.

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 description names a specific resource (institutions reporting holdings in 13F-HR filings) and a specific scope (one calendar quarter, long US-listed positions), with defaults spelled out. It is clearly distinguishable from siblings like get_insider_trades, get_institution, and get_superinvestor_activity.

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?

It states the default quarter, the fallback for delisted tickers, and the 45-day filing lag, which tells the agent when results are meaningful. It never explicitly routes to a sibling (e.g., 'for a specific institution use get_institution'), so it stops short of full when/when-not guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_superinvestor_activitySuperinvestor quarterly buys and sellsA
Read-onlyIdempotent
Inspect

What the curated superinvestors bought and sold in one quarter according to 13F, compared with the previous calendar quarter (default: the latest complete quarter). Without superinvestor_cik: most_bought (stocks the most superinvestors opened or added to), most_sold (reduced or sold out) and per-superinvestor counts of new/added/reduced/sold-out positions. With superinvestor_cik: that superinvestor's individual moves grouped by action, largest positions first (shares_change_pct in percent for added and reduced). Only superinvestors that filed both quarters are compared; added and reduced are decided by share count, not value, and when a stock split between the two quarters the previous share count is converted first (split_factor). Securities are merged by ticker (CUSIP when there is none). 13F is filed up to 45 days after quarter end.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum rows per list (1-50, default 25).
quarterNoQuarter to compare with the previous calendar quarter, e.g. 2026-q2. Default: the latest complete quarter that can be compared.
superinvestor_cikNoShow this superinvestor's individual moves instead of the cross-superinvestor summary.

Output Schema

ParametersJSON Schema
NameRequiredDescription
urlYes
periodYes
quarterYes
most_soldYes
most_boughtYes
superinvestorYes
by_superinvestorYes
previous_quarterYes
superinvestors_comparedYes

TDQS

A4.6/5.0
Behavior5/5

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

Goes well beyond the annotations, which only cover the read-only/idempotent safety profile. It discloses subtle methodological rules: only superinvestors filing both quarters are compared, added/reduced is decided by share count not value, split adjustments via split_factor, ticker/CUSIP merging, and the 45-day 13F filing lag. This is exactly the kind of non-obvious behavior an agent needs.

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?

Dense but front-loaded, leading with the core purpose before detailing edge cases. The long run-on sentences pack a lot of caveats, but each sentence carries substantive information rather than filler.

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?

Given an output schema exists, the description need not explain return values, and it covers the remaining gaps: modes, defaults, and the accounting/matching methodology. An agent has everything needed to invoke it correctly.

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 the baseline is 3, but the description adds real meaning: it explains that quarter compares against the previous calendar quarter and what the superinvestor_cik switch actually changes (grouping by action, largest first, shares_change_pct in percent). This exceeds what the schema alone conveys.

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 ('what curated superinvestors bought and sold in one quarter according to 13F') and delineates two distinct output modes based on superinvestor_cik. This is precise enough to distinguish it from siblings like get_stock_13f_holders or list_superinvestors without opening the schema.

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?

Explicitly explains the conditional branching: omit superinvestor_cik for the cross-investor summary, provide it for individual moves. It also clarifies the default quarter behavior. It does not name a specific alternative tool for looking up a CIK, but the usage context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_superinvestorsCurated superinvestorsA
Read-onlyIdempotent
Inspect

The curated list of superinvestors (well-known long-term investors such as Warren Buffett's Berkshire Hathaway, Bill Ackman's Pershing Square, Li Lu's Himalaya Capital) with their latest 13F quarter: portfolio value in USD (long positions, excluding options), number of positions, filing date, and the 3 largest holdings with pct_of_portfolio (percent). Sorted by portfolio value. Names are in English with Chinese names in name_zh and manager_zh. source_cik is set when the latest quarter was filed under a predecessor CIK (pass it to get_institution to see that quarter). Use get_institution(cik) for full holdings and get_superinvestor_activity for what they bought and sold in a quarter.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
urlYes
countYes
superinvestorsYes

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true, so safety is covered. The description adds meaningful behavior beyond annotations: sorting by portfolio value, exclusion of options, Chinese name fields, and the predecessor CIK behavior. It does not contradict annotations, and the added context enriches the agent's understanding without relying on the schema.

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 dense but each sentence earns its place: main purpose, data fields, sorting, naming, predecessor CIK, and alternatives. It is front-loaded with the primary function and avoids redundancy. Slightly long but not wasteful.

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 no parameters and an output schema present, the description covers all essential call-time information: what data is returned, sorting, edge case of source_cik, and pointers to sibling tools. It does not mention pagination or rate limits, but those are less critical given the tool's simplicity and the output schema's coverage.

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?

The tool has zero parameters, so the baseline is 4. There is nothing for the description to add beyond what the schema provides (which is empty). The description appropriately explains the data structure instead, which is not parameter-related. No issues.

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: 'list the curated list of superinvestors' with detailed data fields (portfolio value, positions, filing date, top holdings). It clearly distinguishes from siblings by mentioning get_institution and get_superinvestor_activity for different needs, so an agent can tell it apart.

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?

Explicitly directs when to use alternatives: 'Use get_institution(cik) for full holdings and get_superinvestor_activity for what they bought and sold in a quarter.' Also explains the source_cik caveat, leaving no ambiguity about when to use this tool versus siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool update
    • Changedget_politician2 fields changed
      • addedOutput schema / properties / profile
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "age": {
        +      "description": "Age today (US Eastern), for politicians in office only: the source has no date of death, so it is null for former members.",
        +      "type": [
        +        "number",
        +        "null"
        +      ]
        +    },
        +    "birthday": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "committees": {
        +      "items": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "chamber": {
        +            "description": "house, senate or joint.",
        +            "type": "string"
        +          },
        +          "id": {
        +            "type": "string"
        +          },
        +          "name": {
        +            "type": "string"
        +          },
        +          "side": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "subcommittees": {
        +            "items": {
        +              "additionalProperties": false,
        +              "properties": {
        +                "id": {
        +                  "type": "string"
        +                },
        +                "name": {
        +                  "type": "string"
        +                },
        +                "side": {
        +                  "type": [
        +                    "string",
        +                    "null"
        +                  ]
        +                },
        +                "title": {
        +                  "anyOf": [
        +                    {
        +                      "enum": [
        +                        "chair",
        +                        "vice_chair",
        +                        "ranking_member",
        +                        "ex_officio",
        +                        "co_chair",
        +                        "other"
        +                      ],
        +                      "type": "string"
        +                    },
        +                    {
        +                      "type": "null"
        +                    }
        +                  ],
        +                  "description": "chair, vice_chair, ranking_member, ex_officio, co_chair or other (the source's wording is in title_raw); null for a regular member."
        +                },
        +                "title_raw": {
        +                  "type": [
        +                    "string",
        +                    "null"
        +                  ]
        +                }
        +              },
        +              "required": [
        +                "id",
        +                "name",
        +                "side",
        +                "title",
        +                "title_raw"
        +              ],
        +              "type": "object"
        +            },
        +            "type": "array"
        +          },
        +          "title": {
        +            "anyOf": [
        +              {
        +                "enum": [
        +                  "chair",
        +                  "vice_chair",
        +                  "ranking_member",
        +                  "ex_officio",
        +                  "co_chair",
        +                  "other"
        +                ],
        +                "type": "string"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ],
        +            "description": "chair, vice_chair, ranking_member, ex_officio, co_chair or other (the source's wording is in title_raw); null for a regular member."
        +          },
        +          "title_raw": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "url": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          }
        +        },
        +        "required": [
        +          "id",
        +          "name",
        +          "side",
        +          "title",
        +          "title_raw",
        +          "chamber",
        +          "url",
        +          "subcommittees"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "district": {
        +      "description": "House seat code of the latest term, e.g. CA-11; AK-AL for an at-large seat, DC-AL for a delegate; null for senators.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "leadership": {
        +      "items": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "chamber": {
        +            "type": "string"
        +          },
        +          "current": {
        +            "type": "boolean"
        +          },
        +          "end": {
        +            "description": "The end date, or null when the source gives none (the role is held).",
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "start": {
        +            "type": "string"
        +          },
        +          "title": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "title",
        +          "chamber",
        +          "start",
        +          "end",
        +          "current"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "photo_url": {
        +      "description": "Official portrait, 360x450 WebP, public domain; null when there is no photo.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "position": {
        +      "description": "The seat in English, e.g. U.S. Representative for California's 11th district.",
        +      "type": "string"
        +    },
        +    "social": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "facebook": {
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        },
        +        "instagram": {
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        },
        +        "mastodon": {
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        },
        +        "x": {
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        },
        +        "youtube": {
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        }
        +      },
        +      "required": [
        +        "x",
        +        "facebook",
        +        "youtube",
        +        "instagram",
        +        "mastodon"
        +      ],
        +      "type": "object"
        +    },
        +    "website": {
        +      "description": "Official website; politicians in office only.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "wikipedia_url": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    }
        +  },
        +  "required": [
        +    "photo_url",
        +    "position",
        +    "district",
        +    "birthday",
        +    "age",
        +    "website",
        +    "social",
        +    "wikipedia_url",
        +    "leadership",
        +    "committees"
        +  ],
        +  "type": "object"
        +}
      • changedOutput schema / required
        Previous value: -[
        -  "politician",
        -  "asset",
        -  "stats",
        -  "top_tickers",
        -  "note",
        -  "url"
        -]New value: +[
        +  "politician",
        +  "profile",
        +  "asset",
        +  "stats",
        +  "top_tickers",
        +  "note",
        +  "url"
        +]
  2. 5 tool updates
    • Removedget_congress_member
    • Removedget_congress_trades
    • Addedget_politician
    • Addedget_politician_trades
    • Changedsearch4 fields changed
      • changedInput schema / properties / query / description
        Previous value: -"Ticker, company, fund, manager, person or member of Congress name, CIK or CUSIP."New value: +"Ticker, company, fund, manager, person or politician name, CIK or CUSIP."
      • removedOutput schema / properties / members
        Removed value: -{
        -  "items": {
        -    "additionalProperties": false,
        -    "properties": {
        -      "bioguide": {
        -        "type": "string"
        -      },
        -      "chamber": {
        -        "enum": [
        -          "house",
        -          "senate"
        -        ],
        -        "type": "string"
        -      },
        -      "district": {
        -        "type": [
        -          "number",
        -          "null"
        -        ]
        -      },
        -      "in_office": {
        -        "type": "boolean"
        -      },
        -      "name": {
        -        "type": "string"
        -      },
        -      "party": {
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      },
        -      "state": {
        -        "type": "string"
        -      },
        -      "url": {
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "bioguide",
        -      "name",
        -      "party",
        -      "chamber",
        -      "state",
        -      "district",
        -      "in_office",
        -      "url"
        -    ],
        -    "type": "object"
        -  },
        -  "type": "array"
        -}
      • addedOutput schema / properties / politicians
        Added value: +{
        +  "items": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "bioguide": {
        +        "type": "string"
        +      },
        +      "chamber": {
        +        "enum": [
        +          "house",
        +          "senate"
        +        ],
        +        "type": "string"
        +      },
        +      "district": {
        +        "type": [
        +          "number",
        +          "null"
        +        ]
        +      },
        +      "in_office": {
        +        "type": "boolean"
        +      },
        +      "name": {
        +        "type": "string"
        +      },
        +      "party": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "state": {
        +        "type": "string"
        +      },
        +      "url": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "bioguide",
        +      "name",
        +      "party",
        +      "chamber",
        +      "state",
        +      "district",
        +      "in_office",
        +      "url"
        +    ],
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
      • changedOutput schema / required
        Previous value: -[
        -  "query",
        -  "stocks",
        -  "institutions",
        -  "insiders",
        -  "members"
        -]New value: +[
        +  "query",
        +  "stocks",
        +  "institutions",
        +  "insiders",
        +  "politicians"
        +]
  3. 2 tool updates
    • Changedget_congress_member5 fields changed
      • addedInput schema / properties / asset
        Added value: +{
        +  "default": "listed",
        +  "description": "Which assets to include: listed (default) = listed securities, that is stocks including ADRs, ETFs and options; stock = listed stocks and ETFs without options; option = options; other = Treasury bills and notes, municipal and corporate bonds, private companies, private funds, crypto and other assets; all = everything. The statistics and top tickers cover these assets.",
        +  "enum": [
        +    "listed",
        +    "stock",
        +    "option",
        +    "other",
        +    "all"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / asset
        Added value: +{
        +  "description": "The assets that stats and top_tickers cover.",
        +  "enum": [
        +    "listed",
        +    "stock",
        +    "option",
        +    "other",
        +    "all"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / stats / properties / unlisted_trades
        Added value: +{
        +  "description": "Trades in bonds, private holdings and other assets that are not listed securities, whatever asset is.",
        +  "type": "number"
        +}
      • changedOutput schema / properties / stats / required
        Previous value: -[
        -  "trades",
        -  "buys",
        -  "sells",
        -  "estimated_volume_usd",
        -  "median_delay_days",
        -  "late_trades",
        -  "late_filings",
        -  "filings",
        -  "paper_filings",
        -  "latest_filed_date"
        -]New value: +[
        +  "trades",
        +  "buys",
        +  "sells",
        +  "estimated_volume_usd",
        +  "median_delay_days",
        +  "late_trades",
        +  "late_filings",
        +  "unlisted_trades",
        +  "filings",
        +  "paper_filings",
        +  "latest_filed_date"
        +]
      • changedOutput schema / required
        Previous value: -[
        -  "member",
        -  "stats",
        -  "top_tickers",
        -  "note",
        -  "url"
        -]New value: +[
        +  "member",
        +  "asset",
        +  "stats",
        +  "top_tickers",
        +  "note",
        +  "url"
        +]
    • Changedget_congress_trades3 fields changed
      • addedInput schema / properties / asset
        Added value: +{
        +  "default": "listed",
        +  "description": "Which assets to include: listed (default) = listed securities, that is stocks including ADRs, ETFs and options; stock = listed stocks and ETFs without options; option = options; other = Treasury bills and notes, municipal and corporate bonds, private companies, private funds, crypto and other assets; all = everything.",
        +  "enum": [
        +    "listed",
        +    "stock",
        +    "option",
        +    "other",
        +    "all"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / filters / properties / asset
        Added value: +{
        +  "enum": [
        +    "listed",
        +    "stock",
        +    "option",
        +    "other",
        +    "all"
        +  ],
        +  "type": "string"
        +}
      • changedOutput schema / properties / filters / required
        Previous value: -[
        -  "chamber",
        -  "party",
        -  "type",
        -  "filed_from",
        -  "filed_to",
        -  "traded_from",
        -  "traded_to",
        -  "sort"
        -]New value: +[
        +  "asset",
        +  "chamber",
        +  "party",
        +  "type",
        +  "filed_from",
        +  "filed_to",
        +  "traded_from",
        +  "traded_to",
        +  "sort"
        +]
  4. 7 tool updates
    • Addedget_congress_member
    • Addedget_congress_trades
    • Changedget_data_coverage6 fields changed
      • addedOutput schema / properties / congress
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "earliest_filed_date": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "latest_filed_date": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "note": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "earliest_filed_date",
        +    "latest_filed_date",
        +    "note"
        +  ],
        +  "type": "object"
        +}
      • addedOutput schema / properties / last_successful_update / properties / congress
        Added value: +{
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • changedOutput schema / properties / last_successful_update / required
        Previous value: -[
        -  "sec_filings",
        -  "tickers",
        -  "cusip_mapping"
        -]New value: +[
        +  "sec_filings",
        +  "tickers",
        +  "cusip_mapping",
        +  "congress"
        +]
      • removedOutput schema / properties / not_yet_available
        Removed value: -{
        -  "items": {
        -    "type": "string"
        -  },
        -  "type": "array"
        -}
      • addedOutput schema / properties / ownership
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "form144": {
        +      "anyOf": [
        +        {
        +          "additionalProperties": false,
        +          "properties": {
        +            "earliest_filed_date": {
        +              "type": "string"
        +            },
        +            "latest_filed_at": {
        +              "type": "string"
        +            },
        +            "latest_filed_date": {
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "earliest_filed_date",
        +            "latest_filed_at",
        +            "latest_filed_date"
        +          ],
        +          "type": "object"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "schedule_13d": {
        +      "anyOf": [
        +        {
        +          "additionalProperties": false,
        +          "properties": {
        +            "earliest_filed_date": {
        +              "type": "string"
        +            },
        +            "latest_filed_at": {
        +              "type": "string"
        +            },
        +            "latest_filed_date": {
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "earliest_filed_date",
        +            "latest_filed_at",
        +            "latest_filed_date"
        +          ],
        +          "type": "object"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "schedule_13g": {
        +      "anyOf": [
        +        {
        +          "additionalProperties": false,
        +          "properties": {
        +            "earliest_filed_date": {
        +              "type": "string"
        +            },
        +            "latest_filed_at": {
        +              "type": "string"
        +            },
        +            "latest_filed_date": {
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "earliest_filed_date",
        +            "latest_filed_at",
        +            "latest_filed_date"
        +          ],
        +          "type": "object"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    }
        +  },
        +  "required": [
        +    "schedule_13d",
        +    "schedule_13g",
        +    "form144",
        +    "note"
        +  ],
        +  "type": "object"
        +}
      • changedOutput schema / required
        Previous value: -[
        -  "website",
        -  "sources",
        -  "form4",
        -  "f13",
        -  "superinvestors",
        -  "last_successful_update",
        -  "update_schedule",
        -  "not_yet_available",
        -  "limits",
        -  "docs_url",
        -  "llms_txt_url"
        -]New value: +[
        +  "website",
        +  "sources",
        +  "form4",
        +  "f13",
        +  "superinvestors",
        +  "ownership",
        +  "congress",
        +  "last_successful_update",
        +  "update_schedule",
        +  "limits",
        +  "docs_url",
        +  "llms_txt_url"
        +]
    • Addedget_form144_notices
    • Addedget_major_holders
    • Addedget_ownership_filings
    • Changedsearch3 fields changed
      • changedInput schema / properties / query / description
        Previous value: -"Ticker, company, fund, manager or person name."New value: +"Ticker, company, fund, manager, person or member of Congress name, CIK or CUSIP."
      • addedOutput schema / properties / members
        Added value: +{
        +  "items": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "bioguide": {
        +        "type": "string"
        +      },
        +      "chamber": {
        +        "enum": [
        +          "house",
        +          "senate"
        +        ],
        +        "type": "string"
        +      },
        +      "district": {
        +        "type": [
        +          "number",
        +          "null"
        +        ]
        +      },
        +      "in_office": {
        +        "type": "boolean"
        +      },
        +      "name": {
        +        "type": "string"
        +      },
        +      "party": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "state": {
        +        "type": "string"
        +      },
        +      "url": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "bioguide",
        +      "name",
        +      "party",
        +      "chamber",
        +      "state",
        +      "district",
        +      "in_office",
        +      "url"
        +    ],
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
      • changedOutput schema / required
        Previous value: -[
        -  "query",
        -  "stocks",
        -  "institutions",
        -  "insiders"
        -]New value: +[
        +  "query",
        +  "stocks",
        +  "institutions",
        +  "insiders",
        +  "members"
        +]
  5. 9 tool updates
    • First observedget_data_coverage
    • First observedget_insider_lists
    • First observedget_insider_trades
    • First observedget_institution
    • First observedget_stock
    • First observedget_stock_13f_holders
    • First observedget_superinvestor_activity
    • First observedlist_superinvestors
    • First observedsearch

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Wall Street data feed for AI agents, providing access to 100M+ source-traced SEC records, institutional holdings, insider trades, congress trading, and more via MCP tools.
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides AI agents with clean, normalized access to financial data including company fundamentals, insider trades, SEC filings, macro series from FRED, real-time quotes, and ETF holdings.
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Provides US stock market data for AI agents, including intraday and daily bars, SEC fundamentals, filings, and insider data, with pay-per-query via USDC on Base.
    1
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources