Skip to main content
Glama

Edgrapi — US Government Data API

Server Details

US government data as clean JSON for AI agents: SAM.gov contract opportunities, USAspending awards, Grants.gov grants, House STOCK Act trades, and SEC EDGAR filings (Form 4 insider trades, 8-K events, 13F holdings, 13D/G stakes, XBRL fundamentals, 10-K/10-Q sections). 19 read-only tools. Data is as fresh as each source publishes; congressional trades lag up to 45 days and report dollar ranges (House only). Free tier, no card.

Ownership verified
Status
Healthy
Uptime
99.9% over 38 days
Last Tested
Transport
Streamable HTTP · MCP 2025-06-18
URL

TDQS

A3.9/5.0

Scored across 19 tools

Disambiguation4/5

Tools are largely distinct, each targeting a specific data type (e.g., insider trades, holdings, 8-K events). Some overlap exists between get_company and resolve_entity, and between get_fundamentals and get_xbrl, but descriptions clearly differentiate their purposes and output detail.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern with snake_case, predominantly using 'get_' (16 tools) and two 'resolve_/search_' exceptions that still fit the convention. No mixed styles or vague verbs.

Tool Count4/5

19 tools is on the higher side of the recommended range, but the server covers a broad domain spanning SEC filings, government contracts/grants, and congressional trades. Each tool has a well-defined scope, so the count feels justified rather than bloated.

Completeness4/5

The surface covers core SEC workflows (filings, fundamentals, ratios, insider trades, holdings) and adds niche areas like activist filings, private placements, and government spending. Minor gaps exist, such as no direct executive compensation tool, but agents can work around these with existing tools like get_xbrl.

Available Tools

19 tools
get_activistGet 13D/13G >5% activist stakesA
Read-onlyIdempotent
Inspect

Schedule 13D/13G filings, the disclosure anyone crossing 5% of a company's voting stock must make. A 13D signals possible activist intent; a 13G is a passive large holder. Each record has the issuer, CUSIP, reporting person(s), and exact percent of class. Pass identifier='latest' for the market-wide feed of new >5% stakes, or a ticker for the stakes indexed on that company.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of filings, 1-100 (default 40).
identifierYes'latest' for the market-wide >5% feed, or a US ticker (e.g. 'AAPL') for stakes indexed on that company.
min_percentNoFor 'latest': minimum percent of class (default 0).
activist_onlyNoFor 'latest': keep only 13D (activist-intent) filings (default false).

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already convey read-only, idempotent, and non-destructive behavior, so the description does not need to repeat those. It adds value by explaining the meaning of the filings (13D vs 13G) and the exact fields returned (issuer, CUSIP, reporting person(s), percent of class). This contextual disclosure goes beyond annotations and helps the agent understand the tool's output semantics without an output 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 four sentences long but each sentence earns its place: it defines 13D/13G, clarifies the threshold, lists the record fields, and explains the identifier modes. It is front-loaded with purpose and avoids filler, though the first two sentences could arguably be condensed. Overall it is efficient and well-structured for an agent scanning for key information.

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?

Given no output schema, the description provides a useful outline of return fields (issuer, CUSIP, reporting person(s), percent). It also covers the two invocation modes thoroughly. It does not mention pagination, error behavior, or edge cases, but for a read-only, idempotent tool with a single required parameter, these are less critical. The description is sufficient for correct invocation and basic outcome expectations.

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?

All four parameters are fully described in the schema (100% coverage), so the baseline is 3. The description adds meaningful depth to the required 'identifier' parameter by explaining the two distinct value modes ('latest' vs ticker) and their purposes, which the schema merely hints at. This elevates the semantic clarity of the most important parameter beyond what the schema alone 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 a specific resource (13D/13G activist stakes) and a clear action (get/fetch), going beyond the name to explain the domain context (5% threshold, 13D vs 13G). It also distinguishes two modes of operation (latest vs ticker) that align with the identifier parameter, making the purpose unambiguous and distinguishable from sibling tools like get_holdings or get_filings.

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 explicitly tells the agent when to use each identifier value: 'Pass identifier='latest' for the market-wide feed... or a ticker for the stakes indexed on that company.' This is clear usage guidance for the primary parameter. It does not explicitly compare against alternatives (e.g., get_holdings), but the distinction between activist stakes and general holdings is implicit. The guidance is specific enough to correctly invoke the tool for both intended scenarios.

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

get_awardsGet federal awards (USAspending)A
Read-onlyIdempotent
Inspect

Federal spending awards from USAspending.gov — contracts, grants, loans, and direct payments — normalized into flat JSON. Each carries the award id, recipient, amount, awarding agency, type, dates, place of performance, description, and the usaspending.gov link. Pick one category per call; leave dates off for the last year. Pairs with get_opportunities: the SAM solicitation, then who won the awards here.

ParametersJSON Schema
NameRequiredDescriptionDefault
endNoAction-date end, YYYY-MM-DD (default: today).
pageNoPage number (default 1).
limitNoRecords to return, 1-100 (default 20).
startNoAction-date start, YYYY-MM-DD (default: 1 year ago).
stateNoPlace-of-performance state, e.g. 'CA'.
agencyNoAwarding agency, top-tier exact name, e.g. 'Department of Defense'.
keywordNoFull-text keyword filter.
categoryNocontracts (default), idvs, grants, loans, direct_payments, or other.
recipientNoRecipient name search, e.g. 'Lockheed'.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already cover safety (read-only, idempotent, non-destructive), so the bar is lower. The description adds useful behavioral context: output is normalized flat JSON with listed fields, category must be singular, date omission triggers the last-year default, and it complements get_opportunities. No contradictions with annotations.

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?

Three dense sentences: front-loaded with subject and source, then output shape, then usage rules. No filler, no redundancy with the schema, and every sentence earns its place.

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 no output schema, the description compensates by enumerating the returned fields and explaining source, category, date, and workflow. Given 9 optional and well-documented parameters, nothing essential is missing; pagination is self-explanatory from the 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?

All 9 parameters have schema descriptions (100% coverage), so the baseline is 3. The description mostly restates category values and date-default behavior already present in the schema, adding no new per-parameter semantics beyond broader workflow context.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: retrieving federal spending awards from USAspending.gov, and immediately bounds the scope with award categories and the main output fields. It pairs with get_opportunities but does not explicitly contrast with the sibling get_grants, which weakens differentiation.

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?

Provides concrete usage rules: choose one category per call, omit dates to get the trailing year, and use alongside get_opportunities for the solicitation-to-award workflow. It does not explicitly state when to prefer get_awards over the get_grants sibling.

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

get_companyGet a company profileA
Read-onlyIdempotent
Inspect

CIK, legal name, SIC industry, fiscal-year end, exchanges and website for a ticker, resolved from SEC EDGAR submissions.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYesUS stock ticker, e.g. 'AAPL'.

TDQS

A4/5.0
Behavior4/5

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

Annotations already indicate safe, read-only, idempotent behavior. The description adds transparency about the data source (SEC EDGAR submissions) and the specific fields returned, providing context beyond the annotations. No contradictions found.

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 a single sentence that efficiently lists the returned fields and the data source. No unnecessary words or repetition.

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?

Given the single parameter, high annotation coverage, and no output schema, the description is nearly complete. It specifies the output fields and source. Minor omission: it does not explicitly state that the tool returns a single company, but this is implied by the ticker parameter.

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?

The input schema has 100% coverage with a clear description for 'ticker'. The description does not add additional meaning beyond the schema's definition, so a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns specific company profile fields (CIK, legal name, SIC industry, etc.) for a given ticker, resolved from SEC EDGAR. It distinguishes from sibling tools like get_filings or get_fundamentals by specifying the exact output type.

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

Usage Guidelines3/5

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

The description implies usage for retrieving a company profile but lacks explicit when-to-use or when-not-to-use guidance. It does not mention alternatives or conditions, though sibling names provide some context. Usage is implied rather than directly instructed.

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

get_congressGet congressional stock trades (House STOCK Act)A
Read-onlyIdempotent
Inspect

Congressional stock trades parsed from US House STOCK Act periodic transaction reports, normalized to flat JSON: member, state/district, ticker, buy or sell, the disclosed dollar range, transaction and disclosure dates, and a House disclosure PDF link. Pass a ticker for one stock, or omit it for the recent feed. House-only for now (Senate coming); amounts are ranges and disclosure lags the trade by up to 45 days.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoTrades to return, 1-100 (default 40).
actionNoFilter the feed to 'buy' or 'sell'.
tickerNoStock ticker for one-stock history, e.g. 'NVDA'. Omit for the recent feed.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, covering safety. The description adds behavioral context beyond annotations: it specifies the output format (flat JSON fields), notes that amounts are ranges and disclosure lags by up to 45 days, and clarifies House-only scope. This enriches the agent's understanding without contradicting annotations.

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 three sentences with no redundancy: the first defines the data and output, the second gives usage, and the third adds critical caveats. Key information is front-loaded (what it returns) and the entire text is compact and purposeful. Every sentence earns its place.

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 no output schema, the description must convey the return structure, which it does by enumerating fields (member, state/district, ticker, buy/sell, dollar range, dates, PDF link). It also explains how to filter, the data source, and limitations (House-only, range amounts, disclosure lag). This is complete for an agent to call it correctly and interpret results, given the simple read-only nature and annotations covering safety.

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% for all three parameters (limit, action, ticker), so the schema already defines them. The description repeats the ticker usage ('Pass a ticker for one stock, or omit it for the recent feed') which is already in the schema, adding no new semantic depth. It does not elaborate on limit or action beyond the schema. Baseline of 3 is appropriate given high coverage and minimal additional meaning.

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 clearly states the tool's purpose: retrieving congressional stock trades from US House STOCK Act reports, normalized to flat JSON with a specific list of fields. It distinguishes itself from sibling tools by focusing on congressional trades (not corporate holdings or filings), and the title reinforces this. The verb 'get' and resource are unambiguous.

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 provides clear usage instructions: 'Pass a ticker for one stock, or omit it for the recent feed.' It also discloses scope limitations ('House-only for now (Senate coming)') and data caveats (amounts are ranges, disclosure lag). While it doesn't explicitly name alternatives, the domain is unique among siblings, so context is sufficient. A minor gap is not stating when to prefer this over, say, get_holdings, but the distinction is implicit.

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

get_eventsGet 8-K material eventsA
Read-onlyIdempotent
Inspect

8-K material events for a ticker as typed items (2.02 earnings, 5.02 executive change, 1.05 cybersecurity incident, 2.01 acquisition, etc.), each with a notable flag for the market-moving ones and a link to the filing. Pass item to filter to one event type (e.g. '4.02' for every restatement a company filed). Pass ticker='restatements' or 'auditor-changes' for the market-wide red-flag feed of recent item 4.02 / 4.01 8-Ks across all filers.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoFor the market-wide feeds: lookback window in days (default 45).
itemNoFilter to a specific 8-K item code, or comma-separated codes, e.g. '4.02' (restatement) or '5.02,2.02'.
limitNoNumber of events, 1-100 (default 20; 50 for feeds).
tickerYesUS stock ticker (e.g. 'AAPL'), or 'restatements' / 'auditor-changes' for the market-wide item feed.
notableNoOnly market-moving events (default false).

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already supply readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds behavioral context by explaining that results are typed items, include a notable flag for market-moving events, link to the filing, and that special ticker values change the tool into a market-wide red-flag feed.

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?

