insidergraph
Server Details
SEC insider intelligence: trades, 8-K events, planned sales, activist stakes - one entity graph.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
Available Tools
11 toolscluster_buysCluster buysARead-onlyIdempotentInspect
Find issuers where multiple distinct insiders independently bought with their own money (code P) inside a window - a signal raw EDGAR cannot answer. Sorted by total value.
| Name | Required | Description | Default |
|---|---|---|---|
| window_days | No | Lookback window in days, default 30. | |
| min_value_usd | No | Minimum combined buy value per issuer in USD. | |
| min_distinct_insiders | No | Minimum distinct buyers per issuer, default 2. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so the safety profile is covered. The description adds meaningful behavioral detail: eligibility is restricted to code P, insiders must be distinct, there is a lookback window, and results are sorted by total value. This is useful context 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one tight sentence that front-loads the core action and criteria, and it wastes no words. It clearly states what the tool does, why it matters, and how results are ordered.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only tool with moderate complexity and fully documented optional parameters, the description covers the essential behavior and output ordering. The absence of an output schema leaves the return shape somewhat unspecified, but this does not prevent correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All three parameters are already documented in the schema with 100% coverage, so the baseline applies. The description echoes the concepts of window, distinct insiders, and total value but adds no new parameter-level meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb and resource: find issuers where multiple distinct insiders independently bought with code P in a window. It also distinguishes itself from raw EDGAR trade data by framing the output as an analytical signal, which separates it from sibling tools 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this tool is for cluster-buy signal detection rather than raw trade lookup, but it never explicitly names an alternative or states when not to use it. The 'raw EDGAR cannot answer' phrase provides context but leaves routing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
company_profileCompany insider profileARead-onlyIdempotentInspect
START HERE for any company question: one call returns the full insider picture for a ticker or company name - current 5%+ stakeholders (13D/13G), insider buy/sell activity (Form 4), announced sales (Form 144), and recent material events (8-K). Every row links its SEC filing; next_tools names the tool for each deeper question.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Any identifier: ticker in any format (NVDA, NASDAQ:AAPL, $NVDA, BRK.B), company name, CIK number, US ISIN, or CUSIP. | |
| window_days | No | Lookback for insider activity, planned sales, and events; default 90, cap 730. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so no safety concern needs repeating. The description adds valuable behavioral context beyond annotations: it aggregates multiple filing types, returns rows that link to SEC filings, and provides next_tools for follow-up. This helps an agent know what to expect from the call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with 'START HERE,' then efficiently lists the contained data categories and the row-link behavior. No sentence is wasted; each adds selection or invocation value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 2-parameter read-only aggregation tool with no output schema, the description is complete enough. It tells the agent what data comes back, that rows link to filings, and how to proceed for deeper questions. The schema covers input parameters, so nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents query and window_days. The description adds little parameter-level meaning beyond mentioning 'ticker or company name,' which is already in the schema. The baseline of 3 applies because structured fields carry the parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb and resource: one call returns the full insider picture for a ticker or company name, enumerating 13D/13G, Form 4, Form 144, and 8-K data. It also distinguishes itself from sibling tools by explicitly presenting itself as the starting point and noting that deeper questions are routed via next_tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear routing guidance: use this as the START HERE tool for any company question and follow next_tools for deeper dives. It does not explicitly name alternatives or state when not to use it, but the entry-point framing is a strong usage signal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
describe_coverageCoverage and access tierARead-onlyIdempotentInspect
Orientation: what this server covers RIGHT NOW - per-feed live date ranges (coverage deepens daily toward the backfill horizon), your access tier, and an example question per tool. Call this first when unsure what to ask or whether a date range is covered.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint and idempotentHint annotations, the description adds valuable behavioral context: the data reflects live, changing coverage ('RIGHT NOW', 'coverage deepens daily toward the backfill horizon') and includes access-tier information. This helps the agent understand the dynamic nature of the response.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. The first sentence front-loads the tool's purpose and what it returns; the second gives direct invocation guidance. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter orientation tool with no output schema, the description sufficiently covers what the agent will receive: per-feed live date ranges, access tier, and example questions per tool. It also tells the agent when to call it, making the description complete for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the schema already describes an empty object. No parameter-level documentation is needed, so the description correctly focuses on output content and usage context rather than input semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb-resource pair: 'describe coverage' of the server's per-feed date ranges, access tier, and example questions per tool. It also positions itself as an orientation tool distinct from the domain-specific sibling tools, so an agent can easily tell them apart.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit guidance: 'Call this first when unsure what to ask or whether a date range is covered.' This establishes clear usage context, though it does not enumerate when-not-to-use alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_companyResolve a company identifierARead-onlyIdempotentInspect
Resolve any company identifier to its EDGAR identity: ticker in any format (AAPL, NASDAQ:AAPL, $NVDA, BRK.B), company name, CIK number, US ISIN, or CUSIP. Returns ranked candidates with name, ticker, and CIK. Use it when unsure of the exact ticker before calling the search tools.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | The identifier to resolve, e.g. "nvidia", "NASDAQ:AAPL", "1045810", "US0378331005". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint and idempotentHint, so safety is covered. The description adds value by explaining the output behavior: it returns 'ranked candidates with name, ticker, and CIK,' which tells the agent to expect potential ambiguity and ranked resolution.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the primary action and scope, and every sentence earns its place. The usage guidance is appended naturally without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With only one parameter, clear annotations, and no output schema, the description covers the essential context: what the tool does, what inputs it accepts, and what the return looks like. An agent has enough information to select and invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the schema already gives examples, but the description adds meaningful context by listing the full range of accepted formats: ticker variants, company name, CIK, ISIN, and CUSIP. This helps the agent understand what kinds of strings are valid inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Resolve'), a specific resource ('any company identifier to its EDGAR identity'), and enumerates the accepted input formats. This clearly distinguishes the tool from its siblings and leaves no doubt about its core function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 the tool: 'when unsure of the exact ticker before calling the search tools.' It provides clear context and timing, though it does not name specific sibling tools or state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_insider_tradesSearch insider tradesARead-onlyIdempotentInspect
Search normalized insider transactions from SEC Forms 3/4/5 (US public companies). Returns rows with pre-computed value_usd and a quote-ready summary string with the SEC filing link.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows per page, default 50, cap 500. | |
| since | No | Earliest transaction date, YYYY-MM-DD. | |
| until | No | Latest transaction date, YYYY-MM-DD. | |
| cursor | No | Opaque pagination token from the previous response's page.next_cursor; pass it back verbatim to fetch the next page. | |
| insider | No | Substring match on the insider's name, e.g. "MUSK". | |
| tickers | No | Ticker symbols to include, e.g. ["NVDA","AAPL"]. Empty = all issuers. | |
| txn_type | No | buy (open-market/private purchase P), sell (S), grant (A), exercise (M/X), or gift (G). Omit for all. | |
| relationship | No | Filter by insider role. | |
| min_value_usd | No | Minimum transaction value in USD (shares x price). | |
| exclude_10b5_1 | No | Drop pre-scheduled 10b5-1 plan transactions; true (default) for signal-seeking, false for full audit. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool read-only and idempotent, so the description does not need to restate safety. It adds useful behavioral detail about normalized data, pre-computed value_usd, a quote-ready summary string, and the SEC filing link, which goes beyond the structured annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences carry the essential information with no filler. The primary action is front-loaded, and the additional return-value detail is concise and directly useful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description supplies a reasonable summary of return content, including value_usd and the quote-ready string with filing link. It does not enumerate all returned fields or mention default ordering, but the complete parameter schema and read-only annotations cover most invocation needs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema coverage is 100%, so every parameter is already documented with descriptions and enums. The description adds no parameter-specific meaning beyond mentioning value_usd, but it does not need to compensate because the schema is complete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches normalized insider transactions from SEC Forms 3/4/5, which is a specific verb and resource. It does not explicitly contrast itself with sibling tools like get_planned_sales or cluster_buys, but the resource is specific enough for most agents to distinguish it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to prefer this tool over alternatives such as get_planned_sales or trades_before_events. There is no mention of exclusions, complementary tools, or context where this search is the right choice, leaving selection entirely to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_material_eventsSearch material corporate eventsBRead-onlyIdempotentInspect
Search SEC 8-K material corporate events (bankruptcies, restatements, officer departures, delistings, cyber incidents, earnings, M&A...) normalized to item codes, with SEC filing links.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows per page, default 50, cap 500. | |
| since | No | Earliest event date, YYYY-MM-DD. | |
| until | No | Latest event date, YYYY-MM-DD. | |
| cursor | No | Opaque pagination token from the previous response's page.next_cursor; pass it back verbatim to fetch the next page. | |
| tickers | No | Ticker symbols to include, e.g. ["NVDA"]. Empty = all issuers. | |
| item_codes | No | 8-K item numbers, e.g. ["1.03","5.02"]. 1.03=bankruptcy, 4.02=restatement, 5.02=officer departure, 1.05=cyber incident, 2.02=earnings, 8.01=other. | |
| high_signal | No | Only distress-grade items (1.03, 1.05, 2.04, 2.06, 3.01, 4.02, 5.02). Overrides item_codes. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so the safety profile is covered. The description adds useful behavioral context about normalization to item codes and SEC filing links, but it does not disclose result shape, coverage limits, or pagination behavior beyond what the cursor schema implies.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One dense sentence that front-loads the core purpose, lists representative event types, and notes the two key output characteristics (normalization and SEC links). There is no wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the detailed input schema, read-only annotations, and mention of SEC filing links, the description is largely sufficient for invoking the tool correctly. The main gap is the lack of an explicit return-structure description, though the cursor parameter's schema hints at a page.next_cursor response field.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 all seven parameters and their meanings. The description's mention of item codes aligns with the item_codes parameter but adds little beyond the schema's existing enum explanations.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource ('Search SEC 8-K material corporate events') and enriches it with concrete examples (bankruptcies, restatements, officer departures, cyber incidents). It does not explicitly contrast against siblings like list_recent_filings or get_insider_trades, but the scope is specific enough that an agent can infer the domain.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus alternatives, nor are exclusions or preferred conditions stated. The sibling tools cover related data like insider trades and filings, so an explicit routing hint would materially help; without it, the agent must rely on inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_planned_salesSearch announced insider salesARead-onlyIdempotentInspect
Search SEC Form 144 notices - insiders' PROPOSED sales of restricted/control stock, filed BEFORE the sale executes (the Form 4 reports execution after). A leading indicator: announced-but-not-yet-executed insider selling, with broker and approximate sale date.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows per page, default 50, cap 500. | |
| since | No | Earliest approximate sale date, YYYY-MM-DD. | |
| until | No | Latest approximate sale date, YYYY-MM-DD. | |
| cursor | No | Opaque pagination token from the previous response's page.next_cursor; pass it back verbatim to fetch the next page. | |
| seller | No | Substring match on the seller's name. | |
| tickers | No | Ticker symbols to include. Empty = all issuers. | |
| min_value_usd | No | Minimum aggregate market value of the proposed sale in USD. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is covered. The description adds meaningful behavioral context beyond that: it explains the filing timing (before execution), the regulatory source (SEC Form 144), and the interpretation as a leading indicator. This is substantive and helps the agent understand what the data represents 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. The core action and key differentiator ('filed BEFORE the sale executes') are front-loaded, and the leading-indicator framing adds value without redundancy. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only search tool with 7 optional, well-documented parameters and no output schema, the description covers the domain concept and expected output hints (broker, approximate sale date). It does not explain pagination or return shape, but the schema documents the cursor and the annotations cover safety. Minor gaps remain around result ordering and field availability, but overall it is complete enough for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides full descriptions for all 7 parameters (100% coverage), including the approximate sale date semantics for 'since' and 'until.' The description does not add additional parameter-specific details beyond the schema, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Search SEC Form 144 notices') and identifies the exact resource and filing type. It clearly distinguishes this tool from Form 4-based insider trade tools by emphasizing 'PROPOSED sales... filed BEFORE the sale executes' and calling it a 'leading indicator.' This is unambiguous and differentiated 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when to use this tool: for announced-but-not-yet-executed insider selling, as opposed to Form 4 execution data. It does not explicitly name alternative sibling tools, but the contrast with Form 4 implicitly guides the agent away from executed-trade tools. No explicit when-not-to-use list is provided, 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.
get_stakesSearch 5%+ ownership stakesARead-onlyIdempotentInspect
Search 5%+ beneficial-ownership stakes from Schedules 13D/13G. 13D = ACTIVE intent (activists, acquirers - market-moving); 13G = passive. Latest filing per (issuer, holder) wins, so results are current stakes; superseded history stays in the archive.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows per page, default 50, cap 500. | |
| since | No | Earliest event date, YYYY-MM-DD. | |
| until | No | Latest event date, YYYY-MM-DD. | |
| cursor | No | Opaque pagination token from the previous response's page.next_cursor; pass it back verbatim to fetch the next page. | |
| holder | No | Substring match on the reporting person, e.g. "Icahn". | |
| tickers | No | Ticker symbols to include. Empty = all issuers. | |
| min_percent | No | Minimum percent of class held, e.g. 10. | |
| schedule_type | No | activist (13D family), passive (13G family), or all (default). | all |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, and the description adds significant behavioral context: 'Latest filing per (issuer, holder) wins, so results are current stakes; superseded history stays in the archive.' It also flags 13D as potentially market-moving, which helps interpret results. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three terse sentences front-load the core purpose and then deliver the two most decision-relevant behavioral facts. Every clause earns its place with no filler or repetition of schema details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only search tool with a fully self-documenting schema and no required parameters, the description covers the domain-specific meaning that structured fields cannot: the 13D vs 13G distinction, the 5% threshold, and latest-filing-wins semantics. It could be slightly richer about output shape or explicit alternatives, but nothing essential for invoking the tool is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds meaning beyond the schema by decoding 13D vs 13G in terms of activist/passive intent and by clarifying that results reflect the latest filing per (issuer, holder). This enriches schedule_type and the overall result interpretation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Search'), a concrete resource ('5%+ beneficial-ownership stakes'), and a precise source ('Schedules 13D/13G'). The 13D/13G distinction and latest-filing-wins rule clearly differentiate it from siblings like get_insider_trades and list_recent_filings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context by explaining that 13D represents active/activist intent and 13G represents passive ownership, which directly informs schedule_type usage. It does not explicitly name sibling alternatives or give 'use this instead of X' guidance, so it stops short of full routing support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_recent_filingsRecent filings firehoseARead-onlyIdempotentInspect
The firehose: recently ingested filings across ALL feeds (Forms 3/4/5, 8-K, 144, Schedules 13D/13G) with acceptance timestamps and SEC filing links, newest first. Use to see what just came in.
| Name | Required | Description | Default |
|---|---|---|---|
| feeds | No | Feeds to include. Empty = all. | |
| limit | No | Max rows per page, default 50, cap 200. | |
| since | No | Earliest acceptance time, RFC3339 or YYYY-MM-DD. | |
| cursor | No | Opaque pagination token from the previous response's page.next_cursor; pass it back verbatim to fetch the next page. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With readOnlyHint and idempotentHint already present, the description adds ordering ('newest first'), content ('acceptance timestamps and SEC filing links'), and recency semantics ('recently ingested'). It does not discuss pagination or response shape in depth, but the schema already documents cursor-based pagination.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences: the core scope, content, and ordering are front-loaded, and the usage hint is one short clause. There is no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only listing with fully documented optional parameters, the description provides sufficient return expectations by mentioning timestamps, links, and newest-first ordering. No output schema exists, so this description-level return info is valuable; pagination mechanics are handled by the cursor parameter schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already explains feeds, limit, since, and cursor with defaults and format hints. The description adds no parameter semantics, but the baseline of 3 is appropriate when the schema carries full parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States it lists recently ingested filings across all feeds with acceptance timestamps and SEC filing links, newest first. The verb 'list' and resource are explicit, and the firehose framing plus enumeration of form types separates it from type-specific siblings like get_insider_trades or get_material_events.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The closing sentence 'Use to see what just came in' gives clear context: this is for recency monitoring across all feeds. It does not explicitly name alternatives or exclusions, but the 'ALL feeds' scope implies more targeted tools exist for specific feeds or filing types.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
planned_vs_executedAnnounced vs executed salesARead-onlyIdempotentInspect
Cross-feed signal: pair each Form 144 notice (an insider's ANNOUNCED sale) with the seller's actual Form 4 sale executions - same person, exact CIK identity, matched inside the notice's factual Rule 144 validity window (90 days from filing). Surfaces execution ratios and, most notably, announced-but-never-executed sales: insiders whose notice expired with no sale. Raw EDGAR cannot answer this in one query.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows per page, default 50, cap 500. | |
| since | No | Earliest approximate sale date, YYYY-MM-DD. Default: 90 days back. | |
| until | No | Latest approximate sale date, YYYY-MM-DD. | |
| cursor | No | Opaque pagination token from the previous response's page.next_cursor; pass it back verbatim to fetch the next page. | |
| seller | No | Substring match on the seller's name. | |
| status | No | Filter: executed, pending (window still open), not_executed (window elapsed, no matching sale - the leading-indicator residue), unverifiable (the seller entity never files Form 4 - trusts and foundations report via the beneficiary), or all (default). | all |
| tickers | No | Ticker symbols to include. Empty = all issuers. | |
| min_planned_usd | No | Minimum planned sale value in USD. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint and idempotentHint, so safety is covered. The description adds meaningful behavioral context: exact-CIK identity matching, the 90-day Rule 144 validity window, and the treatment of unverifiable sellers via trusts/foundations. It does not describe output shape, but the matching semantics are transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three dense sentences lead with the core cross-feed signal, then explain the matching logic, and end with a differentiating, value-adding remark. No filler; every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 8 fully documented parameters and read-only/idempotent annotations, the description covers the key operational logic and the main analytical use case. It does not specify exact response fields, but no output schema exists and the description still conveys what results will surface (execution ratios and non-executed notices), which is sufficient for selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 and the description does not need to compensate. It reinforces the status concept by explaining the not_executed signal, but it does not add parameter-level syntax, formatting, or constraints beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a concrete analytic operation: pairing Form 144 notices with Form 4 executions by exact CIK identity inside the 90-day Rule 144 window. It also highlights the distinctive 'announced-but-never-executed' signal, making it easy to differentiate from siblings like get_planned_sales or 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly implies when to use the tool: when the agent needs execution ratios or expired-notice/no-sale residue, and it notes that raw EDGAR cannot answer this in a single query. It does not explicitly name alternatives or state when not to use it, but the context is clear enough for routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
trades_before_eventsInsider trades before bad newsARead-onlyIdempotentInspect
Cross-feed signal: for issuers that filed a material 8-K event, show SEC Form 4 insider transactions in the N days BEFORE the event - e.g. insider selling before a bankruptcy, restatement, or delisting. Joins two feeds through the shared entity graph; raw EDGAR cannot answer this in one query.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows, default 50, cap 500. | |
| since | No | Earliest event date, YYYY-MM-DD. | |
| txn_type | No | Insider transaction filter: sell (default - selling before bad news), buy, or all. | sell |
| item_codes | No | 8-K items to anchor on, e.g. ["1.03","4.02","3.01"]. Default: distress items 1.03, 2.06, 3.01, 4.02. | |
| days_before | No | Lookback window before the event date, default 60. | |
| min_value_usd | No | Minimum insider transaction value in USD. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the description does not need to restate safety. It adds useful behavioral context beyond annotations: the tool joins two feeds through the shared entity graph and performs a temporal before-event lookup. This is transparent about the underlying mechanism 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. The main purpose and unique value proposition are front-loaded in the first sentence, and the second sentence clarifies why this tool is distinct from a raw EDGAR query. Every part earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a cross-feed query tool with no output schema, the description explains the core behavior and the key limitation (raw EDGAR cannot answer it). It could mention return shape or coverage dependencies, but for selection and invocation the schema and annotations cover the necessary details. Slight gap regarding output expectations keeps it from a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides 100% description coverage for all six parameters, so the description does not need to explain each parameter. It does reinforce the meaning of key concepts like 'N days BEFORE' and 'material 8-K event', but adds no semantic detail beyond what the schema already provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('show') and resource (SEC Form 4 insider transactions before material 8-K events), with concrete examples like bankruptcy, restatement, and delisting. It also clearly distinguishes itself from sibling tools by emphasizing the cross-feed join that raw EDGAR cannot answer in one query.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when to use this tool: when the user needs insider transactions occurring shortly before a company files a material 8-K event. It does not explicitly name alternatives or state when not to use it, but the cross-feed framing and siblings list make the intended use fairly evident.
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. Dates show when Glama detected each change.
6 tool updates
- Changed
company_profile1 field changed- changed
Input schema / properties / window_days / descriptionPrevious value: -"Lookback for insider activity, planned sales, and events; default 90."New value: +"Lookback for insider activity, planned sales, and events; default 90, cap 730."
- Changed
get_material_events1 field changed- added
Input schema / properties / item_codes / items / enumAdded value: +[ + "1.01", + "1.02", + "1.03", + "1.04", + "1.05", + "2.01", + "2.02", + "2.03", + "2.04", + "2.05", + "2.06", + "3.01", + "3.02", + "3.03", + "4.01", + "4.02", + "5.01", + "5.02", + "5.03", + "5.04", + "5.05", + "5.06", + "5.07", + "5.08", + "6.01", + "6.02", + "6.03", + "6.04", + "6.05", + "7.01", + "8.01", + "9.01" +]
- Changed
get_stakes1 field changed- added
Input schema / properties / schedule_type / defaultAdded value: +"all"
- Changed
list_recent_filings1 field changed- added
Input schema / properties / feeds / defaultAdded value: +[ + "ownership", + "events", + "intents", + "stakes" +]
- Changed
planned_vs_executed2 fields changed- changed
Input schema / properties / since / descriptionPrevious value: -"Earliest approximate sale date, YYYY-MM-DD. Default: 90 days back - pass an explicit date to reach deeper history."New value: +"Earliest approximate sale date, YYYY-MM-DD. Default: 90 days back." - added
Input schema / properties / status / defaultAdded value: +"all"
- Changed
trades_before_events3 fields changed- added
Input schema / properties / item_codes / defaultAdded value: +[ + "1.03", + "2.06", + "3.01", + "4.02" +] - added
Input schema / properties / item_codes / items / enumAdded value: +[ + "1.01", + "1.02", + "1.03", + "1.04", + "1.05", + "2.01", + "2.02", + "2.03", + "2.04", + "2.05", + "2.06", + "3.01", + "3.02", + "3.03", + "4.01", + "4.02", + "5.01", + "5.02", + "5.03", + "5.04", + "5.05", + "5.06", + "5.07", + "5.08", + "6.01", + "6.02", + "6.03", + "6.04", + "6.05", + "7.01", + "8.01", + "9.01" +] - added
Input schema / properties / txn_type / defaultAdded value: +"sell"
11 tool updates
- Changed
cluster_buys4 fields changed- added
Input schema / $schemaAdded value: +"https://json-schema.org/draft/2020-12/schema" - added
Input schema / additionalPropertiesAdded value: +false - added
Input schema / properties / min_distinct_insiders / defaultAdded value: +2 - added
Input schema / properties / window_days / defaultAdded value: +30
- Changed
company_profile3 fields changed- added
Input schema / $schemaAdded value: +"https://json-schema.org/draft/2020-12/schema" - added
Input schema / additionalPropertiesAdded value: +false - added
Input schema / properties / window_days / defaultAdded value: +90
- Changed
describe_coverage2 fields changed- added
Input schema / $schemaAdded value: +"https://json-schema.org/draft/2020-12/schema" - added
Input schema / additionalPropertiesAdded value: +false
- Changed
find_company2 fields changed- added
Input schema / $schemaAdded value: +"https://json-schema.org/draft/2020-12/schema" - added
Input schema / additionalPropertiesAdded value: +false
- Changed
get_insider_trades4 fields changed- added
Input schema / $schemaAdded value: +"https://json-schema.org/draft/2020-12/schema" - added
Input schema / additionalPropertiesAdded value: +false - added
Input schema / properties / exclude_10b5_1 / defaultAdded value: +true - added
Input schema / properties / limit / defaultAdded value: +50
- Changed
get_material_events3 fields changed- added
Input schema / $schemaAdded value: +"https://json-schema.org/draft/2020-12/schema" - added
Input schema / additionalPropertiesAdded value: +false - added
Input schema / properties / limit / defaultAdded value: +50
- Changed
get_planned_sales3 fields changed- added
Input schema / $schemaAdded value: +"https://json-schema.org/draft/2020-12/schema" - added
Input schema / additionalPropertiesAdded value: +false - added
Input schema / properties / limit / defaultAdded value: +50
- Changed
get_stakes3 fields changed- added
Input schema / $schemaAdded value: +"https://json-schema.org/draft/2020-12/schema" - added
Input schema / additionalPropertiesAdded value: +false - added
Input schema / properties / limit / defaultAdded value: +50
- Changed
list_recent_filings3 fields changed- added
Input schema / $schemaAdded value: +"https://json-schema.org/draft/2020-12/schema" - added
Input schema / additionalPropertiesAdded value: +false - added
Input schema / properties / limit / defaultAdded value: +50
- Changed
planned_vs_executed3 fields changed- added
Input schema / $schemaAdded value: +"https://json-schema.org/draft/2020-12/schema" - added
Input schema / additionalPropertiesAdded value: +false - added
Input schema / properties / limit / defaultAdded value: +50
- Changed
trades_before_events4 fields changed- added
Input schema / $schemaAdded value: +"https://json-schema.org/draft/2020-12/schema" - added
Input schema / additionalPropertiesAdded value: +false - added
Input schema / properties / days_before / defaultAdded value: +60 - added
Input schema / properties / limit / defaultAdded value: +50
Frequently Asked Questions
Claiming proves that you control a remote MCP connector. It does not move, proxy, or interrupt the server.
Open the connector listing, choose Claim ownership, and sign in to Glama.
Complete one verification method:
GitHub identity — fastest for official registry listings. For a namespace such as
io.github.alice/server, link the matching GitHub user, then choose Claim with GitHub. An organization namespace such asio.github.acme/serveralso needs that organization to have installed the Glama AI GitHub App and approved its permissions, because GitHub discloses organization membership only to apps it has installed. Use HTTP or DNS when it has not.HTTP challenge — works when you can deploy a public file. Generate a token, publish the exact JSON Glama shows at
/.well-known/glama.jsonon the same origin as the connector, then choose Check HTTP challenge.DNS challenge — works when you control DNS but cannot change the server. Generate a token, create the exact TXT record Glama shows, wait for it to propagate, then choose Check DNS challenge.
After verification, Glama sends a confirmation email and gives you access to listing details, thumbnails, health checks, and analytics. Keep the HTTP file or DNS record in place: Glama periodically checks it and ownership remains verified while the token is discoverable.
The HTTP ownership file has this structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"claim": "glama_claim_..."
}Claim tokens are opaque, stable, and bound to the signed-in Glama account. They contain no email address or other personal information. If Glama can no longer discover a verified HTTP or DNS token, it starts a seven-day grace period before removing claim-based access. Restore the same token during that period to keep ownership verified. Never publish an email address, Glama session token, GitHub token, or connector credential as ownership proof.
If verification fails, confirm that you copied the current token exactly. The HTTP file must be public, return valid JSON with a successful HTTP response, and stay on the connector's origin. DNS changes may need more time to propagate. A claim cannot transfer to a different origin or hostname: if the connector target changes, Glama starts the grace period and the new target must be claimed separately after the previous claim is released.
For a connector linked to the official MCP Registry, registry updates continue to replace its name, description, and URL by default. After claiming, open Manage connector and enable Use Glama listing details as the source of truth if edits made on Glama should be preserved. Categories and thumbnails are always managed on Glama; registry linkage and technical connection settings continue to sync.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
To improve your MCP server's ranking:
Claim ownership of the server listing
Complete the server profile with an accurate description and thumbnail
Provide a test profile so Glama can connect to and evaluate the server
Keep tool definitions clear and complete to earn a high Tool Definition Quality Score (TDQS)
Route real usage through the Glama Gateway; more recorded successful server uses also improve the ranking
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Connectors
SEC insider filings as clean economic events - Form 4 trades, Form 144 notices, 13D/G stakes.
SEC filings, insider trades, and earnings data
Financial intelligence: insider trades, SEC filings, 13F holdings, and market signals.
SEC EDGAR financials, insider trading, and economic data for AI agents. US GAAP + IFRS.
Related MCP Servers
- FlicenseNot gradedqualityBmaintenanceEnables risk analysis of US public companies by analyzing 8-K filings and insider activity using live SEC EDGAR data.-
- AlicenseAqualityAmaintenanceReal-time SEC Form 4 insider trading data — transactions with post-trade returns, cluster-buy signals, Form 144 early warnings, and 13F institutional holdings. 27 tools + 6 research prompts; free tier available.362601MIT
- AlicenseNot gradedqualityBmaintenanceWall 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
- AlicenseNot gradedqualityBmaintenanceGive 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
Glama MCP Gateway
Add one secure layer between your agents and this server.
TDQS
Each tool has a clearly distinct job: per-feed searches, cross-feed signals, entity resolution, coverage orientation, profile aggregation, and a recent-filings firehose. Even overlapping areas like Form 144 are cleanly separated between raw search (get_planned_sales) and matched analytics (planned_vs_executed). An agent should rarely pick the wrong tool.
Most tools follow a readable verb_noun pattern such as get_insider_trades, find_company, and list_recent_filings. However, company_profile is a noun-only name, and planned_vs_executed plus trades_before_events are descriptive labels rather than commands, making the overall convention mixed though still understandable.
11 tools is well-scoped for an SEC insider-data server: four feed-specific searches, three cross-feed signals, a company resolver, a profile aggregator, a coverage guide, and a firehose. Each tool earns its place and none feels redundant.
The set covers all core SEC feeds (Forms 3/4/5, 8-K, 144, 13D/13G) plus identifier resolution, recent filings, an aggregated company profile, and sophisticated cross-feed analytics. For a read-only data service, there are no obvious dead ends or missing operations that would strand an agent.