# Insider Buy Signals (remote · mcp.tradestarinsider.com)

Filing-verified U.S. insider-buy signals from SEC Form 4: cluster buys and large-vs-holdings buys.

- Trust score: 68/100 (medium)
- Change this week: +3
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-09-29

## Components

- remote · `mcp.tradestarinsider.com`: 68/100 (this document), [markdown](https://verifymcp.io/servers/com-tradestarinsider-edgar-insider-signals/mcp.md), [page](https://verifymcp.io/servers/com-tradestarinsider-edgar-insider-signals/mcp)

## Channel facts

- Endpoint: `https://mcp.tradestarinsider.com/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.0.1`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-09-29.

- **Endpoint Security**: 46/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation not fully verified: no authorisation is required to call this server, and 12 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe.
  - HTTPS enforcement could not be verified: the plaintext port answered with HTTP 405, which proves neither a plaintext path nor enforcement.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 63/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 3129 tokens (~260/item across 12 items; 12 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 70/100
  - Stability observed for 21 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 12 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 13 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### How do I install the Insider Buy Signals MCP server?

Insider Buy Signals is a hosted endpoint at https://mcp.tradestarinsider.com/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http com-tradestarinsider-edgar-insider-signals 'https://mcp.tradestarinsider.com/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "com-tradestarinsider-edgar-insider-signals": {
      "url": "https://mcp.tradestarinsider.com/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "com-tradestarinsider-edgar-insider-signals": {
      "type": "http",
      "url": "https://mcp.tradestarinsider.com/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.com-tradestarinsider-edgar-insider-signals]
url = "https://mcp.tradestarinsider.com/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-tradestarinsider-edgar-insider-signals": {
      "type": "remote",
      "url": "https://mcp.tradestarinsider.com/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add com-tradestarinsider-edgar-insider-signals --url 'https://mcp.tradestarinsider.com/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  com-tradestarinsider-edgar-insider-signals:
    url: "https://mcp.tradestarinsider.com/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "com-tradestarinsider-edgar-insider-signals": {
      "Transport": "http",
      "Url": "https://mcp.tradestarinsider.com/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add com-tradestarinsider-edgar-insider-signals -t streamable-http -u 'https://mcp.tradestarinsider.com/mcp'
```

### Other

```json
{
  "mcpServers": {
    "com-tradestarinsider-edgar-insider-signals": {
      "type": "http",
      "url": "https://mcp.tradestarinsider.com/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-09-29 (score 68, +1)

No change was recorded against any check on this day. Stability & Change Management went from 67 to 70. That category is still filling its 30-day observation window: 20 days of observed history at the previous scan, 21 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-28 (score 67, 0)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-09-27 (score 67, 0)

- [security] Tool “activist_stakes_recent” rewrote its description, which is the text the model reads
- [security] Tool “federal_awards_recent” rewrote its description, which is the text the model reads
- [security] Tool “fund_position_changes” rewrote its description, which is the text the model reads
- [security] Tool “insider_cluster_buys” rewrote its description, which is the text the model reads
- [security] Tool “insider_signals_by_date_range” rewrote its description, which is the text the model reads
- [security] Tool “insider_signals_by_ticker” rewrote its description, which is the text the model reads
- [security] Tool “insider_signals_today” rewrote its description, which is the text the model reads
- [functional regression] Schema quality: 175 → 260
- [cosmetic] “activist_stakes_recent” added an optional parameter “days”
- [cosmetic] “activist_stakes_recent” added an optional parameter “offset”
- [cosmetic] “federal_awards_recent” added an optional parameter “days”
- [cosmetic] “federal_awards_recent” added an optional parameter “offset”
- [cosmetic] “fund_position_changes” added an optional parameter “days”
- [cosmetic] “fund_position_changes” added an optional parameter “offset”
- [cosmetic] “insider_cluster_buys” added an optional parameter “days”
- [cosmetic] “insider_cluster_buys” added an optional parameter “limit”
- [cosmetic] “insider_cluster_buys” added an optional parameter “offset”
- [cosmetic] “insider_cluster_buys” added an optional parameter “ticker”
- [cosmetic] “insider_signals_by_date_range” added an optional parameter “days”
- [cosmetic] “insider_signals_by_date_range” added an optional parameter “limit”
- [cosmetic] “insider_signals_by_date_range” added an optional parameter “offset”
- [cosmetic] “insider_signals_by_date_range” added an optional parameter “ticker”
- [cosmetic] “insider_signals_by_ticker” added an optional parameter “days”
- [cosmetic] “insider_signals_by_ticker” added an optional parameter “limit”
- [cosmetic] “insider_signals_by_ticker” added an optional parameter “offset”
- [cosmetic] “insider_signals_today” added an optional parameter “days”
- [cosmetic] “insider_signals_today” added an optional parameter “limit”
- [cosmetic] “insider_signals_today” added an optional parameter “offset”
- [cosmetic] “insider_signals_today” added an optional parameter “ticker”
- [cosmetic] “activist_stakes_recent” reworded the description of “limit”
- [cosmetic] “federal_awards_recent” reworded the description of “limit”
- [cosmetic] “fund_position_changes” reworded the description of “limit”

### 2026-09-25 (score 67, +1)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-09-23 (score 66, +1)

No change was recorded against any check on this day. Stability & Change Management went from 47 to 50. That category is still filling its 30-day observation window: 14 days of observed history at the previous scan, 15 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-21 (score 65, +1)

- [functional regression] Schema quality: 1780 → 2107
- [functional] New tool “verify_13f_holding”

### 2026-09-20 (score 64, −2)

- [functional regression] Schema quality: pass → fail
- [functional] New tool “fund_position_changes”
- [functional] New tool “verify_8k_event”
- [functional] New tool “verify_activist_13d”

### 2026-09-19 (score 66, +1)

No change was recorded against any check on this day. Stability & Change Management went from 33 to 37. That category is still filling its 30-day observation window: 10 days of observed history at the previous scan, 11 at this one. The score rises as the window fills, whether or not the server changes.

## MCP tools (12)

### `insider_signals_today` (~172 tokens)

Today's insider-buy signals

Rule-2 insider-buy signals filed today (SEC code P open-market purchases). 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.

Input parameters:

- `days` (integer): Only rows filed within the last N days (relative to today).
- `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.

### `insider_signals_by_ticker` (~165 tokens)

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.

Input parameters:

- `days` (integer): Only rows filed within the last N days (relative to today).
- `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, required): Ticker symbol (case-insensitive), e.g. DKS

### `insider_signals_by_date_range` (~197 tokens)

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.

Input parameters:

- `days` (integer): Only rows filed within the last N days (relative to today).
- `end` (string, required): Inclusive end date, ISO YYYY-MM-DD
- `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.
- `start` (string, required): Inclusive start date, ISO YYYY-MM-DD
- `ticker` (string): Case-insensitive exact ticker filter, e.g. DKS.

### `insider_cluster_buys` (~258 tokens)

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; this flag marks 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.

Input parameters:

- `days` (integer): Only rows filed within the last N days (relative to today).
- `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.

### `insider_filing_lookup` (~62 tokens)

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.

Input parameters:

- `accession` (string, required): SEC filing accession, e.g. 0001493152-26-040454

### `federal_awards_recent` (~181 tokens)

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.

Input parameters:

- `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.
- `min_amount` (number): Only awards at or above this USD amount
- `offset` (integer): Rows to skip before this page (pagination). Default 0.

### `activist_stakes_recent` (~229 tokens)

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.

Input parameters:

- `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.
- `min_percent` (number): Only stakes at or above this percent-of-class
- `offset` (integer): Rows to skip before this page (pagination). Default 0.
- `ticker` (string): Filter to one subject ticker (case-insensitive), e.g. DH

### `fund_position_changes` (~512 tokens)

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).

Input parameters:

- `change_type` (string): Only this kind of quarter-over-quarter change
- `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.
- `min_value_usd` (number): Only positions at or above this current value in WHOLE US dollars
- `offset` (integer): Rows to skip before this page (pagination). Default 0.

### `verify_insider_purchase` (~303 tokens)

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.

Input parameters:

- `amount_usd` (number): Claimed purchase value in USD (matched ±5% or ±$1)
- `date` (string): Claimed date, ISO YYYY-MM-DD (matched ±3 filing days)
- `end` (string): Window end (ISO) if the claim is a range
- `issuer_name` (string): Issuer/company name (use if you don't have the ticker)
- `person` (string): Insider name in any order, e.g. 'Alfonso de Angoitia'
- `shares` (number): Claimed share count
- `start` (string): Window start (ISO) if the claim is a range
- `ticker` (string): Issuer ticker (case-insensitive), e.g. CAVA
- `txn_type` (string): Optional; only open-market buys are covered — sale/option/grant returns out_of_scope

### `verify_activist_13d` (~339 tokens)

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.

Input parameters:

- `date` (string): Claimed filed date, ISO YYYY-MM-DD (matched ±3 filing days)
- `end` (string): Window end (ISO) if the claim is a range
- `filer_name` (string): Activist filer name in any order, e.g. 'Elliott Management'
- `form_type` (string): Optional; only activist 13D/13D-A is covered — a passive 13G returns out_of_scope
- `intent` (string): Optional pre-registered intent: I1 control/take-private, I2 board/proxy, I3 strategic/value
- `percent_of_class` (number): Claimed percent-of-class owned (matched ±0.5 percentage points)
- `start` (string): Window start (ISO) if the claim is a range
- `subject_name` (string): Subject/target company name (use if you don't have the ticker)
- `ticker` (string): Subject-company ticker (case-insensitive), e.g. DH

### `verify_8k_event` (~318 tokens)

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.

Input parameters:

- `accession` (string): SEC filing accession, e.g. 0001193125-26-389400
- `cik` (string): Registrant CIK (leading zeros ignored), e.g. 320193
- `company_name` (string): Registrant name substring (case-insensitive), e.g. 'Apple'
- `date` (string): Claimed filing date, ISO YYYY-MM-DD (matched ±3 filing days)
- `end` (string): Window end (ISO) if the claim is a range
- `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

### `verify_13f_holding` (~327 tokens)

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.

Input parameters:

- `cusip` (string): 9-char CUSIP of the held security — give this or issuer_name. (ticker is never accepted: 13F carries no authoritative ticker)
- `end` (string): Quarter-window end (ISO) if the claim spans quarters
- `filer` (string): Fund/institution name substring (case-insensitive, e.g. 'Berkshire') or exact filer CIK — REQUIRED
- `issuer_name` (string): Held company/issuer name (e.g. 'Apple') — give this or cusip
- `quarter` (string): As-of quarter-end the claim is about, ISO YYYY-MM-DD (e.g. '2026-06-30')
- `start` (string): Quarter-window start (ISO) if the claim spans quarters

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/com-tradestarinsider-edgar-insider-signals/mcp#diagnostics

## Score history

- 2026-09-29: 68
- 2026-09-28: 67
- 2026-09-27: 67
- 2026-09-26: 67
- 2026-09-25: 67
- 2026-09-24: 66
- 2026-09-23: 66
- 2026-09-22: 65
- 2026-09-21: 65
- 2026-09-20: 64
- 2026-09-19: 66
- 2026-09-18: 65
- 2026-09-17: 65
- 2026-09-16: 64
- 2026-09-15: 64
- 2026-09-14: 63
- 2026-09-13: 63
- 2026-09-12: 62
- 2026-09-11: 62
- 2026-09-10: 61
- 2026-09-09: 61
- 2026-09-08: 60

## Common questions

### What is the Insider Buy Signals MCP server?

Insider Buy Signals is an MCP server listed in the public MCP registry as com.tradestarinsider/edgar-insider-signals. Filing-verified U.S. insider-buy signals from SEC Form 4: cluster buys and large-vs-holdings buys. This page covers its hosted endpoint (https://mcp.tradestarinsider.com/mcp).

### Is the Insider Buy Signals MCP server safe to use?

Insider Buy Signals scores 68 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the Insider Buy Signals MCP server expose?

Insider Buy Signals exposes 12 tools: insider_signals_today, insider_signals_by_ticker, insider_signals_by_date_range, insider_cluster_buys, insider_filing_lookup, and 7 more. Their descriptions and schemas cost roughly 3,063 tokens of context every time the server is loaded.

### Does the Insider Buy Signals MCP server require authentication?

No. We connected to Insider Buy Signals without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

### Is the Insider Buy Signals MCP server still maintained?

Insider Buy Signals is still listed as active in the MCP registry. We last reached this channel on 29 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://mcp.tradestarinsider.com/mcp
- Repository: https://github.com/TradestarV5/insider-signals
- Changelog RSS feed: https://verifymcp.io/servers/com-tradestarinsider-edgar-insider-signals/mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/com-tradestarinsider-edgar-insider-signals/mcp.json
- HTML version of this page: https://verifymcp.io/servers/com-tradestarinsider-edgar-insider-signals/mcp