Three sentences that front-load the core purpose, then provide filter and special-mode instructions without redundancy. Every sentence adds functional value, and the description is neither bloated nor under-specified.

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, filtered-list tool with multiple modes, the description covers the essential behaviors: event types, notable filtering, filing links, item filtering, and market-wide feeds. The schema handles parameter defaults and constraints, and the annotations cover safety, so nothing critical is missing for an agent to invoke the tool 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%, so the schema already documents all five parameters with meaningful descriptions. The tool description reinforces examples like '4.02' and the special ticker values, but most of that information is duplicated from the schema rather than adding substantial new meaning beyond the structured definitions.

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 opens with a specific verb and resource: 8-K material events for a ticker, presented as typed items with notable flags and filing links. It also clearly distinguishes the market-wide feed modes ('restatements', 'auditor-changes') from the per-ticker use case, so an agent can tell this apart from filing-level sibling tools like get_filings or search_filings.

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 gives concrete usage instructions: pass an item code to filter to a single event type, pass special ticker values for market-wide feeds, and use notable to isolate market-moving events. It does not explicitly name sibling alternatives or state when not to use this tool, but the context is clear enough to guide selection.

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

get_filingsGet recent SEC filingsB
Read-onlyIdempotent
Inspect

Recent SEC filings for a ticker (10-K/10-Q/8-K) with filing/report dates and document links.

ParametersJSON Schema
NameRequiredDescriptionDefault
formNoOptional form filter, e.g. '10-K', '10-Q', '8-K'.
limitNoNumber of filings to return, 1-100 (default 20).
tickerYesUS stock ticker, e.g. 'AAPL'.

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, non-destructive, and open world behavior. The description adds that the output includes filing/report dates and document links, but does not detail other behaviors (e.g., pagination, rate limiting). It adds some value 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.

Conciseness5/5

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

The description is a single, front-loaded sentence with no redundant words. Every part contributes to understanding the tool's core function.

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

Completeness3/5

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

For a simple tool with three parameters and no output schema, the description provides adequate context about the response content. However, it lacks details on the recency or ordering of filings (e.g., defaults to last 20).

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%, providing clear parameter definitions. The tool description adds no additional parameter information, so it meets the baseline expectation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves recent SEC filings for a ticker, mentioning common form types and response contents (dates and links). It distinguishes the tool's purpose but does not explicitly differentiate from sibling tools.

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?

No guidance is provided on when to use this tool versus alternatives (e.g., get_fundamentals, get_insider). The description lacks when/when-not and alternative recommendations.

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

get_form_dGet Form D private placementsA
Read-onlyIdempotent
Inspect

Parsed Form D notices — the filing a company makes when it raises money in a private placement under a Regulation D exemption. Each carries the issuer, jurisdiction, industry, amount offered and sold, the exemption, related persons, and date of first sale. Pass a CIK (or ticker if public) for one issuer, or 'latest' for the market-wide feed of new private raises.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of notices, 1-100 (default 20 for latest, 10 per issuer).
identifierYesIssuer CIK (Form D issuers are usually private), a ticker if public, or 'latest' for the market-wide feed.

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already indicate readOnly, idempotent, and non-destructive behavior. The description adds useful context by listing the output fields and explaining the 'latest' feed behavior. However, it doesn't disclose potential pagination limits, error handling, or any special side effects beyond 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.

Conciseness5/5

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

Two sentences, front-loaded with purpose, then usage. No filler words. Every sentence adds value: one defines the resource and its content, the other explains the parameter modes. Excellent structure.

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?

The tool is simple with only two parameters, a complete schema, and comprehensive annotations. The description covers what the data contains, how to query it, and the two ways to use it. No output schema exists, but the description lists the key fields, making it complete enough for an agent.

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 are already documented. The description adds helpful guidance about CIK versus ticker for private issuers and the default limits, but it largely restates what the schema already provides. A baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool parses Form D notices and lists the key data elements (issuer, jurisdiction, industry, amount, exemption, etc.). It distinguishes itself from generic filing tools by focusing specifically on private placement filings under Regulation D.

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 gives explicit instructions on how to use the tool: pass a CIK, ticker, or 'latest' for a market-wide feed. It also explains the context (private placements under Reg D). It doesn't mention exclusions or compare directly with siblings, but 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.

get_fundamentalsGet company financial statementsA
Read-onlyIdempotent
Inspect

Normalized income statement, balance sheet, and cash flow for a US-listed ticker, parsed from SEC EDGAR XBRL. Counts as one request on the Edgrapi plan.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of periods to return, 1-20 (default 5).
periodNoReporting period (default annual).
tickerYesUS stock ticker, e.g. 'AAPL'.

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint. The description adds context about the data source (SEC EDGAR XBRL) and billing plan, which are beneficial beyond the annotations. No contradictions.

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?

Two sentences: first defines purpose and source, second adds billing info. No redundant phrases, perfectly front-loaded and efficient.

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?

