insidergraph
SEC insider intelligence: trades, 8-K events, planned sales, activist stakes - one entity graph.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"insidergraph": {
"url": "https://api.insidergraph.com/mcp"
}
}
}Remote endpoints
https://api.insidergraph.com/mcpstreamable-httpWhat it can do
Tool inventory
Tools (11)
🟢cluster_buys(min_distinct_insiders, min_value_usd, window_days)
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.
Input Schema
{
"type": "object",
"properties": {
"min_distinct_insiders": {
"type": "integer",
"description": "Minimum distinct buyers per issuer, default 2.",
"default": 2
},
"min_value_usd": {
"type": "number",
"description": "Minimum combined buy value per issuer in USD."
},
"window_days": {
"type": "integer",
"description": "Lookback window in days, default 30.",
"default": 30
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢company_profile(query, window_days)
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.
Input Schema
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Any identifier: ticker in any format (NVDA, NASDAQ:AAPL, $NVDA, BRK.B), company name, CIK number, US ISIN, or CUSIP."
},
"window_days": {
"type": "integer",
"description": "Lookback for insider activity, planned sales, and events; default 90, cap 730.",
"default": 90
}
},
"required": [
"query"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢describe_coverage
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.
Input Schema
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢find_company(query)
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.
Input Schema
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "The identifier to resolve, e.g. \"nvidia\", \"NASDAQ:AAPL\", \"1045810\", \"US0378331005\"."
}
},
"required": [
"query"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢get_insider_trades(cursor, exclude_10b5_1, insider, limit, min_value_usd, ...)
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.
Input Schema
{
"type": "object",
"properties": {
"cursor": {
"type": "string",
"description": "Opaque pagination token from the previous response's page.next_cursor; pass it back verbatim to fetch the next page."
},
"exclude_10b5_1": {
"type": "boolean",
"description": "Drop pre-scheduled 10b5-1 plan transactions; true (default) for signal-seeking, false for full audit.",
"default": true
},
"insider": {
"type": "string",
"description": "Substring match on the insider's name, e.g. \"MUSK\"."
},
"limit": {
"type": "integer",
"description": "Max rows per page, default 50, cap 500.",
"default": 50
},
"min_value_usd": {
"type": "number",
"description": "Minimum transaction value in USD (shares x price)."
},
"relationship": {
"type": "string",
"description": "Filter by insider role.",
"enum": [
"director",
"officer",
"ten_percent"
]
},
"since": {
"type": "string",
"description": "Earliest transaction date, YYYY-MM-DD."
},
"tickers": {
"type": "array",
"items": {
"type": "string"
},
"description": "Ticker symbols to include, e.g. [\"NVDA\",\"AAPL\"]. Empty = all issuers."
},
"txn_type": {
"type": "string",
"description": "buy (open-market/private purchase P), sell (S), grant (A), exercise (M/X), or gift (G). Omit for all.",
"enum": [
"buy",
"sell",
"grant",
"exercise",
"gift"
]
},
"until": {
"type": "string",
"description": "Latest transaction date, YYYY-MM-DD."
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢get_material_events(cursor, high_signal, item_codes, limit, since, ...)
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.
Input Schema
{
"type": "object",
"properties": {
"cursor": {
"type": "string",
"description": "Opaque pagination token from the previous response's page.next_cursor; pass it back verbatim to fetch the next page."
},
"high_signal": {
"type": "boolean",
"description": "Only distress-grade items (1.03, 1.05, 2.04, 2.06, 3.01, 4.02, 5.02). Overrides item_codes."
},
"item_codes": {
"type": "array",
"items": {
"type": "string",
"enum": [
"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"
]
},
"description": "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."
},
"limit": {
"type": "integer",
"description": "Max rows per page, default 50, cap 500.",
"default": 50
},
"since": {
"type": "string",
"description": "Earliest event date, YYYY-MM-DD."
},
"tickers": {
"type": "array",
"items": {
"type": "string"
},
"description": "Ticker symbols to include, e.g. [\"NVDA\"]. Empty = all issuers."
},
"until": {
"type": "string",
"description": "Latest event date, YYYY-MM-DD."
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢get_planned_sales(cursor, limit, min_value_usd, seller, since, ...)
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.
Input Schema
{
"type": "object",
"properties": {
"cursor": {
"type": "string",
"description": "Opaque pagination token from the previous response's page.next_cursor; pass it back verbatim to fetch the next page."
},
"limit": {
"type": "integer",
"description": "Max rows per page, default 50, cap 500.",
"default": 50
},
"min_value_usd": {
"type": "number",
"description": "Minimum aggregate market value of the proposed sale in USD."
},
"seller": {
"type": "string",
"description": "Substring match on the seller's name."
},
"since": {
"type": "string",
"description": "Earliest approximate sale date, YYYY-MM-DD."
},
"tickers": {
"type": "array",
"items": {
"type": "string"
},
"description": "Ticker symbols to include. Empty = all issuers."
},
"until": {
"type": "string",
"description": "Latest approximate sale date, YYYY-MM-DD."
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢get_stakes(cursor, holder, limit, min_percent, schedule_type, ...)
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.
Input Schema
{
"type": "object",
"properties": {
"cursor": {
"type": "string",
"description": "Opaque pagination token from the previous response's page.next_cursor; pass it back verbatim to fetch the next page."
},
"holder": {
"type": "string",
"description": "Substring match on the reporting person, e.g. \"Icahn\"."
},
"limit": {
"type": "integer",
"description": "Max rows per page, default 50, cap 500.",
"default": 50
},
"min_percent": {
"type": "number",
"description": "Minimum percent of class held, e.g. 10."
},
"schedule_type": {
"type": "string",
"description": "activist (13D family), passive (13G family), or all (default).",
"default": "all",
"enum": [
"activist",
"passive",
"all"
]
},
"since": {
"type": "string",
"description": "Earliest event date, YYYY-MM-DD."
},
"tickers": {
"type": "array",
"items": {
"type": "string"
},
"description": "Ticker symbols to include. Empty = all issuers."
},
"until": {
"type": "string",
"description": "Latest event date, YYYY-MM-DD."
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢list_recent_filings(cursor, feeds, limit, since)
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.
Input Schema
{
"type": "object",
"properties": {
"cursor": {
"type": "string",
"description": "Opaque pagination token from the previous response's page.next_cursor; pass it back verbatim to fetch the next page."
},
"feeds": {
"type": "array",
"items": {
"type": "string",
"enum": [
"ownership",
"events",
"intents",
"stakes"
]
},
"description": "Feeds to include. Empty = all.",
"default": [
"ownership",
"events",
"intents",
"stakes"
]
},
"limit": {
"type": "integer",
"description": "Max rows per page, default 50, cap 200.",
"default": 50
},
"since": {
"type": "string",
"description": "Earliest acceptance time, RFC3339 or YYYY-MM-DD."
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢planned_vs_executed(cursor, limit, min_planned_usd, seller, since, ...)
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.
Input Schema
{
"type": "object",
"properties": {
"cursor": {
"type": "string",
"description": "Opaque pagination token from the previous response's page.next_cursor; pass it back verbatim to fetch the next page."
},
"limit": {
"type": "integer",
"description": "Max rows per page, default 50, cap 500.",
"default": 50
},
"min_planned_usd": {
"type": "number",
"description": "Minimum planned sale value in USD."
},
"seller": {
"type": "string",
"description": "Substring match on the seller's name."
},
"since": {
"type": "string",
"description": "Earliest approximate sale date, YYYY-MM-DD. Default: 90 days back."
},
"status": {
"type": "string",
"description": "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).",
"default": "all",
"enum": [
"executed",
"pending",
"not_executed",
"unverifiable",
"all"
]
},
"tickers": {
"type": "array",
"items": {
"type": "string"
},
"description": "Ticker symbols to include. Empty = all issuers."
},
"until": {
"type": "string",
"description": "Latest approximate sale date, YYYY-MM-DD."
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢trades_before_events(days_before, item_codes, limit, min_value_usd, since, ...)
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.
Input Schema
{
"type": "object",
"properties": {
"days_before": {
"type": "integer",
"description": "Lookback window before the event date, default 60.",
"default": 60
},
"item_codes": {
"type": "array",
"items": {
"type": "string",
"enum": [
"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"
]
},
"description": "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.",
"default": [
"1.03",
"2.06",
"3.01",
"4.02"
]
},
"limit": {
"type": "integer",
"description": "Max rows, default 50, cap 500.",
"default": 50
},
"min_value_usd": {
"type": "number",
"description": "Minimum insider transaction value in USD."
},
"since": {
"type": "string",
"description": "Earliest event date, YYYY-MM-DD."
},
"txn_type": {
"type": "string",
"description": "Insider transaction filter: sell (default - selling before bad news), buy, or all.",
"default": "sell",
"enum": [
"sell",
"buy",
"all"
]
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}Community
Evidence