Skip to main content
Glama

Stocklake — AI Stock Intelligence

Get Insider Activity

get_insider_activity
Read-onlyIdempotent

Get insider transactions (regulatory insider filings for the US and several European markets) and, on Pro, the AI read plus institutional holdings for a stock.

Every tier (guest/free/pro) gets the filing facts: insider_buys and insider_sells over the window (echoed as window_days), transactions (the individual rows behind those counts, newest first, each with date/name/role/type/shares/price/value), summary (a one-line factual readout computed from those same rows -- counts, dollar totals, date range -- so it can never disagree with them), source/source_name (which filing feed was used), and updated_at (when the filings were last fetched).

Free/guest: a 90-day window (a larger days is capped at 90, see days_note), the 5 most recent rows (transactions_note says how many more there are), and pro_unlocks describing what Pro adds. No AI fields and no institutional holders.

Pro: days up to 365, up to 50 rows, plus signal (POSITIVE/NEGATIVE/ NEUTRAL etc.), signal_score (0-100, higher = stronger/more notable - the exact same field, formula, scale and bands as get_signals()'s signal_score) with signal_score_band, insider_signal/inst_signal, ai_commentary (a separately-generated AI narrative on its own refresh cadence, with ai_commentary_as_of - it can lag the transactions; trust summary/the rows if they disagree), top_holders (a union of multiple data sources, up to 15, each with name/shares/pct_held/sources/ share_counts_by_source - the last two show which source(s) contributed to a merged row and each one's own reported share count), holder_count_ divergence (null unless every matched holder disagrees by the same systemic multiplier across sources - e.g. an unrecorded reverse split - a signal top_holders.shares may be unreliable for this symbol), inst_ownership (0-100%), and total_holders. For informational purposes only. Not financial advice.

Input Schema

NameRequiredDescriptionDefault
daysNoInsider-transaction window in days (default 90, max 365 on Pro; free/guest calls are capped at 90). Applies to transactions, insider_buys and insider_sells.
symbolYesStock ticker symbol to fetch insider-filing and institutional-holdings activity for.

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedInput schema / properties / days
      Added value: +{
      +  "default": 90,
      +  "description": "Insider-transaction window in days (default 90, max 365 on Pro; free/guest calls are capped at 90). Applies to transactions, insider_buys and insider_sells.",
      +  "maximum": 365,
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • changedInput schema / properties / symbol / description
      Previous value: -"Stock ticker symbol to fetch insider (SEC Form 4) and institutional-holdings activity for."New value: +"Stock ticker symbol to fetch insider-filing and institutional-holdings activity for."
  2. Changed1 schema field changed
    • addedInput schema / properties / symbol / description
      Added value: +"Stock ticker symbol to fetch insider (SEC Form 4) and institutional-holdings activity for."
  3. Added

TDQS

A4.6/5.0
Behavior5/5

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

Annotations cover the safety profile (read-only, idempotent, non-destructive), and the description adds substantial context beyond them: free/guest caps at 90 days and 5 rows, ai_commentary runs on a separate cadence and 'can lag the transactions', and holder_count_divergence is null unless all matched holders disagree by a systemic multiplier that may make top_holders.shares unreliable. It also explains that summary is computed from the same rows so it cannot disagree.

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

Conciseness4/5

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

The core capability and tier split are front-loaded in the first sentence, and the tier breakdown is logically ordered. It is dense and somewhat over-packed with parenthetical asides (e.g. 'echoed as window_days', footnote pointers like days_note/transactions_note), but given the tool's complexity most sentences carry real information.

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?

Despite an output schema that already documents return fields, the description fully characterizes what varies by tier and which fields are conditional (signal, holders, divergence). An agent has everything needed to call it correctly and interpret results; nothing material is missing.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds meaningful semantics: `days` is capped at 90 for free/guest (referencing days_note) and extends to 365 on Pro, and it clarifies that the value is echoed back as window_days. That is genuine added meaning over the schema's own text.

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?

Names a specific verb and resource ('Get insider transactions... regulatory insider filings') and scopes it geographically (US and several European markets). It also explicitly ties its signal_score to get_signals()'s field, letting an agent distinguish it from that sibling without opening either schema.

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

Usage Guidelines4/5

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

Gives clear tier-based context (guest/free gets a 90-day window with no AI or holders; Pro gets 365 days, signals, commentary, and holders) so an agent understands what it will receive. However it never states when to prefer this tool over siblings like get_signals or get_stock, and offers no exclusions or routing criteria.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources