MCPサーバー

Insider Buy Signals

com.tradestarinsider/edgar-insider-signals
データ・分析 金融・投資 公開・接続可能 MCP 2026-07-28

このMCPでできること

Finds and verifies SEC-based insider purchases, institutional position changes, activist stakes, federal awards, and selected 8-K and 13D claims.

activist_stakes_recent
Recent activist stakes (SEC Schedule 13D)
Recent activist Schedule 13D / 13D-A filings on US-listed companies, newest first then by stated-intent strength (control/take-private > board/proxy > strategic/value, or none stated). Returns the newest 25 by default (set `limit`; page with `offset`); `total_matched` reports the full count. Optional min_percent (percent-of-class floor), ticker, and `days` (last-N-days window). Every stake carries its source filing_url; filings without a source link are dropped.
読み取り専用 冪等
入力スキーマ
{'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
Recent federal contract awards (USAspending)
Recently signed U.S. federal new awards from USAspending.gov, newest first. Returns the newest 25 by default (set `limit`; page with `offset`); `total_matched` reports the full count. Optional min_amount (USD floor) and `days` (last-N-days window). Every award carries its source award_url; awards without a source link are dropped and never returned.
読み取り専用 冪等
入力スキーマ
{'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
Fund position changes (SEC 13F quarter-over-quarter)
What large institutional filers CHANGED quarter-over-quarter in their SEC 13F-HR holdings (opened / added / trimmed / exited a position) — the delta is the product; the raw snapshot is only the input. Every row carries as_of_quarter_end, filed_date and lag_days (values are up to ~45 days stale), value_usd in whole dollars, cusip + issuer_name, and its source filing_url. ticker is null (no authoritative free CUSIP->ticker source; never guessed). A missing prior quarter is the explicit state 'first_filing_on_record', not 'everything new'. Covers LONG US 13(f)-listed positions only — no shorts, non-US, or options. UNIVERSE: the fifty largest 13F filers by reported value as of the latest quarter, re-ranked quarterly. Because it is ranked BY REPORTED VALUE, the head is the biggest asset managers (BlackRock, Vanguard, State Street, Fidelity, ...) whose quarter-over-quarter changes largely reflect index rebalancing, not conviction; the feed reports WHAT WAS FILED, not what it means, and does not tag any manager active or passive (that would be inference). Coverage is PER SEC CIK, not per brand: a firm filing under several CIKs appears as several entries, and when a filer's 13F moves to a new CIK, historical coverage stays attached to the CIK that filed it. This is a convenience/completeness view of public data, NOT a trading edge. Returns the newest 25 by default (set `limit`; page with `offset`); `total_matched` reports the full count. Optional filer, change_type, min_value_usd, and `days` (last-N-days window).
読み取り専用 冪等
入力スキーマ
{'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}
insider_cluster_buys
Insider cluster buys
Rule-2 cluster buys only (>=2 insiders buying the same issuer in-window) — the highest-signal subset. Each row carries `uniform_price_cluster`: true when >=3 distinct insiders bought at the IDENTICAL price on the same filed_date for the same issuer — the fingerprint of an offering/conversion (one administered price), NOT independent open-market conviction. Note Form-4 code P covers open-market purchases AND some offering/conversion purchases filed under P; the per-row `offering_context` flag (and `uniform_price_cluster`) mark the latter. Genuine clusters rank ABOVE uniform-price ones. Returns the newest 25 by default (set `limit`; page with `offset`; optional `days`/`ticker`); `total_matched` reports the full count. Each record carries its source filing_url.
読み取り専用 冪等
入力スキーマ
{'type': 'object', 'required': [], 'properties': {'days': {'type': 'integer', 'description': 'Only rows filed within the last N days (relative to today).'}, '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.'}}, 'additionalProperties': False}
insider_filing_lookup
Single filing lookup by accession
The single Rule-2 record for one SEC filing accession, with its filing_url. Returns an error if no gated filing matches the accession.
読み取り専用 冪等
入力スキーマ
{'type': 'object', 'required': ['accession'], 'properties': {'accession': {'type': 'string', 'description': 'SEC filing accession, e.g. 0001493152-26-040454'}}, 'additionalProperties': False}
insider_signals_by_date_range
Insider-buy signals in a date range
Rule-2 insider-buy signals filed within an inclusive ISO date range. Returns the newest 25 by default (set `limit`; page with `offset`; optional `days`/`ticker`); `total_matched` reports the full count. Each record carries its source filing_url.
読み取り専用 冪等
入力スキーマ
{'type': 'object', 'required': ['start', 'end'], 'properties': {'end': {'type': 'string', 'format': 'date', 'description': 'Inclusive end date, ISO YYYY-MM-DD'}, 'days': {'type': 'integer', 'description': 'Only rows filed within the last N days (relative to today).'}, '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 start date, ISO YYYY-MM-DD'}, '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.'}}, 'additionalProperties': False}
insider_signals_by_ticker
Insider-buy signals for a ticker
All Rule-2 insider-buy signals for one ticker (case-insensitive). Returns the newest 25 by default (set `limit`; page with `offset`; optional `days`); `total_matched` reports the full count. Each record carries its source filing_url.
読み取り専用 冪等
入力スキーマ
{'type': 'object', 'required': ['ticker'], 'properties': {'days': {'type': 'integer', 'description': 'Only rows filed within the last N days (relative to today).'}, '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': 'Ticker symbol (case-insensitive), e.g. DKS'}}, 'additionalProperties': False}
insider_signals_today
Today's insider-buy signals
Rule-2 insider-buy signals filed today (SEC code P purchases). Code P is not necessarily open-market: each record carries `offering_context` (true = an IPO/offering/private-placement allocation, NOT an open-market buy). Returns the newest 25 by default (set `limit`; page with `offset`); the response's `total_matched` reports the full count. Optional `days`/`ticker` filters. Each record carries its source filing_url.
読み取り専用 冪等
入力スキーマ
{'type': 'object', 'required': [], 'properties': {'days': {'type': 'integer', 'description': 'Only rows filed within the last N days (relative to today).'}, '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.'}}, 'additionalProperties': False}
verify_13f_holding
Verify a 13F holding claim against SEC Form 13F-HR
Check whether a fund (filer name/CIK) HELD an issuer (issuer_name or cusip) as of a quarter, against the filed 13F-HR record. Returns status=held with the source filing(s) + link; not_held (the fund reported the position EXITED that quarter — a filed 'no', distinct from not_found); not_found (no such row in the covered window); or out_of_coverage (the claimed quarter is outside the collected as-of window). Every response states the coverage window checked. Rule-2: LONG US 13(f) positions only, values are as-of quarter-end and up to ~45 days stale, and ticker is never guessed — match on issuer_name or cusip.
読み取り専用 冪等
入力スキーマ
{'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}
verify_8k_event
Verify an 8-K disclosure claim against SEC Form 8-K
Check a claim that a registrant (cik/company/accession) filed an 8-K carrying specific SEC item code(s) in a timeframe, against the filed record. Returns status=confirmed with the source filing(s) + link; not_found; partial (same registrant/filing but the claimed item(s) aren't carried, or the date differs — itemised claimed-vs-filed); out_of_scope (claims about the body's meaning/materiality aren't covered — the filing is never paraphrased); or out_of_coverage. Every response states the coverage window checked. Rule-2: item codes are the SEC controlled vocabulary parsed from the filing — never inferred from prose.
読み取り専用 冪等
入力スキーマ
{'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}
verify_activist_13d
Verify an activist 13D claim against SEC Schedule 13D/13D-A
Check a claim about an activist stake (ticker/subject, filer, percent-of-class, stated intent, timeframe) against the filed Schedule 13D/13D-A record. Returns status=confirmed with the source filing(s) + link; not_found; partial (same filer/subject but percent/intent/date differs, itemised claimed-vs-filed); out_of_scope (passive 13G isn't covered); or out_of_coverage (outside the collected window). Every response states the coverage window checked. Rule-2: no estimates — absence is reported as absence, never guessed.
読み取り専用 冪等
入力スキーマ
{'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}
verify_insider_purchase
Verify an insider-purchase claim against SEC Form 4
Check a claim about an insider open-market buy (ticker/issuer, person, amount, timeframe) against the filed record. Returns status=confirmed with the source filing(s) + link; not_found; partial (same insider/company but value/date differs, itemised claimed-vs-filed); out_of_scope (sales/options/grants aren't covered); or out_of_coverage (outside the collected window). Every response states the coverage window checked. Rule-2: no estimates, no unlabelled partial matches — absence is reported as absence, never guessed.
読み取り専用 冪等
入力スキーマ
{'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 open-market buys are covered — sale/option/grant returns out_of_scope'}, '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}
変更
verify_13f_holding
2026年10月1日2:54
変更
verify_8k_event
2026年10月1日2:54
変更
verify_activist_13d
2026年10月1日2:54
変更
verify_insider_purchase
2026年10月1日2:54
変更
fund_position_changes
2026年10月1日2:54
変更
activist_stakes_recent
2026年10月1日2:54
変更
federal_awards_recent
2026年10月1日2:54
変更
insider_filing_lookup
2026年10月1日2:54
変更
insider_cluster_buys
2026年10月1日2:54
変更
insider_signals_by_date_range
2026年10月1日2:54
変更
insider_signals_by_ticker
2026年10月1日2:54
変更
insider_signals_today
2026年10月1日2:54
変更
fund_position_changes
2026年9月27日2:54
変更
activist_stakes_recent
2026年9月27日2:54
変更
federal_awards_recent
2026年9月27日2:54
変更
insider_cluster_buys
2026年9月27日2:54
変更
insider_signals_by_date_range
2026年9月27日2:54
変更
insider_signals_by_ticker
2026年9月27日2:54
変更
insider_signals_today
2026年9月27日2:54
追加
verify_13f_holding
2026年9月23日2:54
追加
verify_8k_event
2026年9月21日3:01
追加
verify_activist_13d
2026年9月21日3:01
追加
fund_position_changes
2026年9月21日3:01
追加
verify_insider_purchase
2026年9月17日12:38
追加
activist_stakes_recent
2026年9月17日12:38
追加
federal_awards_recent
2026年9月17日12:38
追加
insider_filing_lookup
2026年9月17日12:38
追加
insider_cluster_buys
2026年9月17日12:38
追加
insider_signals_by_date_range
2026年9月17日12:38
追加
insider_signals_by_ticker
2026年9月17日12:38