Signal8
NPM · @SIGNAL8AI/MCP · 2 COMPONENTS · SCANNED AUG 3
SEC filings, dilution, insider & institutional ownership, and political-trade data for AI agents.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score →
Supply Chain Security87
- No malware found by supply-chain analysis.Pass
- Only part of the dependency tree could be resolved (121 of 123), so this covers what we could see, not the whole tree.Partial
- No install/post-install scripts declared.Pass
- Only part of the dependency tree could be resolved (121 of 123), so this covers what we could see, not the whole tree. View diagnostics → Partial
Provenance & Transparency45
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 2 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability78
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 16449 tokens (~176/item across 93 items; 92 tools + 1 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management27
- Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
- Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.
npm · @signal8ai/mcp
claude mcp add ai-signal8-mcp -- npx -y @signal8ai/mcp
codex mcp add ai-signal8-mcp -- npx -y @signal8ai/mcp
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"ai-signal8-mcp": {
"type": "local",
"command": [
"npx",
"-y",
"@signal8ai/mcp"
],
"enabled": true
}
}
} openclaw mcp add ai-signal8-mcp --command npx --arg -y --arg @signal8ai/mcp
mcp_servers:
ai-signal8-mcp:
command: "npx"
args: ["-y", "@signal8ai/mcp"] {
"mcpServers": {
"ai-signal8-mcp": {
"command": "npx",
"args": [
"-y",
"@signal8ai/mcp"
]
}
}
} Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 3 Aug 26 +30
- Provenance: unverified → fail ▼ security
- Install scripts: unverified → pass ▲ security
- Known CVEs: unverified → partial ▲ security
- Schema quality: unverified → excellent ▲ functional
- License: unverified → pass ▲ functional
- Maintenance: unverified → pass ▲ functional
- Stability: unverified → 0.27 ▲ functional
- MCP protocol: unverified → pass ▲ functional
- Dependency health: unverified → partial ▲ functional
- Licence: MIT functional
- 2 Aug 26 +15
- Malware scan: unverified → pass ▲ security
- 31 Jul 26 +19
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 30 Jul 26 −74
- Install scripts: pass → unverified ▼ security
- Provenance: fail → unverified ▼ security
- Malware scan: pass → unverified ▼ security
- Known CVEs: partial → unverified ▼ security
- Dependency health: partial → unverified ▼ functional
- Schema quality: 100 → unverified ▼ functional
- License: pass → unverified ▼ functional
- Maintenance: pass → unverified ▼ functional
- Tool coverage: 100 → unverified ▼ functional
- Licence: MIT functional
- Package version: 0.13.0 → 0.14.0 functional
- 28 Jul 26 +29
- Provenance: unverified → fail ▼ security
- Known CVEs: unverified → partial ▲ security
- Install scripts: unverified → pass ▲ security
- Dependency health: unverified → partial ▲ functional
- Schema quality: unverified → good ▲ functional
- Maintenance: unverified → pass ▲ functional
- License: unverified → pass ▲ functional
- Licence: MIT functional
- 27 Jul 26 51
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 3 Aug 2026 · Analysed npm/@signal8ai/[email protected]
Provenance none
Ecosystem: npm · Outcome: none
Dependencies 121 packages
121 packages in the resolved dependency tree · 121 deprecated · 35 stale.
The dependency tree was only partially resolved, so these counts may be incomplete.
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.
get_policy_trade_overlap Get Policy-Trade Overlap ~363
For a single politician, list trades that occurred within a window of days before or after the signing of an executive order affecting the traded sector. Each row contains the trade, the nearestEvent, daysDelta (negative = traded N days before EO signing, positive = traded N days after), matchBasis, and matchCount, plus a summary (totalFlags, totalEstimatedUsd, topSector). Defaults to trades 1-14 days BEFORE signing; same-day trades are always excluded (intraday ordering is unknowable). Unlike get_donor_trade_overlap, executive-branch (exec-) slugs return REAL data here: both congressional and executive trade sources feed the overlap computation. IMPORTANT: matches are sector-level co-occurrence — the official traded a stock in a sector the executive order affects, within a window of its signing date. Sector matches are broad and many trades will coincide with policy activity by chance; a match is a starting point for research, not evidence of foreknowledge. The matchBasis field describes match strength only ('sector' = broad sector match), never culpability, and matchCount shows how many EOs matched in the window (a noise indicator).
| Name | Type | Req | Description |
|---|---|---|---|
| direction | string | — | Which side of the signing date to include: 'before' (default), 'after', or 'both' |
| limit | number | — | Maximum results to return (default: 50, max: 100) |
| offset | number | — | Pagination offset (default: 0) |
| slug | string | yes | Politician URL slug — congressional ("sen-nancy-pelosi", "rep-...") or executive branch ("exec-...") |
| window | number | — | Match window in days around the EO signing date (default: 14, max: 30) |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | — | — |
No examples provided.
get_political_sector_rotation Get Political Sector Rotation ~170
Which market SECTORS politicians have been trading in over a trailing window. Aggregates congressional + executive trades by sector and returns, per sector: trade count, total dollar volume, number of distinct politicians, and the top tickers. Use it to see where political trading activity is concentrating (e.g. "politicians piled into Energy this month"). Sort by count or dollar volume.
| Name | Type | Req | Description |
|---|---|---|---|
| chamber | string | — | Optional chamber filter (default: all chambers merged) |
| limit | number | — | Top-N sectors to return (default: 15, max: 30) |
| sortBy | string | — | Rank sectors by trade count or summed dollar volume (default: count) |
| windowDays | number | — | Lookback window in days (default: 30, max: 90) |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | — | — |
No examples provided.
get_politician_activity Get Politician Activity ~90
Get activity metrics for a politician broken down by period (30d, 90d, 1y, all-time). Includes buy/sell counts and values per period, most traded tickers (top 10), and transaction type breakdown. Useful for analyzing trading patterns over time.
| Name | Type | Req | Description |
|---|---|---|---|
| slug | string | yes | Politician URL slug (e.g., "sen-nancy-pelosi") |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | — | — |
No examples provided.
get_politician_committees Get Politician Committees ~107
Get committee assignments for a politician including committee name, chamber, role (Chair, Ranking Member, etc.), and subcommittee memberships. Use to correlate trading activity with committee oversight areas. Requires a politician slug (e.g. "sen-nancy-pelosi") -- use get_politicians first to find the slug.
| Name | Type | Req | Description |
|---|---|---|---|
| slug | string | yes | Politician URL slug (e.g., "sen-nancy-pelosi", "rep-nancy-pelosi") |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | — | — |
No examples provided.
get_politician_detail Get Politician Detail ~97
Get the full profile for a politician including party, state, chamber, trade statistics, filing delay metrics, most traded sector, and their 10 most recent transactions. Use get_politicians first to find the slug (e.g. "sen-nancy-pelosi").
| Name | Type | Req | Description |
|---|---|---|---|
| slug | string | yes | Politician URL slug (e.g., "sen-nancy-pelosi", "sen-tommy-tuberville") |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | — | — |
No examples provided.
get_politician_donor_summary Get Politician Donor Summary ~148
Get a bundled donor summary for a single politician: cycle totals (raised, spent, cash-on-hand, debts), donor count, top 10 individual donors, and top 10 PAC donors — all in one response. This is the right tool for "who funds <politician>" or "biggest donors to <politician>" style questions. For the full paginated list, use get_politician_donors.
| Name | Type | Req | Description |
|---|---|---|---|
| cycle | string | — | Election cycle as 4-digit year (e.g. "2024"). Defaults to most recent cycle. |
| slug | string | yes | Politician URL slug (e.g., "sen-nancy-pelosi") |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | — | — |
No examples provided.
get_politician_donors Get Politician Donors ~268
Get the paginated list of campaign donors (individuals and PACs) for a single politician across one election cycle. Returns donor name, amount, type, employer/occupation (individuals), and committee details (PACs). Use this when a user asks "who donated to <politician>" or wants the full donor list. For a quick top-10 + cycle totals overview, use get_politician_donor_summary instead.
| Name | Type | Req | Description |
|---|---|---|---|
| cycle | string | — | Election cycle as 4-digit year (e.g. "2024"). Defaults to most recent cycle. |
| limit | number | — | Maximum results to return (default: 50, max: 100) |
| minAmount | number | — | Minimum contribution amount in USD (filters out small donors) |
| offset | number | — | Pagination offset (default: 0) |
| slug | string | yes | Politician URL slug (e.g., "sen-nancy-pelosi") |
| sortBy | string | — | Sort field: 'amount' (default), 'date', or 'name' |
| sortOrder | string | — | Sort direction (default: 'desc') |
| type | string | — | Filter by donor type: 'individual', 'pac', or 'all' (default: 'all') |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | — | — |
No examples provided.
get_politician_late_filers Get Politician Late Filers ~112
Get STOCK Act late filing violations -- trades where the disclosure was filed more than 45 days after the transaction (a legal violation). Sorted by filing delay descending. Useful for identifying politicians with poor disclosure compliance.
| Name | Type | Req | Description |
|---|---|---|---|
| days | number | — | Lookback period in days (default: 180, max: 730) |
| limit | number | — | Maximum results to return (default: 10, max: 50) |
| offset | number | — | Pagination offset (default: 0) |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | — | — |
No examples provided.
get_politician_pnl Get Politician P&L ~247
Get estimated realized + unrealized profit & loss for a politician. Methodology: each disclosed trade amount range is converted to an estimated share count using the stock's historical market price on the transaction date, then FIFO-matched on SHARES (realized = (sellPrice − buyPrice) × matched shares); open positions are marked to the current price for unrealized P&L. Works for Congress (sen-/rep-) AND executive branch (exec-) officials. Response includes a `totals` object (estimatedRealizedPnl, estimatedUnrealizedPnl, winRate, realizedTrades, tickersTraded) and a `byTicker[]` breakdown (estimatedShares, avgCostBasis, currentPrice, realizedPnl, unrealizedPnl, unrealizedPnlPercent) — byTicker open positions double as the estimated holdings. All figures are ESTIMATES (±25-40% from disclosure bracket width). Use get_politicians first to find the slug.
| Name | Type | Req | Description |
|---|---|---|---|
| slug | string | yes | Politician URL slug — congressional ("sen-nancy-pelosi", "rep-...") or executive ("exec-trump-donald-j") |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | — | — |
No examples provided.
get_politician_recent_trades Get Recent Politician Trades ~135
Get recent STOCK Act trades across all politicians. Each trade includes the senator info, ticker, transaction type, amount, and filing delay. Filter by direction (buy/sell) and lookback period. Useful for monitoring current congressional trading activity.
| Name | Type | Req | Description |
|---|---|---|---|
| days | number | — | Lookback period in days (default: 30, max: 365) |
| direction | string | — | Filter by direction: 'buy' or 'sell' |
| limit | number | — | Maximum results to return (default: 50, max: 100) |
| offset | number | — | Pagination offset (default: 0) |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | — | — |
No examples provided.
get_politician_roles Get Politician Roles ~60
Get committee leadership roles (Chair, Ranking Member, etc.) for a politician. Use get_politicians first to find the slug.
| Name | Type | Req | Description |
|---|---|---|---|
| slug | string | yes | Politician URL slug (e.g., "sen-nancy-pelosi") |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | — | — |
No examples provided.
get_politician_transactions Get Politician Transactions ~160
Get paginated trade history for a specific politician. Returns individual STOCK Act disclosures with ticker, transaction type, amount range, filing delay, and late filing flag. Includes a summary with total buys/sells and net value.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | number | — | Maximum results to return (default: 50, max: 100) |
| offset | number | — | Pagination offset (default: 0) |
| slug | string | yes | Politician URL slug (e.g., "sen-nancy-pelosi") |
| sortBy | string | — | Sort field (default: 'date') |
| sortOrder | string | — | Sort direction (default: 'desc') |
| type | string | — | Filter by transaction type: 'Purchase' or 'Sale' |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | — | — |
No examples provided.
get_politician_votes Get Politician Votes ~118
Get voting records for a politician by slug. Returns congressional votes with bill info, position (Yea/Nay/Not Voting), and result. Useful for assessing alignment between a politician's votes and their trading positions. Requires Bioguide ID resolution.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | number | — | Maximum results to return (default: 10, max: 100) |
| offset | number | — | Pagination offset (default: 0) |
| slug | string | yes | Politician URL slug (e.g., "sen-nancy-pelosi") |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | — | — |
No examples provided.
get_politicians Get Politicians ~196
List and search congressional politicians who have STOCK Act trading disclosures. Filter by party (D/R/I), state, or search by name. Returns paginated results with trade counts, last trade date, and net buy/sell direction over the trailing 12 months.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | number | — | Maximum results to return (default: 10, max: 100) |
| offset | number | — | Pagination offset (default: 0) |
| party | string | — | Filter by party: 'D' (Democrat), 'R' (Republican), 'I' (Independent) |
| search | string | — | Search by politician name (partial match) |
| sortBy | string | — | Sort field (default: 'last_trade') |
| sortOrder | string | — | Sort direction (default: 'desc') |
| state | string | — | Filter by US state (2-letter code, e.g. "CA", "TX") |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | — | — |
No examples provided.
get_politicians_most_active Get Most Active Politicians ~96
Discover the most active congressional traders ranked by trade count within a lookback period. Returns each politician with trade count, tickers traded, buy/sell values, and top tickers. Useful for identifying the most prolific political traders.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | number | — | Maximum results to return (default: 10, max: 50) |
| period | string | — | Lookback period (default: '90d') |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | — | — |
No examples provided.
get_politicians_pnl_leaderboard Get Politicians P&L Leaderboard ~145
Rank politicians (Congress + executive branch) by estimated trading P&L across the universe. Sort by total P&L, win rate, or traded volume. P&L uses price-adjusted share estimation: disclosed amount ranges → estimated shares via historical price → FIFO on shares → open positions marked to current price. Figures are ESTIMATES (±25-40% from disclosure bracket width).
| Name | Type | Req | Description |
|---|---|---|---|
| limit | number | — | Maximum results to return (default: 25, max: 100) |
| offset | number | — | Pagination offset (default: 0) |
| sortBy | string | — | Sort field (default: 'pnl') |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | — | — |
No examples provided.
get_post_earnings_movers Get Post-Earnings Movers ~154
Get stocks that moved significantly after earnings reports on a given date. Returns pre-computed price changes with earnings surprise data in a single call — no need to chain get_earnings_calendar + get_historical_prices + get_quote per ticker. Includes preEarningsClose, currentPrice, changePct, EPS/revenue actuals vs estimates, and surprise percentages. Filter by minimum absolute % change threshold.
| Name | Type | Req | Description |
|---|---|---|---|
| date | string | yes | Earnings date to check (YYYY-MM-DD) |
| limit | integer | — | Maximum results to return (default 25, max 100) |
| minChangePct | number | — | Minimum absolute % price change to include (default 5). Set to 0 for all. |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | — | — |
No examples provided.
get_premarket_scan_history Get Premarket Scan History ~1,566
Historical MARKET-WIDE premarket scan for a single PAST trade date. For the requested ET date, returns every ticker with that day's premarket (default) session volume and its relative volume (RVOL) vs the trailing 90-day same-session baseline — the SAME RVOL math as get_rvol_history, but across the whole market for one date instead of one ticker across many dates. Filter by RVOL, market cap, price, and float to backtest screens like "sub-$500M tickers with premarket RVOL > 5 on 2026-07-20" in one call. Rows are ranked by RVOL descending. A future or non-trading date returns an empty list with an explanatory reason (not an error). Every row also reports "baselineState" (why its RVOL is or is not null), "advRatio" (volume ÷ trailing 30-session average FULL-DAY volume) and "advDays"; set includeNoHistory=true to surface high-volume tickers that have no computable RVOL at all, such as first-session new listings. Each row ALSO publishes the RVOL denominator itself as "baselineVolume" (shares) plus a "baselineThin" flag (true when that denominator is under 200 shares): a 90x RVOL off a 1-share baseline is arithmetically correct and analytically worthless. That is almost entirely an asOfTime-basis effect (0.1% of full-session rows vs ~38% at the 04:30 cutoff, falling to ~9% by 09:15) and it skews to LIQUID LARGE CAPS that simply do not trade early, NOT to microcaps. Screen it out with minBaselineVolume and/or minSessionVolume. The response "meta" also reports asOfApplied / asOfIgnored / asOfIgnoredReason, so a time-of-day request that could not be honoured is visible instead of quietly returning full-session numbers. Charged per your API tier.
| Name | Type | Req | Description |
|---|---|---|---|
| asOfTime | string | — | Optional TRUE time-of-day premarket basis. Any HH:MM ET premarket time; snapped to the nearest 15-minute grid cutoff (04:00–09:15, ties resolve to the earlier cutoff). When set, RVOL is cumulative pr… |
| baselineDays | integer | — | Rolling RVOL baseline window, in trading rows (same-session days). Default 90; values outside 20-250 are clamped. This is the DENOMINATOR window: every RVOL in the response is that period's volume di… |
| date | string | yes | REQUIRED past ET trade date to scan (YYYY-MM-DD). Future/non-trade dates return an empty list. |
| includeNoHistory | boolean | — | Also return the cohort minRvol structurally hides: tickers with NO computable RVOL. Two kinds, told apart by each row's "baselineState" — "no-history" (a new listing with no prior trading history at… |
| limit | integer | — | Max rows to return (1–200, default 50). Rows are ranked by RVOL desc. |
| maxFloat | number | — | Maximum public float (shares). |
| maxMarketCap | number | — | Maximum market cap in USD (e.g. 500000000 for sub-$500M). |
| maxPrice | number | — | Maximum latest price in USD. |
| minBaselineVolume | number | — | Minimum RVOL DENOMINATOR in shares. Drops rows whose "baselineVolume" is below it, plus every row that has no baseline at all. This is the direct fix for a huge RVOL computed against a near-zero base… |
| minFloat | number | — | Minimum public float (shares). |
| minMarketCap | number | — | Minimum market cap in USD (market_cap_computed = price × shares outstanding). |
| minPrice | number | — | Minimum latest price in USD. |
| minRvol | number | — | Minimum RVOL (day session volume ÷ trailing 90-day baseline). Drops rows whose baseline is not yet warm. |
| minSessionVolume | number | — | Minimum RVOL NUMERATOR in shares — the scanned session's own volume. Answers "did enough actually trade to be worth acting on?", where minBaselineVolume answers "is the comparison meaningful at all?"… |
| offset | integer | — | Pagination offset (default 0). |
| session | string | — | Session bucket to scan (default premarket). "all" = full extended day. |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | — | — |
No examples provided.
get_premarket_scanner Get Premarket Scanner ~498
Get the live premarket scanner board — the top premarket gainers and losers by absolute gap %, each row enriched with rvol, marketCap, floatShares, short interest, dilution, and news/catalyst flags. Off-hours it falls back to the last session. Use for premarket small-cap runner discovery. Set includePennyStocks=true to include sub-$1 names (separate cache slot). During the 04:00–09:30 ET premarket window rows also carry two LIVE volume metrics off the same live cumulative-volume numerator — they are DIFFERENT quantities and must not be substituted for each other or for "rvol": "liveRvol" = live cumulative premarket volume ÷ the trailing 90-session average cumulative volume AT THE SAME TIME OF MORNING (answers "is it busy for 08:00?"), with "liveRvolAsOf" giving the 15-minute ET grid cutoff that baseline came from — compare it to meta.asOf (when the live volume was sampled) to judge the small numerator/denominator time skew; and "premarketPaceRatio" = the same live volume ÷ the trailing 90-session average FULL premarket session (answers "what fraction of a typical entire premarket has it already done?", >1.0 = it already beat a normal premarket before the open). Both are null outside the premarket window or until the baseline is warm — never a fabricated ratio. Set universe="lowfloat" for the separate LOW-FLOAT board (float under 10M shares, no top-100 slice) instead of the default movers-derived board; that board is served from the aggregator snapshot and returns an empty rows array with a meta.reason when no snapshot is currently published (a normal off-hours state, not an error). Charged per your API tier.
| Name | Type | Req | Description |
|---|---|---|---|
| includePennyStocks | boolean | — | Include sub-$1 (penny) stocks in the results. Default false. |
| sort | string | — | Sort key for the low-float board: "gap" (default) or "rvol". Ignored for universe="default", which is always gap-ranked. |
| universe | string | — | Which board to return. "default" (the default) is the movers-derived top-100 board. "lowfloat" is the low-float board (float < 10M shares, no top-100 slice). |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | — | — |
No examples provided.
get_price_target Get Price Target ~122
Get analyst price target data for a ticker. By default returns the consensus / split-adjusted average price target. Set list=true to return the full per-analyst list of individual price targets instead.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | number | — | Maximum results when list=true (default: 50, max: 100). Ignored for consensus. |
| list | boolean | — | false/omitted = consensus price target; true = per-analyst price-target list |
| ticker | string | yes | Stock ticker symbol (e.g., "AAPL", "TSLA") |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | — | — |
No examples provided.
get_quote Get Stock Quote ~122
Get the current stock quote for a company including price, volume, change, market cap, and other real-time market data. Use this when a user asks about a stock's current price or trading activity. Always includes halted/haltCode/haltReason/haltedAt/resumptionAt trading-halt fields (false/null when trading normally); a halted ticker returns the last-known quote instead of an error, or currentPrice:null + halted:true when nothing is recoverable.
| Name | Type | Req | Description |
|---|---|---|---|
| ticker | string | yes | Stock ticker symbol (e.g., "AAPL", "TSLA") |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | — | — |
No examples provided.
get_recent_congressional_votes Get Recent Congressional Votes ~84
Get recent congressional roll-call votes across all members, sourced from GovTrack (both chambers as available — currently Senate-heavy). Each vote includes member, bill info, position, and result.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | number | — | Maximum results to return (default: 50, max: 100) |
| offset | number | — | Pagination offset (default: 0) |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | — | — |
No examples provided.
get_recent_material_filings Get Recent Material Filings ~146
Recent material 8-K filings (last 7 days) for the constituents of an index universe. By default returns the high-signal 8-K item codes (material agreements, M&A, executive changes, restructurings, etc.); pass `items` to filter to specific 8-K item codes. Choose the universe with `universe`.
| Name | Type | Req | Description |
|---|---|---|---|
| items | array | — | Optional 8-K item codes (e.g. ["1.01","2.01"]) |
| limit | integer | — | Optional max rows (1–100, default 50) |
| universe | string | — | Index universe to scan (sp500, ndx, or dji). |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | — | — |
No examples provided.
get_recently_sponsored_bills Get Recently Sponsored Bills (Cross-Politician) ~140
Get the most recently introduced bills across all congressional sponsors. Each bill includes the sponsor block (bioguideId, fullName, party, state, politicianSlug) so persona agents can link directly to the sponsor detail page. politicianSlug is null when the sponsor is no longer in the active roster (typically ex-members). Requires CONGRESS_API_KEY on the backend.
| Name | Type | Req | Description |
|---|---|---|---|
| congress | number | — | Congress number to filter (default: 119 for current session) |
| limit | number | — | Maximum bills to return (default: 10, max: 50) |
| offset | number | — | Pagination offset (default: 0) |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | — | — |
No examples provided.
get_rvol_history Get RVOL History ~664
Get the per-day relative-volume (RVOL) time series for a ticker, bucketed by trading session (premarket 04:00–09:30 ET, regular 09:30–16:00, afterhours 16:00–20:00, or all four). Each day's RVOL compares that session's volume to a trailing same-session baseline (90 days by default — configurable via "baselineDays"), so premarket volume is judged against premarket history (not a stale full-day figure). Use for spotting unusual premarket / session volume surges over the last N days. Each point also carries "baselineState" — "ready" (rvol is populated), "warming" (baseline not yet warm), "no-cutoff-history" (established ticker that never traded at this session/cutoff before) or "no-history" (new listing, no prior trading history at all) — so a null rvol is explained rather than silent. Points additionally carry "advRatio" (that day's volume ÷ the trailing 30-session average FULL-DAY volume, null when no full-day denominator exists) and "advDays" (its sample size), which give a magnitude to points RVOL cannot rate. advRatio is NOT an RVOL — it compares a partial session to a whole day, so it is typically well under 1 and must not be compared to rvol. Charged per your API tier.
| Name | Type | Req | Description |
|---|---|---|---|
| asOfTime | string | — | Optional TRUE time-of-day premarket basis. Any HH:MM ET premarket time; snapped to the nearest 15-minute grid cutoff (04:00–09:15, ties resolve to the earlier cutoff). When set, the series is the PRE… |
| baselineDays | integer | — | Rolling RVOL baseline window, in trading rows (same-session days). Default 90; values outside 20-250 are clamped. This is the DENOMINATOR window: every RVOL in the response is that period's volume di… |
| days | integer | — | Number of trailing calendar days of history (1–90, default 30). |
| session | string | — | Restrict to one session bucket; omit to return all four sessions. |
| ticker | string | yes | Stock ticker symbol (e.g., "AAPL", "TSLA") |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | — | — |
No examples provided.
get_senate_trades_by_ticker Get Senate Trades by Ticker ~103
Reverse lookup — find which politicians recently traded a given TICKER. Returns recent STOCK Act disclosures for that symbol with politician info, transaction type, and amount.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | number | — | Maximum results to return (default: 50, max: 100) |
| offset | number | — | Pagination offset (default: 0) |
| ticker | string | yes | Stock ticker symbol (e.g., "AAPL", "NVDA") |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | — | — |
No examples provided.
get_short_interest Get Short Interest ~65
Get short interest data for a company including short volume, short ratio, days to cover, and short percent of float. Use when analyzing bearish sentiment or potential short squeeze setups.
| Name | Type | Req | Description |
|---|---|---|---|
| ticker | string | yes | Stock ticker symbol (e.g., "AAPL", "TSLA") |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | — | — |
No examples provided.
get_split_history Get Stock Split History ~77
Get stock split history for a company including forward and reverse splits with dates, ratios, type classification, and cumulative 2-year reverse split ratio. Relevant for NASDAQ/NYSE minimum bid-price compliance (1:250 cumulative reverse-split cap).
| Name | Type | Req | Description |
|---|---|---|---|
| ticker | string | yes | Stock ticker symbol (e.g., AAPL, TSLA) |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | — | — |
No examples provided.
get_stock_price_change Get Stock Price Change ~104
Get percentage price changes for a stock across multiple timeframes: 1D, 5D, 1M, 3M, 6M, YTD, 1Y, 3Y, 5Y, 10Y, and MAX. Use this for quick "how much is it up/down" answers without fetching full candle data.
| Name | Type | Req | Description |
|---|---|---|---|
| ticker | string | yes | Stock ticker symbol (e.g., "AAPL", "TSLA") |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | — | — |
No examples provided.
get_top_movers Get Top Market Movers ~413
Top stock movers — gainers (largest % up), losers (largest % down), or active (highest volume). Optional session window (premarket / regular / afterhours; regular default; not supported for active). Optional date (YYYY-MM-DD) returns a PAST trade date's gainers/losers on a historical daily close-to-close basis (computed from split-adjusted daily bars, NOT intraday) — session is rejected when date is set, date is not supported for direction=active, and a non-trade date (weekend/holiday) returns an empty list (not an error). Penny-stock artifacts are filtered by default — set includePennyStocks to include sub-$1 movers.
| Name | Type | Req | Description |
|---|---|---|---|
| date | string | — | Optional past trade date (YYYY-MM-DD). When set, returns that day's top gainers/losers computed on a historical daily close-to-close basis from split-adjusted daily bars (NOT intraday, NOT session-sp… |
| direction | string | yes | Mover direction: gainers, losers, or active (volume) |
| includePennyStocks | boolean | — | Loosen penny-stock artifact guards. Default false enforces prev_close >= $1 and a $1M dollar-volume floor. Set true to allow sub-$1 movers (prev_close >= $0.10, no dollar-volume floor). The ABS(chang… |
| limit | integer | — | Optional max rows (1–100). Backend default applied when omitted. |
| session | string | — | Session window: premarket (4:00–9:30 AM ET), regular (RTH close-to-close, default), afterhours (4:00–8:00 PM ET). Live-only — rejected (400) when combined with date. |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | — | — |
No examples provided.
get_trading_halts Get Active Trading Halts ~116
List currently-active trading halts across NASDAQ/NYSE/AMEX (from the consolidated Nasdaq Trader halt feed). Each halt includes ticker, market, haltCode (T1/T2/T12/LUDP/H10/...), human-readable reason, haltedAt, and the scheduled resumptionAt when one is set. An EMPTY list is a normal state (no active halts right now), not an error. Halts are tradeable catalysts — use this to discover halted names, then get_quote for the frozen last price.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | — | — |
No examples provided.
get_volume_profile Get Volume Profile ~113
Get volume distribution across price levels for a single trading day. Returns price buckets with volume, Point of Control (highest volume level), and Value Area (price range containing 70% of volume). Use for identifying support/resistance and high-volume price nodes.
| Name | Type | Req | Description |
|---|---|---|---|
| bucketSize | number | — | Price bucket width in dollars (default $1.00) |
| date | string | yes | Trading day (YYYY-MM-DD) |
| ticker | string | yes | Stock ticker symbol (e.g., "AAPL", "TSLA") |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | — | — |
No examples provided.
lookup_accession_number Lookup Accession Number ~132
Look up a filing or exhibit by its SEC accession number. Supports both dashed format (e.g., "0001193125-22-010026") and compact 18-digit format. Returns filing metadata including company name, form type, filing date, and exhibit count. If the filing is in the local database, returns full metadata; if only found on SEC EDGAR, returns basic metadata with an isInDatabase: false flag.
| Name | Type | Req | Description |
|---|---|---|---|
| accessionNumber | string | yes | SEC accession number in dashed (e.g., "0001193125-22-010026") or compact 18-digit format |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | — | — |
No examples provided.
screen_companies Screen Companies ~499
Screen companies by price range, volume, cash runway, float, shares outstanding, market cap, industry, listing exchange (NASDAQ/NYSE/AMEX), and float data source. Sort results by any sortable column. Returns matching companies with key metrics and pagination. Each row carries live trading-halt status (halted/haltCode/haltedAt; false/null when trading normally); pass excludeHalted=true to drop currently-halted tickers from the results.
| Name | Type | Req | Description |
|---|---|---|---|
| country | string | — | Company universe by issuer domicile: "US" (default), "CA" (Canadian companies via their US-OTC/US cross-listings), or "all" |
| exchange | string | — | Filter by listing exchange (exact match): NASDAQ, NYSE, or AMEX |
| excludeHalted | boolean | — | When true, exclude tickers with a currently-active trading halt (regulatory or volatility) from the results. Default false — halted rows are included and carry halted/haltCode/haltedAt fields. |
| floatSource | string | — | Filter by float data source |
| industry | string | — | Filter by company industry (exact match, e.g. "Biotechnology", "Software") |
| limit | number | — | Maximum results per page (default: 25, max: 100) |
| maxCashRunway | number | — | Maximum estimated months of cash remaining |
| maxFloat | number | — | Maximum computed public float (shares) |
| maxMarketCapComputed | number | — | Maximum market cap in USD (price * shares outstanding) |
| maxPrice | number | — | Maximum latest price in USD |
| maxSharesOutstanding | number | — | Maximum shares outstanding from SEC EDGAR |
| maxVolume | number | — | Maximum daily trading volume |
| minCashRunway | number | — | Minimum estimated months of cash remaining |
| minFloat | number | — | Minimum computed public float (shares) |
| minMarketCapComputed | number | — | Minimum market cap in USD (price * shares outstanding) |
| minPrice | number | — | Minimum latest price in USD |
| minSharesOutstanding | number | — | Minimum shares outstanding from SEC EDGAR |
| minVolume | number | — | Minimum daily trading volume |
| offset | number | — | Offset for pagination (default: 0) |
| sortBy | string | — | Column to sort results by (default: volume) |
| sortOrder | string | — | Sort direction (default: desc) |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | — | — |
No examples provided.
screen_must_raise Screen Companies That Must Raise Capital ~149
Find companies with imminent capital raise needs based on estimated cash runway. Defaults to companies with less than 6 months of cash remaining, sorted by urgency (lowest runway first). Useful for identifying distressed companies, imminent dilution situations, or potential financing catalysts. Runway is estimated from current burn rate.
| Name | Type | Req | Description |
|---|---|---|---|
| industry | string | — | Filter by company industry (exact match, e.g. "Biotechnology", "Software") |
| limit | number | — | Maximum results to return (default: 25, max: 100) |
| maxMonths | number | — | Maximum months of cash runway to filter by (default: 6) |
| offset | number | — | Offset for pagination (default: 0) |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | — | — |
No examples provided.
screen_sec_filings Screen SEC Filings ~461
Screen SEC filings across all companies with company-level filters (sector, industry, market cap, exchange) combined with filing-level filters (form type, date range). Returns filings enriched with company metadata: ticker, sector, industry, exchange, market cap, and price. Use this to answer questions like "find all S-1 filings from biotech companies under $500M market cap" or "show me recent 8-K filings from Technology sector companies". This is the most powerful filing DISCOVERY tool for filings — use search_sec_filings only when you already know the specific CIK. This tool returns FILINGS, not a company universe: to enumerate or COUNT companies by market cap / price / float (e.g. "find all companies under $300M market cap"), use screen_companies instead — it supports minMarketCapComputed / maxMarketCapComputed and returns a real total COUNT.
| Name | Type | Req | Description |
|---|---|---|---|
| dateFrom | string | — | Start date filter (YYYY-MM-DD) |
| dateTo | string | — | End date filter (YYYY-MM-DD) |
| exchange | string | — | Filter by exchange (e.g., "NASDAQ", "NYSE", "AMEX") |
| formTypes | string | — | Comma-separated form types (e.g., "S-1", "10-K,10-Q", "8-K", "S-3,424B5") |
| industry | string | — | Filter by industry (e.g., "Biotechnology", "Software - Application", "Oil & Gas E&P") |
| maxMarketCap | number | — | Maximum market cap in USD (e.g., 500000000 for $500M) |
| minMarketCap | number | — | Minimum market cap in USD (e.g., 1000000000 for $1B) |
| page | number | — | Page number (1-indexed, default: 1) |
| pageSize | number | — | Results per page (default: 25, max: 100) |
| sector | string | — | Filter by sector (e.g., "Healthcare", "Technology", "Financial Services", "Energy") |
| sortBy | string | — | Sort results by field (default: filing_date) |
| sortOrder | string | — | Sort direction (default: desc) |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | — | — |
No examples provided.
screen_sec_filings_performance Screen SEC Filings Performance ~376
Analyze stock price performance after SEC filings. Returns individual filing records with pre-computed price returns at +1 day, +3 days, +7 days, and +30 days after the filing date, plus aggregate statistics (average, median, % negative, best, worst) across all matching filings. Combine company-level filters (sector, industry, market cap, exchange) with filing filters (form type, date range). Use this to answer questions like "how do biotech stocks perform after S-1 filings?" or "what is the average 7-day return after 8-K filings from companies under $500M market cap?".
| Name | Type | Req | Description |
|---|---|---|---|
| dateFrom | string | — | Start date filter (YYYY-MM-DD) |
| dateTo | string | — | End date filter (YYYY-MM-DD) |
| exchange | string | — | Filter by exchange (e.g., "NASDAQ", "NYSE", "AMEX") |
| formTypes | string | — | Comma-separated form types (e.g., "S-1", "10-K,10-Q", "8-K", "S-3,424B5") |
| industry | string | — | Filter by industry (e.g., "Biotechnology", "Software - Application") |
| maxMarketCap | number | — | Maximum market cap in USD |
| minMarketCap | number | — | Minimum market cap in USD |
| page | number | — | Page number (1-indexed, default: 1) |
| pageSize | number | — | Results per page (default: 25, max: 100) |
| sector | string | — | Filter by sector (e.g., "Healthcare", "Technology", "Financial Services") |
| sortBy | string | — | Sort results by field (default: filing_date) |
| sortOrder | string | — | Sort direction (default: desc) |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | — | — |
No examples provided.
search_clinical_trials Search Clinical Trials ~200
Search clinical trials market-wide (cross-company). Distinct from get_clinical_trials, which is scoped to a single ticker. Filter by phase, indication, sponsor, status, and date window; sort and paginate the results.
| Name | Type | Req | Description |
|---|---|---|---|
| dateField | string | — | Date field to filter/sort on |
| from | string | — | Start date (YYYY-MM-DD) |
| indication | string | — | Condition / indication filter |
| limit | number | — | Maximum results to return (1-100, default: 50) |
| offset | number | — | Offset for pagination (default: 0) |
| order | string | — | Sort direction |
| phase | string | — | Trial phase filter (e.g., "Phase 3") |
| sort | string | — | Sort field |
| sponsor | string | — | Sponsor name filter |
| status | string | — | Trial status filter |
| to | string | — | End date (YYYY-MM-DD) |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | — | — |
No examples provided.
search_companies Search Companies ~99
Search for companies by name or ticker symbol in the Signal8 database. Returns matching companies with their ticker, name, CIK, and exchange. Use this as the first step to find a company before calling other tools.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | number | — | Maximum results to return (default: 10, max: 50) |
| query | string | yes | Search query - company name or ticker symbol (e.g., "Tesla", "TSLA") |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | — | — |
No examples provided.
search_filing_text Search Filing Text ~211
Full-text substring search across all SEC filing exhibit content. Returns matching snippets with context around each match. Powerful for finding specific clauses like "change of control", "anti-dilution", "right of first refusal", or any specific language across filings. Optionally filter by company (CIK), filing, accession number, or form type.
| Name | Type | Req | Description |
|---|---|---|---|
| accessionNumber | string | — | Filter to a specific filing by SEC accession number |
| cik | string | — | Filter to a specific company by CIK number |
| filingId | string | — | Filter to a specific filing by internal ID |
| formType | string | — | Filter by form type (e.g., "10-K", "S-1") |
| limit | number | — | Max results (default: 20, max: 100) |
| pattern | string | yes | Search pattern (minimum 2 characters). Substring match, case-insensitive. |
| snippetLength | number | — | Characters of context around each match (default: 200) |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | — | — |
No examples provided.
search_institutions Search Institutions by Name ~144
Search institutional investors (13F filers) by name. Returns matching institutions with CIK, name, AUM, holdings count, and latest filing period. Use this to find a specific fund or investment manager when you know part of their name (e.g., "Vanguard", "BlackRock", "Citadel"). Results are ranked by AUM descending.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | number | — | Maximum results to return (default: 25, max: 100) |
| offset | number | — | Offset for pagination (default: 0) |
| q | string | yes | Search term (min 2 characters, e.g., "Vanguard", "BlackRock") |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | — | — |
No examples provided.
search_sec_filings Search SEC Filings ~209
Search and list SEC filings with filtering by company (CIK), form type, and date range. Returns paginated results with filing metadata including form type, filing date, company name, and accession number. Use this to find filings before reading their content with get_filing_document or get_filing_exhibits.
| Name | Type | Req | Description |
|---|---|---|---|
| ciks | string | — | Comma-separated CIK numbers to filter by (e.g., "0000320193,0001018724") |
| dateFrom | string | — | Start date filter (YYYY-MM-DD) |
| dateTo | string | — | End date filter (YYYY-MM-DD) |
| formTypes | string | — | Comma-separated form types (e.g., "10-K,10-Q,8-K,S-1,S-3,424B5") |
| page | number | — | Page number (1-indexed, default: 1) |
| pageSize | number | — | Results per page (default: 25, max: 100) |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | — | — |
No examples provided.