Given the tool's simplicity (3 parameters, no output schema), the description is complete: it specifies the financial statements returned, data source, and billing cost. Could mention normalization briefly, but not necessary.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents all parameters. The description adds no additional semantic meaning for the parameters beyond what's in the schema, which is adequate but not enhanced.

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 clearly states it retrieves 'income statement, balance sheet, and cash flow' for a US-listed ticker from SEC EDGAR XBRL. This distinguishes it from siblings like get_ratios or get_filings.

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

Usage Guidelines3/5

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

The description mentions the billing impact ('counts as one request'), but does not explicitly state when to use this tool versus alternatives like get_ratios or get_filings. Usage is implied by name and purpose but lacks explicit guidance.

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

get_grantsGet federal grant opportunities (Grants.gov)A
Read-onlyIdempotent
Inspect

Federal grant funding opportunities from Grants.gov, normalized into flat JSON. Each carries the opportunity id and number, title, agency, status, open and close dates, the Assistance Listing (CFDA) numbers, and the grants.gov link. Defaults to open opportunities (posted + forecasted). Completes the gov-funding trio with get_opportunities (contracts) and get_awards (spending).

ParametersJSON Schema
NameRequiredDescriptionDefault
alnNoAssistance Listing (CFDA) number, e.g. '93.217'.
limitNoRecords to return, 1-100 (default 20).
agencyNoAgency code filter, e.g. 'HHS-OPHS'.
offsetNoStart record number (default 0).
statusNoPipe/comma list of forecasted, posted, closed, archived (default posted|forecasted).
keywordNoFull-text keyword filter.
categoryNoFunding category code, e.g. 'HL' (health).

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already signal read-only, open-world, idempotent, non-destructive behavior. The description adds useful behavior beyond that: results are normalized to flat JSON, include a specific field set, and default to open opportunities (posted + forecasted). It doesn't address sorting, data freshness, or pagination behavior, but the safety profile is covered.

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?

Three sentences with no filler: the first scopes the tool, the second states output fields, and the third covers defaults and sibling differentiation. Key information is front-loaded.

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?

Even without an output schema, the description enumerates the returned fields and the default status filter. Combined with complete parameter schemas and sibling names, an agent has enough context to select and invoke this tool 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 coverage is 100% and every one of the 7 parameters has a descriptive entry with examples. The description adds no parameter-level meaning beyond the schema, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific resource (federal grant funding opportunities from Grants.gov), specifies output shape (flat JSON with key fields), and explicitly separates this tool from get_opportunities (contracts) and get_awards (spending). This prevents agent confusion among the gov-funding siblings.

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 identifies the alternative tools in the same domain via the 'gov-funding trio' sentence. However, it does not state explicit conditions like 'use this when the request concerns grants rather than contracts or spending,' so the routing guidance is clear but not fully formalized.

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

get_holdingsGet 13F institutional holdingsA
Read-onlyIdempotent
Inspect

A fund's latest 13F portfolio parsed from the SEC information table: every position ranked by value, aggregated by CUSIP across sub-managers, options flagged put/call, and diffed against the prior quarter (new / added / reduced / exited). Identify the fund by a known name (berkshire, burry, ackman, bridgewater, citadel), a CIK, or a filer ticker (BRK-B).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax positions, 1-500 (default 50).
changesNoDiff vs the prior quarter (default true).
identifierYesFund name (e.g. 'berkshire', 'burry', 'pershing-square'), a CIK, or a ticker whose company files the 13F (e.g. BRK-B).

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already convey read-only, idempotent, non-destructive behavior. The description adds valuable context beyond that: aggregation by CUSIP, put/call flags for options, and a quarter-over-quarter diff (new/added/reduced/exited). This gives the agent a clear picture of the output shape and processing behavior without contradicting the 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 two sentences, front-loaded with the core purpose and enriched with relevant details about output composition and identifier options. It avoids filler and each clause contributes meaning. A slight sentence break at the diff explanation could improve readability, but overall it is well-structured.

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?

For a read-only tool with no output schema, the description adequately describes what the tool returns (positions, aggregation, option flags, diff) and how to specify the fund. The identifier explanation is comprehensive and the annotations cover safety and idempotency. Nothing critical is missing for an agent to call this 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%, so the schema already documents all three parameters and their meanings. The description partially reiterates the identifier semantics (providing additional example fund names like 'ackman' and 'bridgewater') and clarifies the default for changes (diff vs prior quarter), but it adds limited new information beyond the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('get'), a precise resource ('13F holdings'), and details what the output contains (ranked positions, CUSIP aggregation, option flags, quarter-over-quarter diff). It also explicitly lists the accepted identifier forms, making it clear this tool is for fund holdings and distinguishable from siblings like get_company or get_events.

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 states what the tool is for (retrieving a fund's latest 13F portfolio) and how to identify the target fund (name, CIK, or filer ticker). It does not name alternative tools for when this should not be used, but the domain is specific enough that an agent can infer from the sibling list. A brief exclusion note would push this to 5.

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

get_insiderGet parsed insider transactionsA
Read-onlyIdempotent
Inspect

Parsed SEC Form 4 insider trades for a ticker: owner, role, transaction code (P open-market purchase, S sale, A award, M exercise, F tax withholding), shares, price, dollar value, and a 10b5-1 plan flag. Code P is the only own-money buy signal; A/M/F are automatic compensation. Set form=3/5 for holdings statements or form=144 for notices of proposed sale (an intent-to-sell signal that precedes the Form 4). Pass ticker='latest' for the market-wide feed of the biggest open-market buys, or ticker='clusters' for companies where several insiders bought at once.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoFor 'clusters': lookback window in days (default 15).
formNoOwnership form: 4 (trades, default), 3 (initial holdings), 5 (annual), or 144 (notice of proposed sale — an intent-to-sell signal that precedes the Form 4).
limitNoNumber of results, 1-100 (default 20).
tickerYesUS stock ticker (e.g. 'AAPL'), 'latest' for market-wide buys, or 'clusters' for cluster buys.
min_insidersNoFor 'clusters': min distinct insiders (default 3).

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already cover readOnly, idempotent, and non-destructive behavior. The description adds substantial behavioral context beyond that: it explains that code P is the only own-money buy signal, that A/M/F are automatic compensation, that form=144 is an intent-to-sell signal, and that 'latest' returns the biggest open-market buys. This significantly enriches the agent's understanding of the tool's behavior.

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 three sentences but packs dense, high-value information. It front-loads the core function in the first sentence, then explains transaction codes and special modes. Every clause earns its place; 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 tool with 5 parameters and no output schema, the description covers all major aspects: return fields, parameter behavior, special modes, and the meaning of transaction codes. It also mentions defaults for 'days' and 'min_insiders' implicitly through schema, and the description is self-sufficient for an agent to decide when and how to invoke it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Even though the schema covers 100% of parameters, the description adds meaning beyond the schema by explaining special values for 'ticker' ('latest' and 'clusters') and the semantic difference between form types. It also clarifies the business meaning of transaction codes, which is not in the schema. This raises the score well above the baseline.

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 opens with a specific verb and resource: 'Parsed SEC Form 4 insider trades for a ticker'. It lists exact data fields (owner, role, transaction code, shares, price, dollar value, 10b5-1 flag) and distinguishes itself from siblings like get_filings by focusing on parsed insider transactions and offering unique special modes ('latest', 'clusters').

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 provides clear context for when to use each alternative: it explains the transaction code meanings (P vs A/M/F), directs users to form=3/5 for holdings statements and form=144 for proposed sales, and explains special ticker values 'latest' and 'clusters'. However, it does not explicitly name sibling tools or state when NOT to use this tool, so it falls just short of a 5.

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

get_opportunitiesGet federal contract opportunities (SAM.gov)A
Read-onlyIdempotent
Inspect

Federal contract opportunities from SAM.gov — solicitations, presolicitations, sources-sought, and award notices — normalized into flat JSON. Each carries the notice id, title, solicitation number, posted date, type, set-aside, NAICS, place of performance, award (when present), a point of contact, and the sam.gov link. Leave the dates off for the recent feed; SAM caps a query window at one year.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoRecords to return, 1-200 (default 20).
naicsNoNAICS code filter, up to 6 digits, e.g. '541519'.
ptypeNoProcurement type: o solicitation, p presolicitation, a award, etc.
stateNoPlace-of-performance state, e.g. 'TX'.
titleNoMatch on opportunity title.
offsetNoPagination offset (default 0).
posted_toNoPosted-date end, YYYY-MM-DD (default: today).
set_asideNoSet-aside code, e.g. 'SBA', '8A', 'WOSB', 'HZC'.
posted_fromNoPosted-date start, YYYY-MM-DD (default: 30 days ago).

TDQS

A4.4/5.0
Behavior5/5

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

Beyond the readOnly/idempotent/openWorld annotations, the description discloses the response shape ('normalized into flat JSON. Each carries...'), optional fields ('award (when present)'), and an external constraint ('SAM caps a query window at one year'). No contradiction with annotations.

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?

Two compact sentences: the first front-loads the resource, scope, and returned fields; the second delivers a critical usage warning. No wasted words or repetition of schema descriptions.

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, 9-parameter query tool with no output schema, the description is complete enough: it enumerates the return fields, notes optional award data, and warns about the one-year search window. An agent can invoke and interpret results correctly without further documentation.

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 schema already covers all 9 parameters, so the baseline is 3. The description adds one valuable constraint beyond the schema: the date-filter window is capped at one year, so posted_from/posted_to must respect that. Other parameters gain no new meaning, but the schema carries them.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific resource and scope: federal contract opportunities from SAM.gov, and enumerates the notice types (solicitations, presolicitations, sources-sought, award notices). It does not explicitly contrast with sibling tools such as get_awards or get_grants, so it falls just short of full sibling differentiation.

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 domain context makes the intended use clear ('Federal contract opportunities from SAM.gov'), and it gives one explicit operational rule: leave the dates off for the recent feed because SAM caps a query window at one year. It does not state when-not-to-use or name alternative tools, so not a 5.

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

get_ratiosGet computed financial ratiosA
Read-onlyIdempotent
Inspect

Margins, returns (ROE/ROA), leverage and liquidity ratios for a ticker, derived from SEC EDGAR fundamentals, plus per-share figures (eps_diluted, book_value_per_share, shares_outstanding). Price-based ratios (P/E, P/B) aren't returned because EDGAR has no market price; divide your own price by the per-share figures.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYesUS stock ticker, e.g. 'AAPL'.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already mark read-only, idempotent, non-destructive; description adds behavioral context by naming the source (SEC EDGAR fundamentals) and a specific limitation (no market price). It also explains why the limitation exists and offers a workaround, going beyond the annotation hints.

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?

Two tight sentences front-load the main content and then handle the key exception. No filler or redundant restatement of the schema.

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 one well-documented parameter and safety annotations, the description covers the essential return categories and the main limitation. The absence of an output schema is partly mitigated by enumerating returned figures, though a reader might want exact units or formatting.

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?

All parameter meaning is already in the schema (ticker with US stock example), so description doesn't need to add much. It reinforces the ticker context by framing the output as ratios for a ticker, but no new semantic detail beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly identifies it computes financial ratios from SEC EDGAR fundamentals for a ticker and enumerates the categories (margins, returns, leverage, liquidity, per-share). Explicitly distinguishes itself by stating price-based ratios like P/E and P/B are absent, which separates it from a generic ratio tool.

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?

Implied usage is when you need fundamental ratios for a US ticker, and it explicitly warns price-based ratios are unavailable, directing users to divide by per-share figures. It does not name a sibling tool as an alternative, but the exclusion doubles as a when-not-to-use hint.

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

get_sectionsGet 10-K/10-Q narrative sectionsA
Read-onlyIdempotent
Inspect

Narrative sections from the latest 10-K/10-Q as clean text — Risk Factors (item 1A), MD&A (item 7), Business (item 1), etc. Built for LLM/RAG equity research. Omit 'item' to list the available sections first.

ParametersJSON Schema
NameRequiredDescriptionDefault
formNoFiling type: '10-K' (default) or '10-Q'.
itemNoSection to fetch, e.g. '1A' (Risk Factors) or '7' (MD&A). Omit to list available sections.
tickerYesUS stock ticker, e.g. 'AAPL'.

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already indicate the tool is readOnly, openWorld, idempotent, and not destructive. The description adds clarity on behavioral traits: it retrieves the latest filing, returns 'clean text', and provides a listing mode when 'item' is omitted. This complements the annotations well, though some details like error handling are missing.

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 extremely concise—two sentences that front-load the core purpose and examples, followed by a specific usage hint. Every word earns its place, with no redundancy or irrelevant information.

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

Completeness3/5

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

Given the lack of an output schema, the description could be more explicit about the return format (e.g., plain text, multiple sections at once). It implies a list when 'item' is omitted and a single section when provided, but this is not fully spelled out. The description is sufficient for basic usage but leaves some gaps for an AI agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so parameters are well-documented. The description reinforces the behavior of omitting 'item' to list sections, which is already in the schema description for 'item'. It adds minimal new semantics beyond reminding the agent of this optional feature, resulting in a baseline score.

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 clearly states the tool retrieves narrative sections from the latest 10-K/10-Q filings, listing specific items (Risk Factors, MD&A, Business). The verb 'get' matches the tool name, and the resource is distinctly different from sibling tools (company, events, filings, etc.), making its purpose unambiguous.

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

Usage Guidelines3/5

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

The description provides the useful hint to omit 'item' to list available sections, which helps the agent decide when to call without parameters. However, it lacks explicit guidance on when not to use this tool, prerequisites (e.g., valid ticker), or comparison to alternatives among siblings. The context is adequate but minimal.

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

get_sharesGet shares outstanding & public floatA
Read-onlyIdempotent
Inspect

Common shares outstanding (latest + history) and public float for a ticker, from the SEC XBRL cover-page tags. Shares outstanding updates every 10-Q/10-K; public float is reported on the 10-K cover. The inputs for market-cap and free-float math.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYesUS stock ticker, e.g. 'AAPL'.
historyNoInclude the full reported history (default false).

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false. The description adds value beyond those by disclosing the exact source (SEC XBRL cover-page tags) and the update cadence (shares outstanding at every 10-Q/10-K; public float on the 10-K cover). It does not describe return formatting, but given the annotations cover safety, this is a minor gap.

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?

Two sentences, each carrying distinct information: what is returned, the data source and refresh behavior, and the intended use case. No filler; key terms are front-loaded.

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 only two simple parameters and safety-related annotations, the description covers the essential semantics: source, freshness, and use case. The lack of an output schema is mitigated by explicitly listing what is returned. Some format details are unspecified, but the tool is simple enough that this is not a serious gap.

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?

The schema fully documents both parameters (ticker and history), so the description does not need to compensate. It reinforces the history option by mentioning 'latest + history' but adds no syntax or formatting details beyond the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the resource precisely ('common shares outstanding (latest + history) and public float') and identifies the SEC XBRL cover-page tags as the data source, which helps distinguish it from broader siblings like get_fundamentals or get_xbrl. However, it does not explicitly differentiate itself from any sibling by name, so it falls just short of full distinction.

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 final sentence states the intended use case ('The inputs for market-cap and free-float math'), giving agents a concrete reason to select this tool. It does not mention when not to use it or name alternative tools, but the context is clear enough for a dedicated shares tool.

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

get_subsidiariesGet company subsidiaries (10-K Exhibit 21)A
Read-onlyIdempotent
Inspect

The company's subsidiaries and their jurisdictions of incorporation, parsed from Exhibit 21 of its latest 10-K. Best-effort parse of an HTML exhibit; empty for filers that list only significant subsidiaries or file no Exhibit 21.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYesUS stock ticker or CIK, e.g. 'AAPL'.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already indicate readOnly, idempotent, open-world, and non-destructive behavior. The description adds meaningful detail beyond those annotations, including the best-effort nature of the parse, the HTML source, and specific conditions leading to an empty result (companies listing only significant subsidiaries or omitting Exhibit 21).

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 two concise, information-dense sentences. The primary output and source are front-loaded, followed by necessary caveats, with no redundant or ambiguous phrasing.

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

Completeness3/5

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

Although the tool has only one parameter and useful annotations, it lacks an output schema, and the description does not specify the exact result shape (e.g., array of objects with 'name' and 'jurisdiction' fields). This could leave an agent uncertain about how to consume the response, so completeness is only moderate.

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?

The only parameter, 'ticker', is fully documented in the schema as 'US stock ticker or CIK, e.g. AAPL'. Since schema coverage is 100%, the description adds no additional parameter-level meaning, warranting the baseline score of 3.

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 clearly states what the tool returns: the company's subsidiaries and their jurisdictions of incorporation, parsed from Exhibit 21 of the latest 10-K. Reference to Exhibit 21 and the specific data type makes it distinguishable from sibling tools like get_company or get_sections.

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 provides clear context: data comes from the latest 10-K's Exhibit 21, with important caveats (best-effort parsing and empty results for certain filers). It does not name alternative tools, so it lacks full when-to-use versus when-not-to-use guidance, but the intended scenario is apparent.

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

get_xbrlConvert SEC XBRL to JSONA
Read-onlyIdempotent
Inspect

The full XBRL-to-JSON converter. By default returns a company's normalized income statement, balance sheet and cash flow across every reported period, plus a concept index of every us-gaap/dei tag it reports. Pass concept to pull the raw time series for any specific tag(s) beyond the curated fundamentals; pass accession for every concept reported in one specific filing.

ParametersJSON Schema
NameRequiredDescriptionDefault
cikNoSEC CIK, alternative to ticker.
limitNoMax periods per statement, 1-100 (default 40).
periodNoStatement period (default annual).
tickerNoUS stock ticker, e.g. 'AAPL'.
conceptNoComma-separated us-gaap/dei tag(s) to return the raw series for, e.g. 'Revenues,Assets'. Omit for normalized statements + concept index.
accessionNoAn accession (e.g. '0000320193-24-000123') to return every XBRL concept reported in that one filing. Overrides ticker/concept.

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already establish read-only, idempotent, open-world, and non-destructive behavior. The description adds meaningful behavioral context beyond that: it returns data 'across every reported period,' provides a full concept index, and lets `accession` override the company-level modes — all useful expectations for an agent.

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?

Two sentences with no filler. The first sentence front-loads the core purpose and default behavior; the second covers the two specialized parameters compactly. Every clause earns its place.

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?

For a tool with six optional parameters and no output schema, the description gives a solid mental model of what comes back. It covers the default output, the optional overrides, and the filing-scoped behavior. A slightly fuller note on the JSON return format or company-identifier requirements would make it fully complete, but the current level is strong.

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 the baseline is 3. The description adds value by explaining that `concept` retrieves 'raw time series' beyond the 'curated fundamentals' and that `accession` returns 'every XBRL concept reported in that one filing,' clarifying the intent of those parameters beyond their schema descriptions.

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 action and resource: 'full XBRL-to-JSON converter' for SEC XBRL data. It then enumerates concrete outputs — normalized income statement, balance sheet, cash flow, and a concept index — making its purpose unmistakable and distinct from financial-data siblings.

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 explains three usage modes: the default normalized-statement output, passing `concept` for raw tag time series, and passing `accession` for single-filing concept dumps. This gives clear contextual guidance, though it does not explicitly contrast with siblings like get_fundamentals or get_filings, so it falls short of a full 5.

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

resolve_entityResolve a ticker, CIK, or CUSIPA
Read-onlyIdempotent
Inspect

Map any one of a ticker, CIK, or CUSIP to the canonical SEC entity: legal name, CIK, ticker(s), exchange, SIC industry and sector, state of incorporation, and location. The foundational lookup for identifying a filer.

ParametersJSON Schema
NameRequiredDescriptionDefault
cikNoSEC CIK, e.g. '320193' (zero-padding optional).
cusipNo9-character CUSIP, e.g. '037833100'.
tickerNoUS stock ticker, e.g. 'AAPL'.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already communicate readOnlyHint, idempotentHint, openWorldHint, and non-destructiveness. The description adds useful behavioral context by listing the resolved fields (legal name, CIK, ticker(s), exchange, SIC, state of incorporation, location) and by clarifying that any one identifier maps to the same canonical entity.

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?

Two focused sentences with no filler. The core action and accepted inputs lead, followed by the output payload and the tool's broader role. Every sentence adds information.

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 output schema, the description appropriately lists the resolved fields and frames the tool as a canonical lookup. It could further clarify whether multiple identifier parameters may be combined or how conflicts are resolved, but the essential call-and-response behavior is sufficiently covered.

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 the baseline is 3, but the description adds semantic value by stating that the three identifier parameters are interchangeable entry points into the same entity resolution. This relationship among parameters is not expressed in the individual schema descriptions.

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 uses the specific verb 'Map' and names the exact resource ('canonical SEC entity') plus the three accepted identifier types. It enumerates the output fields, making the tool's purpose unmistakable and distinct from sibling data-retrieval tools.

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 frames the tool as 'The foundational lookup for identifying a filer,' which gives clear context for when an agent should use it. It does not explicitly name sibling alternatives or when-not-to-use conditions, so it stops short of a 5.

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

search_filingsFull-text search across SEC filingsA
Read-onlyIdempotent
Inspect

Search the full text of every SEC filing since 2001 (the EDGAR full-text index). Returns matching filing documents with company, form, date, 8-K item codes, and a SEC.gov link. Quote a phrase for exact match; filter by form and date range.

ParametersJSON Schema
NameRequiredDescriptionDefault
qYesSearch query. Quote a phrase ("climate change") for an exact match; space-separated terms are ANDed.
enddtNoOnly filings on/before this date, YYYY-MM-DD.
formsNoComma-separated form filter, e.g. '8-K' or '10-K,10-Q'.
limitNoResults to return, 1-100 (default 20).
offsetNoPagination offset into the result set (default 0).
startdtNoOnly filings on/after this date, YYYY-MM-DD.

TDQS

A3.8/5.0
Behavior4/5

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

With annotations already declaring readOnlyHint, openWorldHint, idempotentHint, and non-destructive behavior, the description adds useful context: it covers filings since 2001, returns a SEC.gov link, includes 8-K item codes, and describes exact-match behavior. It does not go into pagination or rate limits, but the safety profile is already established by annotations.

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?

Three sentences with the core purpose and scope front-loaded, followed by return format and query tips. Every sentence contributes information and none repeats the schema verbatim.

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?

Because there is no output schema, the description names the key returned fields (company, form, date, 8-K item codes, SEC.gov link), which is sufficient for an agent to interpret results. The remaining minor gap is that it does not describe pagination behavior, though limit and offset are fully documented in the 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 the input schema already documents every parameter. The description's 'quote a phrase' and 'filter by form and date range' guidance adds no new semantics beyond the schema definitions for q, forms, startdt, and enddt.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies a specific verb and resource: 'Search the full text of every SEC filing since 2001 (the EDGAR full-text index).' It also names concrete return fields. However, it does not explicitly explain how this differs from the sibling get_filings, leaving the distinction implicit.

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

Usage Guidelines3/5

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

The description implies usage via 'Quote a phrase for exact match; filter by form and date range,' which gives query tips. It never states when to prefer this tool over siblings such as get_filings, nor does it mention any exclusions.

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
    • Addedget_congress
  2. 3 tool updates
    • Addedget_awards
    • Addedget_grants
    • Addedget_opportunities
  3. 2 tool updates
    • Addedget_form_d
    • Addedget_subsidiaries
  4. 1 tool update
    • Changedget_events4 fields changed
      • addedInput schema / properties / days
        Added value: +{
        +  "description": "For the market-wide feeds: lookback window in days (default 45).",
        +  "type": "integer"
        +}
      • addedInput schema / properties / item
        Added value: +{
        +  "description": "Filter to a specific 8-K item code, or comma-separated codes, e.g. '4.02' (restatement) or '5.02,2.02'.",
        +  "type": "string"
        +}
      • changedInput schema / properties / limit / description
        Previous value: -"Number of events, 1-100 (default 20)."New value: +"Number of events, 1-100 (default 20; 50 for feeds)."
      • changedInput schema / properties / ticker / description
        Previous value: -"US stock ticker, e.g. 'AAPL'."New value: +"US stock ticker (e.g. 'AAPL'), or 'restatements' / 'auditor-changes' for the market-wide item feed."
  5. 4 tool updates
    • Addedget_shares
    • Addedget_xbrl
    • Addedresolve_entity
    • Addedsearch_filings
  6. 2 tool updates
    • Addedget_activist
    • Addedget_holdings
  7. 1 tool update
    • Changedget_insider1 field changed
      • addedInput schema / properties / form
        Added value: +{
        +  "description": "Ownership form: 4 (trades, default), 3 (initial holdings), 5 (annual), or 144 (notice of proposed sale — an intent-to-sell signal that precedes the Form 4).",
        +  "enum": [
        +    "3",
        +    "4",
        +    "5",
        +    "144"
        +  ],
        +  "type": "string"
        +}
  8. 1 tool update
    • Changedget_insider4 fields changed
      • addedInput schema / properties / days
        Added value: +{
        +  "description": "For 'clusters': lookback window in days (default 15).",
        +  "type": "integer"
        +}
      • changedInput schema / properties / limit / description
        Previous value: -"Number of filings, 1-100 (default 20)."New value: +"Number of results, 1-100 (default 20)."
      • addedInput schema / properties / min_insiders
        Added value: +{
        +  "description": "For 'clusters': min distinct insiders (default 3).",
        +  "type": "integer"
        +}
      • changedInput schema / properties / ticker / description
        Previous value: -"US stock ticker, e.g. 'AAPL'."New value: +"US stock ticker (e.g. 'AAPL'), 'latest' for market-wide buys, or 'clusters' for cluster buys."
  9. 2 tool updates
    • Addedget_events
    • Addedget_insider
  10. 5 tool updates
    • First observedget_company
    • First observedget_filings
    • First observedget_fundamentals
    • First observedget_ratios
    • First observedget_sections

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    A
    maintenance
    MCP server + TypeScript SDK for 36 U.S. government data APIs — 188 tools. Treasury, FRED, Congress, FDA, CDC, FEC, lobbying, and more. Works with VS Code Copilot, Claude Desktop, Cursor.
    345
    174 npm
    110
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Give your AI agent live SEC EDGAR data: company financials, insider trades, 8-K events, 13F holdings, and the raw filings stream — all normalized to clean JSON, every number traceable back to its sec.gov source filing.
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Enables AI agents to query free public market data through 21 tools spanning 29 datasets sourced from SEC EDGAR/XBRL, FINRA, CFTC, the Federal Reserve, USAspending and exchange APIs. Covers short interest, insider and fund holdings, company financials, macro and policy rates, funding rates, crypto market metrics, IPOs and federal contracts, with no API key required to start.
    22
    613 npm
    Apache 2.0
  • F
    license
    Not graded
    quality
    B
    maintenance
    Keyless, pay-per-call compliance & regulated-data tools for AI agents: OFAC wallet + sanctions/PEP + KYB screening, SEC filings, FRED economics, FDA recalls, federal awards, and continuous monitoring (watch a wallet/company/brand for status changes). USDC via x402 on Base/Solana, no API key, no signup.
    -
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources