Call this server's tools from your browser. Nothing to install.
https://mcp.tradestarinsider.com/mcp
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
activist_stakes_recent Read-only
Use when the user asks about activist investors, hedge-fund stakes, or recent 13D filings on a company. Returns activist Schedule 13D/13D-A filings on US-listed companies, newest first then by stated-intent strength; `ticker`, `min_percent` and `days` narrow. Each row carries its source filing_url and `item4_excerpt` (the activist's own Item 4 intent sentence, quoted from the filing as data, capped at its current length of 600 chars). Caveat: passive 13G is not covered; filings without a source link are dropped.
Only stakes filed within the last N days.
Max rows to return (default 25, newest first). Page with offset; the response's total_matched shows the full count. limit<=0 = no cap.
Rows to skip before this page (pagination). Default 0.
Filter to one subject ticker (case-insensitive), e.g. DH
Only stakes at or above this percent-of-class
Tools (10)
activist_stakes_recent
Use when the user asks about activist investors, hedge-fund stakes, or recent 13D filings on a company. Returns activist Schedule 13D/13D-A filings on US-listed companies, newest first then by stated-intent strength; `ticker`, `min_percent` and `days` narrow. Each row carries its source filing_url and `item4_excerpt` (the activist's own Item 4 intent sentence, quoted from the filing as data, capped at its current length of 600 chars). Caveat: passive 13G is not covered; filings without a source link are dropped.
read-only
Argument
Type
Description
days
integer
Only stakes filed within the last N days.
limit
integer
Max rows to return (default 25, newest first). Page with offset; the response's total_matched shows the full count. limit<=0 = no cap.
offset
integer
Rows to skip before this page (pagination). Default 0.
ticker
string
Filter to one subject ticker (case-insensitive), e.g. DH
min_percent
number
Only stakes at or above this percent-of-class
Input schema (JSON)
{
"type": "object",
"required": [],
"properties": {
"days": {
"type": "integer",
"description": "Only stakes filed within the last N days."
},
"limit": {
"type": "integer",
"description": "Max rows to return (default 25, newest first). Page with offset; the response's total_matched shows the full count. limit<=0 = no cap."
},
"offset": {
"type": "integer",
"description": "Rows to skip before this page (pagination). Default 0."
},
"ticker": {
"type": "string",
"description": "Filter to one subject ticker (case-insensitive), e.g. DH"
},
"min_percent": {
"type": "number",
"description": "Only stakes at or above this percent-of-class"
}
},
"additionalProperties": false
}
federal_awards_recent
Use when the user asks about recent federal contracts, government awards, or who won a U.S. federal contract. Returns newly signed federal awards, newest first; `min_amount` sets a USD floor, `days` a last-N-days window. Every award carries its source award_url. Caveat: awards without a source link are dropped and never returned.
read-only
Argument
Type
Description
days
integer
Only awards signed within the last N days.
limit
integer
Max rows to return (default 25, newest first). Page with offset; the response's total_matched shows the full count. limit<=0 = no cap.
offset
integer
Rows to skip before this page (pagination). Default 0.
min_amount
number
Only awards at or above this USD amount
Input schema (JSON)
{
"type": "object",
"required": [],
"properties": {
"days": {
"type": "integer",
"description": "Only awards signed within the last N days."
},
"limit": {
"type": "integer",
"description": "Max rows to return (default 25, newest first). Page with offset; the response's total_matched shows the full count. limit<=0 = no cap."
},
"offset": {
"type": "integer",
"description": "Rows to skip before this page (pagination). Default 0."
},
"min_amount": {
"type": "number",
"description": "Only awards at or above this USD amount"
}
},
"additionalProperties": false
}
fund_position_changes
Use when the user asks what a fund bought or sold, how a 13F filer changed its holdings, or which institutions opened/added/trimmed/exited a position. Returns quarter-over-quarter deltas, newest first; `filer`, `change_type`, `min_value_usd`, `days` narrow. Each row carries as_of_quarter_end, filed_date, lag_days, value_usd (whole dollars), cusip, issuer_name and its source filing_url; ticker is null (never guessed). Caveat: the delta is the product, not a trading edge — see the instructions and each response's `coverage` note for the universe and CIK scope.
read-only
Argument
Type
Description
days
integer
Only changes filed within the last N days.
filer
string
Filter to one fund by name substring (case-insensitive, e.g. 'Berkshire') or exact filer CIK
limit
integer
Max rows to return (default 25, newest first). Page with offset; the response's total_matched shows the full count. limit<=0 = no cap.
offset
integer
Rows to skip before this page (pagination). Default 0.
change_type
string
Only this kind of quarter-over-quarter change
min_value_usd
number
Only positions at or above this current value in WHOLE US dollars
Input schema (JSON)
insider_amendments_recent
Use when the user asks which insider filings were amended, corrected, or restated, or wants recent Form 4/A amendments. Returns 4/A amendments, newest-filed first; `ticker`, `issuer_name`, `person`, `start`/`end`, `days` narrow. Each row carries the amendment_accession, filed_date, issuer/insider, source filing_url, the original_accession it amends (when collected), and `changed_fields` (before/after). Caveat: when the original is not collected the amendment is still listed with original_in_corpus=false and before/after null (never guessed); linkage is by issuer/owner/period.
read-only
Argument
Type
Description
end
string
Only amendments filed on/before this ISO date
days
integer
Only amendments filed within the last N days.
as_of
string
Publish-boundary replay: UTC ISO-8601 instant (or a bare YYYY-MM-DD, read as end-of-day UTC). Returns only rows that had crossed the publish boundary at or before it — the exact feed visible at that past moment. Each row carries `first_served_at` (null on rows published before the stamp existed; those are kept, as they were already public).
limit
integer
Max rows to return (default 25, newest first). Page with offset; the response's total_matched shows the full count. limit<=0 = no cap.
start
string
Only amendments filed on/after this ISO date
offset
insider_buys
Use when the user asks which insiders bought a stock, whether a ticker has insider buying, or for Form 4 buys in a date range. Pass `ticker`, `start`+`end` for an inclusive ISO range, or neither for today's buys (SEC code P); `days` narrows, `include_unlisted` adds non-listed issuers. Each row carries filing_url, `offering_context`, `transaction_date`, `acceptance_datetime`, `aff10b5One` (10b5-1 flag), `is_amendment`/`original_accession` (4/A linkage), and `partial_fields` (reason for any null). Caveat: only purchases that pass the signal filter are returned; code P is not proof of a buy.
read-only
Argument
Type
Description
end
string
Inclusive range end, ISO YYYY-MM-DD. Give with `start` for a date range.
days
integer
Only rows filed within the last N days (relative to today).
as_of
string
Publish-boundary replay: UTC ISO-8601 instant (or a bare YYYY-MM-DD, read as end-of-day UTC). Returns only rows that had crossed the publish boundary at or before it — the exact feed visible at that past moment. Each row carries `first_served_at` (null on rows published before the stamp existed; those are kept, as they were already public).
limit
integer
Max rows to return (default 25, newest first). Page with offset; the response's total_matched shows the full count. limit<=0 = no cap.
start
string
Inclusive range start, ISO YYYY-MM-DD. Give with `end` for a date range.
insider_cluster_buys
Use when the user asks about cluster buying or several insiders buying the same company. Returns only clusters, two or more insiders buying one issuer in the window, newest first; days and ticker narrow. Each row carries filing_url, offering_context, uniform_price_cluster (true when 3+ insiders bought at one price on one day), `transaction_date`, `acceptance_datetime`, `aff10b5One` (10b5-1 flag), `is_amendment`/`original_accession` (4/A linkage), and `partial_fields` (reason for any null). Caveat: only purchases that pass the signal filter are returned; code P alone is not proof of a buy.
read-only
Argument
Type
Description
days
integer
Only rows filed within the last N days (relative to today).
as_of
string
Publish-boundary replay: UTC ISO-8601 instant (or a bare YYYY-MM-DD, read as end-of-day UTC). Returns only rows that had crossed the publish boundary at or before it — the exact feed visible at that past moment. Each row carries `first_served_at` (null on rows published before the stamp existed; those are kept, as they were already public).
limit
integer
Max rows to return (default 25, newest first). Page with offset; the response's total_matched shows the full count. limit<=0 = no cap.
offset
integer
Rows to skip before this page (pagination). Default 0.
ticker
string
Case-insensitive exact ticker filter, e.g. DKS.
verify_13f_change
Use when the user wants to verify or fact-check whether a fund (filer name/CIK) reported a CHANGE in a position in an issuer (issuer_name or cusip) in a quarter. Returns held (reported a change — opened/added/trimmed, with source filing + link), not_held (reported the position exited), not_found (no reported change — does NOT mean the fund didn't hold it), or out_of_coverage. Caveat: filing-verified; CANNOT confirm an unchanged holding (13F deltas only) — a 'held, unchanged' position produces no row.
read-only
Argument
Type
Description
end
string
Quarter-window end (ISO) if the claim spans quarters
cusip
string
9-char CUSIP of the held security — give this or issuer_name. (ticker is never accepted: 13F carries no authoritative ticker)
filer
string
Fund/institution name substring (case-insensitive, e.g. 'Berkshire') or exact filer CIK — REQUIRED
start
string
Quarter-window start (ISO) if the claim spans quarters
quarter
string
As-of quarter-end the claim is about, ISO YYYY-MM-DD (e.g. '2026-06-30')
issuer_name
string
Held company/issuer name (e.g. 'Apple') — give this or cusip
Input schema (JSON)
verify_8k_event
Use when the user wants to verify or fact-check that a company filed an 8-K carrying specific SEC item code(s) in a timeframe. Pass registrant (cik/company/accession), item code(s) and dates. Returns confirmed (with source filing + link), not_found, partial (itemised claimed-vs-filed), out_of_scope (claims about the filing's meaning aren't covered — it is never paraphrased), or out_of_coverage. Caveat: filing-verified — item codes are the SEC controlled vocabulary parsed from the filing, never inferred.
read-only
Argument
Type
Description
cik
string
Registrant CIK (leading zeros ignored), e.g. 320193
end
string
Window end (ISO) if the claim is a range
date
string
Claimed filing date, ISO YYYY-MM-DD (matched ±3 filing days)
items
string
Claimed SEC 8-K item code(s), comma-separated (e.g. '5.02' or '1.01,9.01') — checked against the filing
start
string
Window start (ISO) if the claim is a range
accession
string
SEC filing accession, e.g. 0001193125-26-389400
company_name
string
Registrant name substring (case-insensitive), e.g. 'Apple'
verify_activist_13d
Use when the user wants to verify or fact-check a claim about an activist stake or 13D filing (ticker/subject, filer, percent-of-class, stated intent, timeframe). Returns confirmed (with source filing + link), not_found, partial (itemised claimed-vs-filed), out_of_scope (passive 13G isn't covered), or out_of_coverage. Every response states the coverage window checked. Caveat: filing-verified — absence is reported as absence, never guessed.
read-only
Argument
Type
Description
end
string
Window end (ISO) if the claim is a range
date
string
Claimed filed date, ISO YYYY-MM-DD (matched ±3 filing days)
Subject-company ticker (case-insensitive), e.g. DH
form_type
string
Optional; only activist 13D/13D-A is covered — a passive 13G returns out_of_scope
filer_name
string
Activist filer name in any order, e.g. 'Elliott Management'
verify_insider_purchase
Use when the user wants to verify a claim that an insider bought a stock, or to pull the purchases in one filing by accession. Pass the claim (ticker/issuer, person, amount, timeframe), or `accession` alone for that filing's gated purchase records. Returns confirmed, not_found, partial, out_of_scope (sales/options/grants), or out_of_coverage. Each matched filing carries `transaction_date`, `acceptance_datetime`, `aff10b5One` (10b5-1 flag), `is_amendment`/`original_accession` (4/A linkage), and `partial_fields` (reason for any null). Caveat: filing-verified — absence is reported, not guessed.
read-only
Argument
Type
Description
end
string
Window end (ISO) if the claim is a range
date
string
Claimed date, ISO YYYY-MM-DD (matched ±3 filing days)
start
string
Window start (ISO) if the claim is a range
person
string
Insider name in any order, e.g. 'Alfonso de Angoitia'
shares
number
Claimed share count
ticker
string
Issuer ticker (case-insensitive), e.g. CAVA
txn_type
string
Optional; only code P purchases are covered — sale/option/grant returns out_of_scope
{
"type": "object",
"required": [],
"properties": {
"days": {
"type": "integer",
"description": "Only changes filed within the last N days."
},
"filer": {
"type": "string",
"description": "Filter to one fund by name substring (case-insensitive, e.g. 'Berkshire') or exact filer CIK"
},
"limit": {
"type": "integer",
"description": "Max rows to return (default 25, newest first). Page with offset; the response's total_matched shows the full count. limit<=0 = no cap."
},
"offset": {
"type": "integer",
"description": "Rows to skip before this page (pagination). Default 0."
},
"change_type": {
"enum": [
"new_position",
"added",
"trimmed",
"exited",
"no_prior_quarter"
],
"type": "string",
"description": "Only this kind of quarter-over-quarter change"
},
"min_value_usd": {
"type": "number",
"description": "Only positions at or above this current value in WHOLE US dollars"
}
},
"additionalProperties": false
}
integer
Rows to skip before this page (pagination). Default 0.
person
string
Filter by insider name substring (case-insensitive)
ticker
string
Filter to one issuer ticker (case-insensitive substring), e.g. GLBZ
issuer_name
string
Filter by issuer/company name substring (case-insensitive)
Input schema (JSON)
{
"type": "object",
"required": [],
"properties": {
"end": {
"type": "string",
"format": "date",
"description": "Only amendments filed on/before this ISO date"
},
"days": {
"type": "integer",
"description": "Only amendments filed within the last N days."
},
"as_of": {
"type": "string",
"description": "Publish-boundary replay: UTC ISO-8601 instant (or a bare YYYY-MM-DD, read as end-of-day UTC). Returns only rows that had crossed the publish boundary at or before it — the exact feed visible at that past moment. Each row carries `first_served_at` (null on rows published before the stamp existed; those are kept, as they were already public)."
},
"limit": {
"type": "integer",
"description": "Max rows to return (default 25, newest first). Page with offset; the response's total_matched shows the full count. limit<=0 = no cap."
},
"start": {
"type": "string",
"format": "date",
"description": "Only amendments filed on/after this ISO date"
},
"offset": {
"type": "integer",
"description": "Rows to skip before this page (pagination). Default 0."
},
"person": {
"type": "string",
"description": "Filter by insider name substring (case-insensitive)"
},
"ticker": {
"type": "string",
"description": "Filter to one issuer ticker (case-insensitive substring), e.g. GLBZ"
},
"issuer_name": {
"type": "string",
"description": "Filter by issuer/company name substring (case-insensitive)"
}
},
"additionalProperties": false
}
offset
integer
Rows to skip before this page (pagination). Default 0.
ticker
string
Case-insensitive exact ticker filter, e.g. DKS.
include_unlisted
boolean
Include unlisted issuers (blank/NONE/N/A tickers and 5-letter mutual-fund classes). Default false = exchange-listed common stock only. Every row carries a `listed_equity` boolean.
Input schema (JSON)
{
"type": "object",
"required": [],
"properties": {
"end": {
"type": "string",
"format": "date",
"description": "Inclusive range end, ISO YYYY-MM-DD. Give with `start` for a date range."
},
"days": {
"type": "integer",
"description": "Only rows filed within the last N days (relative to today)."
},
"as_of": {
"type": "string",
"description": "Publish-boundary replay: UTC ISO-8601 instant (or a bare YYYY-MM-DD, read as end-of-day UTC). Returns only rows that had crossed the publish boundary at or before it — the exact feed visible at that past moment. Each row carries `first_served_at` (null on rows published before the stamp existed; those are kept, as they were already public)."
},
"limit": {
"type": "integer",
"description": "Max rows to return (default 25, newest first). Page with offset; the response's total_matched shows the full count. limit<=0 = no cap."
},
"start": {
"type": "string",
"format": "date",
"description": "Inclusive range start, ISO YYYY-MM-DD. Give with `end` for a date range."
},
"offset": {
"type": "integer",
"description": "Rows to skip before this page (pagination). Default 0."
},
"ticker": {
"type": "string",
"description": "Case-insensitive exact ticker filter, e.g. DKS."
},
"include_unlisted": {
"type": "boolean",
"description": "Include unlisted issuers (blank/NONE/N/A tickers and 5-letter mutual-fund classes). Default false = exchange-listed common stock only. Every row carries a `listed_equity` boolean."
}
},
"additionalProperties": false
}
include_unlisted
boolean
Include unlisted issuers (blank/NONE/N/A tickers and 5-letter mutual-fund classes). Default false = exchange-listed common stock only. Every row carries a `listed_equity` boolean.
Input schema (JSON)
{
"type": "object",
"required": [],
"properties": {
"days": {
"type": "integer",
"description": "Only rows filed within the last N days (relative to today)."
},
"as_of": {
"type": "string",
"description": "Publish-boundary replay: UTC ISO-8601 instant (or a bare YYYY-MM-DD, read as end-of-day UTC). Returns only rows that had crossed the publish boundary at or before it — the exact feed visible at that past moment. Each row carries `first_served_at` (null on rows published before the stamp existed; those are kept, as they were already public)."
},
"limit": {
"type": "integer",
"description": "Max rows to return (default 25, newest first). Page with offset; the response's total_matched shows the full count. limit<=0 = no cap."
},
"offset": {
"type": "integer",
"description": "Rows to skip before this page (pagination). Default 0."
},
"ticker": {
"type": "string",
"description": "Case-insensitive exact ticker filter, e.g. DKS."
},
"include_unlisted": {
"type": "boolean",
"description": "Include unlisted issuers (blank/NONE/N/A tickers and 5-letter mutual-fund classes). Default false = exchange-listed common stock only. Every row carries a `listed_equity` boolean."
}
},
"additionalProperties": false
}
{
"type": "object",
"required": [],
"properties": {
"end": {
"type": "string",
"format": "date",
"description": "Quarter-window end (ISO) if the claim spans quarters"
},
"cusip": {
"type": "string",
"description": "9-char CUSIP of the held security — give this or issuer_name. (ticker is never accepted: 13F carries no authoritative ticker)"
},
"filer": {
"type": "string",
"description": "Fund/institution name substring (case-insensitive, e.g. 'Berkshire') or exact filer CIK — REQUIRED"
},
"start": {
"type": "string",
"format": "date",
"description": "Quarter-window start (ISO) if the claim spans quarters"
},
"quarter": {
"type": "string",
"format": "date",
"description": "As-of quarter-end the claim is about, ISO YYYY-MM-DD (e.g. '2026-06-30')"
},
"issuer_name": {
"type": "string",
"description": "Held company/issuer name (e.g. 'Apple') — give this or cusip"
}
},
"additionalProperties": false
}
Input schema (JSON)
{
"type": "object",
"required": [],
"properties": {
"cik": {
"type": "string",
"description": "Registrant CIK (leading zeros ignored), e.g. 320193"
},
"end": {
"type": "string",
"format": "date",
"description": "Window end (ISO) if the claim is a range"
},
"date": {
"type": "string",
"format": "date",
"description": "Claimed filing date, ISO YYYY-MM-DD (matched ±3 filing days)"
},
"items": {
"type": "string",
"description": "Claimed SEC 8-K item code(s), comma-separated (e.g. '5.02' or '1.01,9.01') — checked against the filing"
},
"start": {
"type": "string",
"format": "date",
"description": "Window start (ISO) if the claim is a range"
},
"accession": {
"type": "string",
"description": "SEC filing accession, e.g. 0001193125-26-389400"
},
"company_name": {
"type": "string",
"description": "Registrant name substring (case-insensitive), e.g. 'Apple'"
}
},
"additionalProperties": false
}
subject_name
string
Subject/target company name (use if you don't have the ticker)
{
"type": "object",
"required": [],
"properties": {
"end": {
"type": "string",
"format": "date",
"description": "Window end (ISO) if the claim is a range"
},
"date": {
"type": "string",
"format": "date",
"description": "Claimed filed date, ISO YYYY-MM-DD (matched ±3 filing days)"
},
"start": {
"type": "string",
"format": "date",
"description": "Window start (ISO) if the claim is a range"
},
"intent": {
"enum": [
"I1",
"I2",
"I3"
],
"type": "string",
"description": "Optional pre-registered intent: I1 control/take-private, I2 board/proxy, I3 strategic/value"
},
"ticker": {
"type": "string",
"description": "Subject-company ticker (case-insensitive), e.g. DH"
},
"form_type": {
"type": "string",
"description": "Optional; only activist 13D/13D-A is covered — a passive 13G returns out_of_scope"
},
"filer_name": {
"type": "string",
"description": "Activist filer name in any order, e.g. 'Elliott Management'"
},
"subject_name": {
"type": "string",
"description": "Subject/target company name (use if you don't have the ticker)"
},
"percent_of_class": {
"type": "number",
"description": "Claimed percent-of-class owned (matched ±0.5 percentage points)"
}
},
"additionalProperties": false
}
accession
string
SEC filing accession, e.g. 0001493152-26-040454. If you already have the exact filing, pass this to pull its gated purchase records directly — it is used alone and ignores the claim fields above.
amount_usd
number
Claimed purchase value in USD (matched ±5% or ±$1)
issuer_name
string
Issuer/company name (use if you don't have the ticker)
Input schema (JSON)
{
"type": "object",
"required": [],
"properties": {
"end": {
"type": "string",
"format": "date",
"description": "Window end (ISO) if the claim is a range"
},
"date": {
"type": "string",
"format": "date",
"description": "Claimed date, ISO YYYY-MM-DD (matched ±3 filing days)"
},
"start": {
"type": "string",
"format": "date",
"description": "Window start (ISO) if the claim is a range"
},
"person": {
"type": "string",
"description": "Insider name in any order, e.g. 'Alfonso de Angoitia'"
},
"shares": {
"type": "number",
"description": "Claimed share count"
},
"ticker": {
"type": "string",
"description": "Issuer ticker (case-insensitive), e.g. CAVA"
},
"txn_type": {
"type": "string",
"description": "Optional; only code P purchases are covered — sale/option/grant returns out_of_scope"
},
"accession": {
"type": "string",
"description": "SEC filing accession, e.g. 0001493152-26-040454. If you already have the exact filing, pass this to pull its gated purchase records directly — it is used alone and ignores the claim fields above."
},
"amount_usd": {
"type": "number",
"description": "Claimed purchase value in USD (matched ±5% or ±$1)"
},
"issuer_name": {
"type": "string",
"description": "Issuer/company name (use if you don't have the ticker)"
}
},
"additionalProperties": false
}