Signal8
REMOTE · MCP.SIGNAL8.AI · 2 COMPONENTS
SEC filings, dilution, insider & institutional ownership, and political-trade data for AI agents.
Available components
Last scanned (13 hours ago)
Scores higher than 99% of remote servers
Reachable. Last reached 5 Nov 2026.
Category Finance and Payments
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. How we score → Why this is hard to score →
Endpoint Security89
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation is enforced on tool calls, advertised via RFC 9728 protected-resource metadata. Discovery is public, which costs nothing: no tool can be invoked without a token. View diagnostics → Pass
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- HSTS check failed: the Strict-Transport-Security header is absent. See how to fix → View diagnostics → Fail
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
- The authorisation server offers only Dynamic Client Registration (RFC 7591), which MCP 2026-07-28 deprecated in favour of Client ID Metadata Documents. View diagnostics → Partial
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability79
- 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 45091 tokens (~186/item across 242 items; 113 tools + 129 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 Management100
- No destabilizing schema changes in the last 30 days.Pass
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
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 113 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 115 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Checks we ran (13)
- TLS certificate
- Authorization
- HTTPS
- HSTS header
- DNSSEC
- Transport
- Schema quality
- Stability
- Tool coverage
- Injection markers
- Destructive annotations
- Judged manipulation
- MCP protocol
Does not apply to this hosted endpoint (2)
- Supply Chain SecurityScored on package channels only. This is a hosted endpoint, so there is nothing to install or inspect.
- Provenance & TransparencyScored on package channels only. This is a hosted endpoint, so there is nothing to install or inspect.
The score does not measure everything. What the score does not measure →
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.
- 5 Nov 26 0
- Stability: 0.97 → pass security
- The server rewrote its instructions, which are the text every model session reads security
- Tool “get_accumulation_snapshot” rewrote its description, which is the text the model reads security
- Tool “get_analyst_coverage” rewrote its description, which is the text the model reads security
- Tool “get_analyst_estimates” rewrote its description, which is the text the model reads security
- Tool “get_baby_shelf_capacity” rewrote its description, which is the text the model reads security
- Tool “get_cash_history” rewrote its description, which is the text the model reads security
- Tool “get_cash_position” rewrote its description, which is the text the model reads security
- Tool “get_cash_runway_calendar” rewrote its description, which is the text the model reads security
- Tool “get_clinical_trials” rewrote its description, which is the text the model reads security
- Tool “get_company_profile” rewrote its description, which is the text the model reads security
- Tool “get_compliance” rewrote its description, which is the text the model reads security
- Tool “get_dilution_coverage” rewrote its description, which is the text the model reads security
- Tool “get_dilution_history” rewrote its description, which is the text the model reads security
- Tool “get_dilution_instruments” rewrote its description, which is the text the model reads security
- Tool “get_dilution_performance” rewrote its description, which is the text the model reads security
- Tool “get_dilution_risk” rewrote its description, which is the text the model reads security
- Tool “get_dilution_snapshot” rewrote its description, which is the text the model reads security
- Tool “get_donor_aggregates” rewrote its description, which is the text the model reads security
- Tool “get_earnings” rewrote its description, which is the text the model reads security
- Tool “get_ended_reverse_splits” rewrote its description, which is the text the model reads security
- Tool “get_executives” rewrote its description, which is the text the model reads security
- Tool “get_exhibit_content” rewrote its description, which is the text the model reads security
- Tool “get_filing_document” rewrote its description, which is the text the model reads security
- Tool “get_filing_documents” rewrote its description, which is the text the model reads security
- Tool “get_filing_exhibits” rewrote its description, which is the text the model reads security
- Tool “get_filing_structured” rewrote its description, which is the text the model reads security
- Tool “get_financials” rewrote its description, which is the text the model reads security
- Tool “get_float” rewrote its description, which is the text the model reads security
- Tool “get_float_history” rewrote its description, which is the text the model reads security
- Tool “get_historical_prices” rewrote its description, which is the text the model reads security
- Tool “get_insider_cross_company” rewrote its description, which is the text the model reads security
- Tool “get_insider_positions_by_ticker” rewrote its description, which is the text the model reads security
- Tool “define_term” rewrote its description, which is the text the model reads security
- Tool “get_analyst_consensus” rewrote its description, which is the text the model reads security
- Tool “get_insider_transactions” rewrote its description, which is the text the model reads security
- Tool “get_institution_derivatives” rewrote its description, which is the text the model reads security
- Tool “get_institution_detail” rewrote its description, which is the text the model reads security
- Tool “get_institution_position_changes” rewrote its description, which is the text the model reads security
- Tool “get_institution_top_aum” rewrote its description, which is the text the model reads security
- Tool “get_institutions_leaderboards” rewrote its description, which is the text the model reads security
- Tool “get_intraday_bars” rewrote its description, which is the text the model reads security
- Tool “get_learn_guide” rewrote its description, which is the text the model reads security
- Tool “get_legislative_calendar” rewrote its description, which is the text the model reads security
- Tool “get_market_breadth” rewrote its description, which is the text the model reads security
- Tool “get_market_metrics” rewrote its description, which is the text the model reads security
- Tool “get_market_news” rewrote its description, which is the text the model reads security
- Tool “get_news” rewrote its description, which is the text the model reads security
- Tool “get_ownership” rewrote its description, which is the text the model reads security
- Tool “get_policy_events” rewrote its description, which is the text the model reads security
- Tool “get_policy_trade_leaderboard” rewrote its description, which is the text the model reads security
- Tool “get_policy_trade_overlap” rewrote its description, which is the text the model reads security
- Tool “get_political_sector_rotation” rewrote its description, which is the text the model reads security
- Tool “get_politician_committees” rewrote its description, which is the text the model reads security
- Tool “get_politician_detail” rewrote its description, which is the text the model reads security
- Tool “get_politician_disclosures” rewrote its description, which is the text the model reads security
- Tool “get_politician_donor_summary” rewrote its description, which is the text the model reads security
- Tool “get_politician_donors” rewrote its description, which is the text the model reads security
- Tool “get_politician_late_filers” rewrote its description, which is the text the model reads security
- Tool “get_politician_pnl” rewrote its description, which is the text the model reads security
- Tool “get_politician_roles” rewrote its description, which is the text the model reads security
- Tool “get_politician_scorecard” rewrote its description, which is the text the model reads security
- Tool “get_post_earnings_movers” rewrote its description, which is the text the model reads security
- Tool “get_premarket_scan_history” rewrote its description, which is the text the model reads security
- Tool “get_premarket_scanner” rewrote its description, which is the text the model reads security
- Tool “get_quote” rewrote its description, which is the text the model reads security
- Tool “get_recent_congressional_votes” rewrote its description, which is the text the model reads security
- Tool “get_recent_uplistings” rewrote its description, which is the text the model reads security
- Tool “get_reverse_split_authority” rewrote its description, which is the text the model reads security
- Tool “get_reverse_split_lifecycle” rewrote its description, which is the text the model reads security
- Tool “get_reverse_splits_list” rewrote its description, which is the text the model reads security
- Tool “get_rvol_history” rewrote its description, which is the text the model reads security
- Tool “get_senate_trades_by_ticker” rewrote its description, which is the text the model reads security
- Tool “get_short_interest” rewrote its description, which is the text the model reads security
- Tool “get_split_history” rewrote its description, which is the text the model reads security
- Tool “get_split_performance” rewrote its description, which is the text the model reads security
- Tool “get_stock_price_change” rewrote its description, which is the text the model reads security
- Tool “get_top_movers” rewrote its description, which is the text the model reads security
- Tool “get_trading_halts” rewrote its description, which is the text the model reads security
- Tool “get_upcoming_reverse_splits” rewrote its description, which is the text the model reads security
- Tool “get_volume_profile” rewrote its description, which is the text the model reads security
- Tool “lookup_accession_number” rewrote its description, which is the text the model reads security
- Tool “screen_companies” rewrote its description, which is the text the model reads security
- Tool “screen_must_raise” rewrote its description, which is the text the model reads security
- Tool “screen_sec_filings” rewrote its description, which is the text the model reads security
- Tool “screen_sec_filings_performance” rewrote its description, which is the text the model reads security
- Tool “search_clinical_trials” rewrote its description, which is the text the model reads security
- Tool “search_companies” rewrote its description, which is the text the model reads security
- Tool “search_filing_text” rewrote its description, which is the text the model reads security
- Tool “search_institutions” rewrote its description, which is the text the model reads security
- Tool “search_learn_guides” rewrote its description, which is the text the model reads security
- Tool “search_sec_filings” rewrote its description, which is the text the model reads security
- “get_exhibit_content” reworded the description of “id” cosmetic
- “get_filing_document” reworded the description of “filingId” cosmetic
- “get_filing_exhibits” reworded the description of “filingId” cosmetic
- “get_legislative_calendar” reworded the description of “minRelevance” cosmetic
- “get_policy_trade_leaderboard” reworded the description of “sort” cosmetic
- “get_policy_trade_overlap” reworded the description of “slug” cosmetic
- “get_politician_pnl” reworded the description of “slug” cosmetic
- “get_premarket_scan_history” reworded the description of “asOfTime” cosmetic
- “get_premarket_scan_history” reworded the description of “baselineDays” cosmetic
- “get_premarket_scan_history” reworded the description of “date” cosmetic
- “get_premarket_scan_history” reworded the description of “includeNoHistory” cosmetic
- “get_premarket_scan_history” reworded the description of “includeUnscreened” cosmetic
- “get_premarket_scan_history” reworded the description of “minBaselineVolume” cosmetic
- “get_premarket_scan_history” reworded the description of “minSessionVolume” cosmetic
- “get_recent_uplistings” reworded the description of “dayOffset” cosmetic
- “get_rvol_history” reworded the description of “asOfTime” cosmetic
- “get_rvol_history” reworded the description of “baselineDays” cosmetic
- “get_rvol_history” reworded the description of “session” cosmetic
- “get_top_movers” reworded the description of “session” cosmetic
- “screen_companies” reworded the description of “excludeHalted” cosmetic
- “screen_companies” reworded the description of “maxCash” cosmetic
- “search_clinical_trials” reworded the description of “phase” cosmetic
- “search_filing_text” reworded the description of “exhibitTypes” cosmetic
- “search_filing_text” reworded the description of “facets” cosmetic
- “search_filing_text” reworded the description of “match” cosmetic
- “search_filing_text” reworded the description of “matchedSections” cosmetic
- “search_filing_text” reworded the description of “pattern” cosmetic
- “search_filing_text” reworded the description of “section” cosmetic
- “search_sec_filings” reworded the description of “companyTypes” cosmetic
- “search_sec_filings” reworded the description of “cursor” cosmetic
- “search_sec_filings” reworded the description of “exchanges” cosmetic
- “search_sec_filings” reworded the description of “excludeForms” cosmetic
- “search_sec_filings” reworded the description of “exhibitTypes” cosmetic
- “search_sec_filings” reworded the description of “facets” cosmetic
- “search_sec_filings” reworded the description of “foreignIssuer” cosmetic
- “search_sec_filings” reworded the description of “formTypes” cosmetic
- “search_sec_filings” reworded the description of “industries” cosmetic
- “search_sec_filings” reworded the description of “items” cosmetic
- “search_sec_filings” reworded the description of “match” cosmetic
- “search_sec_filings” reworded the description of “matchedSections” cosmetic
- “search_sec_filings” reworded the description of “maxFloat” cosmetic
- “search_sec_filings” reworded the description of “maxMarketCap” cosmetic
- “search_sec_filings” reworded the description of “maxPrice” cosmetic
- “search_sec_filings” reworded the description of “minFloat” cosmetic
- “search_sec_filings” reworded the description of “minMarketCap” cosmetic
- “search_sec_filings” reworded the description of “minPrice” cosmetic
- “search_sec_filings” reworded the description of “q” cosmetic
- “search_sec_filings” reworded the description of “recentIpo” cosmetic
- “search_sec_filings” reworded the description of “section” cosmetic
- “search_sec_filings” reworded the description of “sectors” cosmetic
- 4 Nov 26 0
- The server rewrote its instructions, which are the text every model session reads security
- Tool “define_term” rewrote its description, which is the text the model reads security
- Tool “get_baby_shelf_capacity” rewrote its description, which is the text the model reads security
- Tool “get_dilution_coverage” rewrote its description, which is the text the model reads security
- Tool “get_dilution_history” rewrote its description, which is the text the model reads security
- Tool “get_dilution_instruments” rewrote its description, which is the text the model reads security
- Tool “get_dilution_performance” rewrote its description, which is the text the model reads security
- Tool “get_dilution_risk” rewrote its description, which is the text the model reads security
- Tool “get_dilution_snapshot” rewrote its description, which is the text the model reads security
- Tool “get_filing_document” rewrote its description, which is the text the model reads security
- Tool “get_filing_documents” rewrote its description, which is the text the model reads security
- Tool “get_filing_structured” rewrote its description, which is the text the model reads security
- Tool “get_float” rewrote its description, which is the text the model reads security
- Tool “get_intraday_bars” rewrote its description, which is the text the model reads security
- Tool “get_learn_guide” rewrote its description, which is the text the model reads security
- Tool “get_ownership” rewrote its description, which is the text the model reads security
- Tool “get_politician_late_filers” rewrote its description, which is the text the model reads security
- Tool “get_premarket_scan_history” rewrote its description, which is the text the model reads security
- Tool “get_premarket_scanner” rewrote its description, which is the text the model reads security
- Tool “get_reverse_split_authority” rewrote its description, which is the text the model reads security
- Tool “get_reverse_split_lifecycle” rewrote its description, which is the text the model reads security
- Tool “get_reverse_splits_list” rewrote its description, which is the text the model reads security
- Tool “screen_companies” rewrote its description, which is the text the model reads security
- Tool “screen_sec_filings” rewrote its description, which is the text the model reads security
- Tool “search_filing_text” rewrote its description, which is the text the model reads security
- Tool “search_learn_guides” rewrote its description, which is the text the model reads security
- Tool “search_sec_filings” rewrote its description, which is the text the model reads security
- Resource “Signal8 Stock Screeners: Movers, Halts and Dilution” was removed ▼ functional
- Resource “Stocks Halted Today: Live Halt List and What Each Code Means” was removed ▼ functional
- Resource “Upcoming Reverse Splits: The Next Two Weeks, Explained” was removed ▼ functional
- Stability: pass → 0.97 functional
- New resource “Congress Stock Trading Ban: Where It Stands” functional
- New resource “How to Read the Reverse Split Calendar” functional
- New resource “Signal8 Stock Screeners: Halts, Dilution and Delisting” functional
- New resource “Why Stocks Get Halted and How to Find Today's Halts” functional
- “get_dilution_instruments” reworded the description of “family” cosmetic
- “get_intraday_bars” reworded the description of “extended” cosmetic
- 3 Nov 26 +1
We did not load change detail this far back for this component, so this day may have recorded more than is shown.
- Tool “get_split_history” rewrote its description, which is the text the model reads security
- Tool “get_quote” rewrote its description, which is the text the model reads security
- Tool “get_upcoming_reverse_splits” rewrote its description, which is the text the model reads security
- Schema quality: 355 → 205 ▲ functional
- New resource “13F Value vs AUM: Why a Fund's 13F Is Not Its Total Assets” functional
- New resource “8-K Item Codes Explained: Items 1.01 to 9.01” functional
- New resource “8-K vs 10-K: Event Report Within Four Business Days or the Audited Annual Report” functional
- New resource “Adverse Financing Terms: MFN, Partitions, No Maturity” functional
- New resource “At-the-market (ATM) offering” functional
- New resource “Authorized Share Increases: Reading the Proxy Vote” functional
- New resource “Authorized shares” functional
- New resource “Baby Shelf Rule Explained: S-3 I.B.6 vs Form S-1” functional
- New resource “Baby shelf rule” functional
- New resource “Beneficial Ownership Blockers: 4.99% and 9.99% Caps” functional
- New resource “Cash Runway: How to Calculate It From a 10-Q” functional
- New resource “Cash runway” functional
- New resource “Cashless exercise” functional
- New tool “get_ended_reverse_splits” functional
- New tool “get_reverse_split_authority” functional
- New tool “get_reverse_splits_list” functional
- New tool “get_split_performance” functional
- 31 Oct 26 −1
We did not load change detail this far back for this component, so this day may have recorded more than is shown.
- 21 Oct 26 +1
We did not load change detail this far back for this component, so this day may have recorded more than is shown.
- 20 Oct 26 −1
We did not load change detail this far back for this component, so this day may have recorded more than is shown.
- 17 Oct 26 +1
We did not load change detail this far back for this component, so this day may have recorded more than is shown.
- 16 Oct 26 −1
We did not load change detail this far back for this component, so this day may have recorded more than is shown.
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 5 Nov 2026 · Probed https://mcp.signal8.ai/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=signal8.ai | CN=WE1,O=Google Trust Services,C=US | 11 Oct 2026 | 9 Jan 2027 | ECDSA 256 | ECDSA-SHA256 | 347a136f1a654b920efbad0024c768c6 |
| SANs: signal8.ai, *.signal8.ai | ||||||
| CN=WE1,O=Google Trust Services,C=US (CA) | CN=GTS Root R4,O=Google Trust Services LLC,C=US | 13 Dec 2023 | 20 Feb 2029 | ECDSA 256 | ECDSA-SHA384 | 7ff31977972c224a76155d13b6d685e3 |
| CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) | CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE | 15 Nov 2023 | 28 Jan 2028 | ECDSA 384 | SHA256-RSA | 7fe530bf331343bedd821610493d8a1b |
Background: What to check on a remote MCP endpoint →
DNSSEC insecure
Validation of mcp.signal8.ai. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | Trust anchor | 20326, 38696 | 8, 8 | Verified |
| ai. | DS published | 1814, 3799 | 8, 8 | Verified |
| signal8.ai. | No DS | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication Enforced and verified
The endpoint asked for a token and published valid RFC 9728 metadata describing how to get one.
| Result | Enforced and verified |
|---|---|
| Enforced | On tool calls |
| HTTP status | 200 |
WWW-Authenticate challenge Bearer resource_metadata="https://mcp.signal8.ai/.well-known/oauth-protected-resource/mcp"
Bearer resource_metadata="https://mcp.signal8.ai/.well-known/oauth-protected-resource/mcp" Protected resource metadata
| Document | https://mcp.signal8.ai/.well-known/oauth-protected-resource/mcp |
|---|---|
| Retrieved | Yes |
| Resource | https://mcp.signal8.ai/mcp |
| Authorisation server | https://api.signal8.ai/ |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://mcp.signal8.ai/mcp | Verified | 200 | |
| http (plaintext) | http://mcp.signal8.ai/mcp | HTTPS enforced | 308 | https://mcp.signal8.ai/mcp |
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. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
get_upcoming_reverse_splits Get Upcoming Reverse Splits ~911
Reverse stock splits scheduled to take effect within a day-offset window of the current US market day, for companies under a market-cap ceiling. Offsets are days from today on the US market calendar: fromOffset=1, toOffset=1 is tomorrow; fromOffset=1, toOffset=7 is the week ahead. Each row carries the ticker, company name, the exact vendor integers (splitFrom/splitTo), a pre-rendered ratio ("1-for-20"), the effective date, market cap, float in shares, and price. floatShares is on the same split basis as the market cap. floatBasis says what it is: "measured", or "estimate" / "estimate_rebased" (the float ladder's point estimate, moved across this split when it predates it), i.e. an estimate rather than a measurement. floatShares: null means not measured or withheld, not zero and not "no float"; such rows are included (they have a valid market cap) and floatWithheldReason gives the reason. floatUnknownCount counts those null-float rows in the list; it is not a withholding count (withheldCount is). price is on the same split basis as the market cap (null when it cannot be stated on one basis), so it is not comparable with a pre-split price from elsewhere. Rows are splits scheduled as of now, not a guarantee that every split effective in the window is already known: the underlying stock_splits table has no created_at column, so when a row first appeared is unmeasurable, and a split announced later is simply missing. The result is "scheduled as of now", not "all" reverse splits. A scheduled split can also be postponed or cancelled after it is announced. capUnknownCount is a withholding count, not a zero: it counts rows that passed every other filter and were deliberately excluded because Signal8 has no measured market cap for them (typically real OTC microcaps). It does not mean those companies have no dilution, no split or no cap; the cap was not measured, so they cannot be asserted to sit under the stated ceiling, and with capUnknownCount above zero the list is not co…
| Name | Type | Req | Description |
|---|---|---|---|
| fromOffset | integer | – | Window start as a day offset from the US market day (default 1 = tomorrow). Must be <= toOffset; an inverted window is rejected rather than silently returning an empty list. |
| includeLifecycle | boolean | – | Attach the tracked SEC-filing lifecycle episode to each row (default false). null = no episode tracked, never "no split"; a missing key = not matched to a registrant (not measured). |
| maxMarketCap | number | – | Exclusive market-cap ceiling in USD (default 300000000). Rows with NO measured market cap are excluded and counted in capUnknownCount, never assumed to be under the ceiling. |
| toOffset | integer | – | Window end, inclusive, as a day offset from the US market day (default 1). Use 7 with fromOffset 1 for the week ahead. |
| Name | Type | Req | Description |
|---|---|---|---|
| data | – | – | – |
No examples provided.
get_volume_profile Get Volume Profile ~115
Get the volume distribution across price levels for a single trading day: price buckets with volume, the Point of Control (highest-volume level) and the Value Area (the price range containing 70% of volume), which locate 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 ~160
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, exhibit count and `filingId` (the internal id of the stored filing). If the filing is held in Signal8's archive (isInDatabase: true) its content is readable through that filingId; if it is only found on SEC EDGAR the response has isInDatabase: false and basic metadata only.
| 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 ~1,191
Screen companies by price range, volume, cash runway, float, shares outstanding, market cap, industry, listing exchange (NASDAQ/NYSE/AMEX), listing market (market="otc" / "exchange"; the reliable OTC test, as the exchange label is inconsistent on OTC rows), float data source, TTM dividend yield and snapshot cash (minCash / maxCash). Sortable by any sortable column. Returns matching companies with key metrics and pagination. Float: "float" is the measured point float (null on a withheld dilution-snapshot row, which then carries "floatEstimate" + "floatEstimateBound" ("point" / "ceiling" / "floor") + "floatEstimateBasis"). A point estimate is a number with its basis as the caveat; a ceiling or floor is a bound, not a figure: the float is not stated and is at most (ceiling) or at least (floor) that number. floatEstimate is not a basis for a market cap, percent-of-float or short-interest ratio. minFloat / maxFloat and the computed_float sort use the figure's value, so a bounded row is kept; a row with neither is not measured, not 0. `shares_outstanding` is dated by `sharesOutstandingAsOf` + `sharesOutstandingAsOfKind` (stated / checked / none = date not recorded) and `sharesOutstandingSource`; the count is only meaningful with its date. Cash runway: a null cash_runway_months carries cashRunwayReason. "estimate_would_be_negative" = the last cash figure (dated cashRunwayAsOf) rolled forward by burn is below zero: estimated exhausted, not a reported zero balance; maxCashRunway drops such rows unless includeRunwayExhausted=true. Any other or null reason is not a runway claim. estimatedCurrentCash (estimatedCashAsOf) is the snapshot's USD cash projection, only for snapshot-covered companies: null = not measured, not "no cash"; a non-USD filer has it null and is never matched by minCash / maxCash. dividendYield (TTM cash dividends with an ex-date in the last 365 days / current price, %), nextExDate, lastExDate: null = not measured or not a payer, not 0%. listingMarket: "exch…
| 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: NASDAQ (every tier), NYSE (includes NYSE Arca), or AMEX (NYSE American). Each matches every spelling of that exchange; names that moved to OTC never match. For OTC use mar… |
| 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 |
| includeRunwayExhausted | boolean | – | When true, maxCashRunway also returns companies whose estimated cash is already exhausted (cash_runway_months null, cashRunwayReason "estimate_would_be_negative"); they sort first on an ascending run… |
| industry | string | – | Filter by company industry (exact match, e.g. "Biotechnology", "Software") |
| limit | number | – | Maximum results per page (default: 25, max: 100) |
| market | string | – | Listing market: "otc" (OTC Markets) or "exchange" (NASDAQ / NYSE / NYSE American / Arca / Cboe). Companies with no listing record match neither |
| maxCash | number | – | Maximum dilution-snapshot cash projection in USD (estimatedCurrentCash). Snapshot-covered companies only; an uncovered company is not measured, not excluded for having cash |
| maxCashRunway | number | – | Maximum estimated months of cash remaining |
| maxDividendYield | number | – | Maximum TTM dividend yield in percent. Rows with no measured yield never match. |
| 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 |
| minCash | number | – | Minimum dilution-snapshot cash projection in USD (estimatedCurrentCash). Snapshot-covered companies reporting in USD only |
| minCashRunway | number | – | Minimum estimated months of cash remaining |
| minDividendYield | number | – | Minimum TTM dividend yield in percent (e.g. 3 for 3%). Rows with no measured yield never match. |
| 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 ~338
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): distressed companies, imminent dilution situations and potential financing catalysts. Runway is estimated from the current burn rate. Companies whose estimated cash is already exhausted are included by default and listed first: they carry cash_runway_months null with cashRunwayReason "estimate_would_be_negative" (the last cash figure, dated cashRunwayAsOf, rolled forward by the burn rate is below zero today). That is an estimate from a dated balance (estimated exhausted as of today, from the last cash figure as of cashRunwayAsOf), not a reported zero balance and not a statement that the company has no cash. Rows also carry estimatedCurrentCash / estimatedCashAsOf (dilution-snapshot cash projection; null = not measured) and listingMarket.
| Name | Type | Req | Description |
|---|---|---|---|
| includeExhausted | boolean | – | Include companies whose estimated cash is already exhausted (default: true) |
| industry | string | – | Filter by company industry (exact match, e.g. "Biotechnology", "Software") |
| limit | number | – | Maximum results to return (default: 25, max: 100) |
| market | string | – | Listing market: "otc" (OTC Markets) or "exchange" (NASDAQ / NYSE / NYSE American / Arca / Cboe) |
| 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 ~613
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. Answers questions like "all S-1 filings from biotech companies under $500M market cap" or "recent 8-K filings from Technology sector companies". Results are filings, not a company universe or a company count. Only the 500 largest matching companies by market cap are searched (narrower filters reach smaller ones). Filters for float, price, company type, foreign issuer, recent IPO, full-text queries and 8-K item codes are not available here. Coverage: Signal8's SEC EDGAR archive, updated through the day, in its held range (see `archiveFrom` in each response; currently from late 2021, expanding back to 2016 as the history backfill fills in). Before archiveFrom it holds only a scatter, so absence before archiveFrom is not evidence a filing was never filed; SEC EDGAR itself covers earlier periods. Record-only rows (bodyStored: false) have no stored body; the document is at its sec.gov URL.
| 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). Ties are broken by filing id, so a given page is stable and reproducible for a fixed corpus. |
| sortOrder | string | – | Sort direction (default: desc). Note that paging is offset-based over a corpus that is continuously ingesting new filings, so when walking many pages of a broad date range, newly-arrived filings can… |
| Name | Type | Req | Description |
|---|---|---|---|
| data | – | – | – |
No examples provided.
screen_sec_filings_performance Screen SEC Filings Performance ~401
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 (numbers in percent points: 4.35 = +4.35%; null = not measured), plus aggregate statistics (average, median, % negative, best, worst) across all matching filings. Company-level filters (sector, industry, market cap, exchange) combine with filing filters (form type, date range). Answers questions like "how did biotech stocks perform after S-1 filings?" or "what was the average 7-day return after 8-K filings from companies under $500M market cap?". These are past returns, not a forecast.
| 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 ~395
Search clinical trials market-wide (across companies), filtered by phase, indication, sponsor, status and date window, with sorting and pagination. An unrecognised phase, status, dateField or sort value is rejected with the allowed list (it is never silently ignored). A result's ticker is the company whose trial list the row was collected under, which may be the lead sponsor or only a collaborator; metadata.sponsor is the lead sponsor, so a row is that ticker's own trial only when metadata.sponsor is that company.
| Name | Type | Req | Description |
|---|---|---|---|
| dateField | string | – | Date column the from/to window applies to (default primary_completion_date) |
| from | string | – | Inclusive start: YYYY, YYYY-MM or YYYY-MM-DD |
| indication | string | – | Comma-separated condition names, exact match (case-sensitive), e.g. "Breast Cancer" |
| limit | number | – | Maximum results to return (1-100, default: 50) |
| offset | number | – | Offset for pagination (default: 0) |
| order | string | – | Sort direction |
| phase | string | – | Comma-separated phases, matching ANY of them. Allowed tokens: EARLY_PHASE1, PHASE1, PHASE2, PHASE3, PHASE4 (also accepted: "Phase 2", "2", "Early Phase 1"). Example: "PHASE2,PHASE3". A combined "Phas… |
| sort | string | – | Sort column (default primary_completion_date) |
| sponsor | string | – | Case-insensitive substring of the LEAD sponsor name (collaborators are not searched) |
| status | string | – | ONE ClinicalTrials.gov overall status |
| to | string | – | Inclusive end: YYYY, YYYY-MM or YYYY-MM-DD (a partial date covers its whole year/month) |
| Name | Type | Req | Description |
|---|---|---|---|
| data | – | – | – |
No examples provided.
search_companies Search Companies ~84
Search for companies by name or ticker symbol in the Signal8 database. Returns matching companies with their ticker, name, CIK, and exchange.
| 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 ~1,220
Full-text search across SEC filing content that returns the matching passage: one match per filing, with the exhibit it was found in (`exhibit_id`, `exhibit_type`) and a snippet with context. Query syntax: unquoted words all have to appear (any order, any distance); "quoted phrase" = exact wording; OR between alternatives (merger OR acquisition); -word or -"phrase" to exclude; w1 NEAR/10 w2 (also NEAR(10), or bare NEAR = within 10) = words close together; word* = prefix of 4+ letters (dilut* matches dilution, dilutive); $AAPL or a capitalised ticker scopes to that company; a form code (8-K, 10-Q, S-1), "item 5.02" / "8-K 1.05" and a bare year (2024) scope to that form / 8-K item / year. Quoted multi-word phrases match as phrases; the archive's reading of the query is in meta.understanding. Suited to locating specific clauses ("change of control", "anti-dilution", "right of first refusal") and to the excerpt of a known filing (accessionNumber or filingId). It has no filing-level paging, totals, date ranges, 8-K item, excluded-form or company filters. Filters: CIK, filing, accession number, form type, section (risk_factors, mdna, ex99 …; applied only when meta.sections confirms it, otherwise meta.unsupported says the whole filing was searched) and exhibitTypes (EX-10 …). Coverage: Signal8's SEC EDGAR archive, updated through the day, in its held range (see `archiveFrom` in each response; currently from late 2021, expanding back to 2016 as the history backfill fills in). Before archiveFrom it holds only a scatter, so absence before archiveFrom is not evidence a filing was never filed; SEC EDGAR itself covers earlier periods. Record-only rows (bodyStored: false) have no stored body; the document is at its sec.gov URL.
| 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 |
| exhibitTypes | string | – | Keeps only filings carrying any of these exhibit types (comma-separated): a family such as EX-10 (material contracts) matches every member (EX-10.1, EX-10.2…); an exact type such as EX-99.1 (usually… |
| facets | boolean | – | true = also return `facets` { forms, years, items }: [{ value, count }] over the whole match set. Absent when not measured (not zero). Default false. |
| 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) |
| match | string | – | Word matching. exact = a word matches only itself ("split" does not match "splits"), which is EDGAR full-text search's behaviour; stemmed = English word variations also match. Default when omitted: s… |
| matchedSections | boolean | – | Per-row `matchedSections` (default true): the sections the text matched in. Absent on a row means not measured (index without sections), not "matched nowhere". |
| pattern | string | yes | Search query (minimum 2 characters): "exact phrase", OR, -exclude, w1 NEAR/n w2, word*, $TICKER. A CIK/filing-scoped search whose text is not indexed yet falls back to a literal case-insensitive subs… |
| section | string | – | Restricts matching to sections (comma-separated): business, risk_factors, cybersecurity, legal_proceedings, mdna, market_risk, controls (10-K/10-Q/20-F narrative items, by meaning: mdna is 10-K Item… |
| snippetLength | number | – | Characters of context around each match (default: 200) |
| sort | string | – | Result order: newest (default) or relevance (best match first) |
| understand | boolean | – | Query understanding (default true): tickers/$TICKER, company names, form codes, "item N.NN" and synonym expansion, reported in meta.understanding. false = match the words literally. |
| Name | Type | Req | Description |
|---|---|---|---|
| data | – | – | – |
No examples provided.
search_institutions Search Institutions by Name ~136
Search institutional investors (13F filers) by name. Returns matching institutions with CIK, name, AUM, holdings count, and latest filing period. Matches part of a fund or investment manager 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_learn_guides Search Signal8 Academy Guides ~358
Free: works without an API key or Pro plan (the hosted server only needs a signed-in account). Searches the Signal8 Academy (signal8.ai/learn): plain-English guides that explain dilution (ATMs, warrants, convertibles, baby shelf, cash runway), how to read SEC filings (8-K items, Form 4 codes, 13D/13G, 424B5, S-1/S-3), market structure (halts, short interest, float, reverse splits, STOCK Act disclosures) and how Signal8 works. Returns matching guides with title, description, track, section, reading time, lastVerified date, the public url and the signal8:// resource uri, without bodies. Keyword match: every query word must appear somewhere in the guide; title hits rank highest. An empty query lists every guide (optionally one track) in reading order. An empty result means no guide matched the words given (fewer or broader words match more guides, e.g. "warrant" rather than "warrant inducement repricing"), not that the topic is unimportant.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Maximum guides to return (1-50, default 10). |
| query | string | – | Words to search for, e.g. "baby shelf", "form 4", "reverse split". Empty string lists every guide. |
| track | string | – | Optional. Restrict to one Academy track: "dilution" (dilution & toxic financing), "filings" (reading SEC filings), "market-structure" (halts, short interest, float, splits, congressional trading), or… |
| Name | Type | Req | Description |
|---|---|---|---|
| data | – | – | – |
No examples provided.
search_sec_filings Search SEC Filings ~2,506
Search and list SEC filings by company (CIK), form type, date range, 8-K item codes and excluded forms, optionally with a full-text query over filing bodies and by company facts (market cap, float, price, sector, industry, exchange, company type, foreign issuer, recent IPO). Rows carry `id` (the internal filingId used by the filing-document and exhibit tools), cik, company_name, accession_number, form_type, filing_date, acceptedAt, primaryDocument, bodyStored and itemNumbers (plus `rank` and `snippet` with `q`); `pagination` has `total`, `totalRelation` ("eq" exact; "gte" a lower bound cut at 10,000, when `totalEstimate` is "about N"), `hasMore` and `nextCursor`. The `ciks` filter matches the filing's own CIK: a Form 4 filed under the reporting owner's CIK is not returned for the issuer's CIK. Coverage: Signal8's SEC EDGAR archive, updated through the day, in its held range (see `archiveFrom` in each response; currently from late 2021, expanding back to 2016 as the history backfill fills in). Before archiveFrom it holds only a scatter, so absence before archiveFrom is not evidence a filing was never filed; SEC EDGAR itself covers earlier periods. Record-only rows (bodyStored: false) have no stored body; the document is at its sec.gov URL. Every response carries `archiveFrom` and `rangeStartsBeforeArchive`: a range with no dateFrom or starting before archiveFrom is not definitive (`searchIndex.complete: false`, `reason: "outside_held_range"`, `heldFrom`): an empty result then means the archive holds no match from archiveFrom onward, not that no such filing exists. An empty text result is definitive only when `searchIndex.complete` is true. Full-text `q`: Query syntax: unquoted words all have to appear (any order, any distance); "quoted phrase" = exact wording; OR between alternatives (merger OR acquisition); -word or -"phrase" to exclude; w1 NEAR/10 w2 (also NEAR(10), or bare NEAR = within 10) = words close together; word* = prefix of 4+ letters (dilut* matches dilu…
| Name | Type | Req | Description |
|---|---|---|---|
| ciks | string | – | Comma-separated CIK numbers to filter by (e.g., "320193,1018724"; zero-padded also accepted) |
| companyTypes | string | – | Company filter. Comma-separated: operating, fund (registered funds/ETFs; adds N-CSR, N-CEN, N-PX, 485BPOS, 497/497K to the default forms), spac (blank-check companies) |
| cursor | string | – | Opaque keyset cursor from a previous response's pagination.nextCursor. Stable for deep paging while new filings arrive (page is not). Required for page 2+ of a company-filtered search. |
| dateFrom | string | – | Start filing date (YYYY-MM-DD). The archive only holds filings from its `archiveFrom` date (stated in every response; currently late 2021, expanding back to 2016): omitting dateFrom, or starting earl… |
| dateTo | string | – | End filing date (YYYY-MM-DD) |
| exchanges | string | – | Company filter. Comma-separated listing venues: NASDAQ, NYSE, AMEX (= NYSE American), OTC |
| excludeForms | string | – | Comma-separated form types to exclude (e.g., "4,13F-HR"). Exact match. |
| exhibitTypes | string | – | Keeps only filings carrying any of these exhibit types (comma-separated): a family such as EX-10 (material contracts) matches every member (EX-10.1, EX-10.2…); an exact type such as EX-99.1 (usually… |
| facets | boolean | – | true = also return `facets`: { forms, years, items }, each a list of { value, count } over the whole result set (not just this page). Present only when the archive measured them (its OpenSearch engin… |
| foreignIssuer | boolean | – | Company filter. true = companies with foreign-issuer evidence (a 20-F, 40-F or 6-K seen, or an ADR listing); false = none seen since the evidence log began (companyFilter.foreignEvidenceSince) |
| formTypes | string | – | Comma-separated form types (e.g., "10-K,10-Q,8-K,S-1,S-3,424B5"). Exact match; amendments (e.g. "10-K/A") match only when listed. (With company filters, amendments are added automatically.) |
| industries | string | – | Company filter. Industry names separated by "|", exact and case-sensitive (e.g. "Biotechnology|Airlines, Airports & Air Services"; some names contain ", ", so "|" is the safe separator; a bare comma… |
| items | string | – | Comma-separated 8-K item codes, all required (e.g., "2.02,9.01" = results + financial statements; "5.02" = officer/director changes; "1.01" = material agreements; "3.01" = delisting notice). |
| match | string | – | Word matching for q. exact = a word matches only itself ("split" does not match "splits" or "splitting"), which is EDGAR full-text search's own behaviour; stemmed = English word variations also match… |
| matchedSections | boolean | – | Per-row `matchedSections` (default true): the sections the text matched in. Absent on a row means not measured (index without sections), not "matched nowhere". Ignored without q. |
| maxFloat | number | – | Company filter. Maximum public float, in shares |
| maxMarketCap | number | – | Company filter. Maximum market cap in USD, e.g. 300000000 for under $300M |
| maxPrice | number | – | Company filter. Maximum latest share price in USD |
| minFloat | number | – | Company filter. Minimum public float, in shares |
| minMarketCap | number | – | Company filter. Minimum market cap in USD (price × shares outstanding), e.g. 50000000 for $50M |
| minPrice | number | – | Company filter. Minimum latest share price in USD |
| page | number | – | Page number (1-indexed, default: 1). Ignored when cursor is set; not allowed with company filters. |
| pageSize | number | – | Results per page (default: 25, max: 100) |
| q | string | – | Full-text query over filing bodies. Query syntax: unquoted words all have to appear (any order, any distance); "quoted phrase" = exact wording; OR between alternatives (merger OR acquisition); -word… |
| recentIpo | boolean | – | Company filter. true = first listed within the last 365 days, with no evidence of earlier public status (renames and relistings are excluded). false is the same as omitting it. |
| section | string | – | Restricts matching to sections (comma-separated): business, risk_factors, cybersecurity, legal_proceedings, mdna, market_risk, controls (10-K/10-Q/20-F narrative items, by meaning: mdna is 10-K Item… |
| sectors | string | – | Company filter. Sector names separated by "|" (or a bare comma), exact and case-sensitive (e.g. "Healthcare|Technology"). An unknown name returns a 400 listing every valid sector. |
| sort | string | – | newest (by acceptance time, default) or relevance (requires q; best match first) |
| understand | boolean | – | Query understanding (default true): the archive recognises tickers/$TICKER, company names, form codes, "item N.NN" and expands synonyms, reporting what it applied in meta.understanding. false = searc… |
| Name | Type | Req | Description |
|---|---|---|---|
| data | – | – | – |
No examples provided.
How do I install the Signal8 MCP server?
Signal8 is a hosted endpoint at https://mcp.signal8.ai/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.
remote · mcp.signal8.ai
claude mcp add --transport http ai-signal8-mcp 'https://mcp.signal8.ai/mcp'
What is the Signal8 MCP server?
Signal8 is an MCP server listed in the public MCP registry as ai.signal8/mcp. SEC filings, dilution, insider & institutional ownership, and political-trade data for AI agents. This page covers its hosted endpoint (https://mcp.signal8.ai/mcp).
Is the Signal8 MCP server safe to use?
Signal8 scores 92 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 Signal8 MCP server expose?
Signal8 exposes 113 tools: search_companies, get_company_profile, get_quote, get_market_metrics, get_short_interest, and 108 more. Their descriptions and schemas cost roughly 37,618 tokens of context every time the server is loaded.
Does the Signal8 MCP server require authentication?
Yes. Signal8 asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.
Is the Signal8 MCP server still maintained?
Signal8 is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.
What did VerifyMCP test on the Signal8 MCP server?
VerifyMCP ran 13 checks on Signal8, covering TLS certificate, Authorization, HTTPS, HSTS header and 9 more. Supply Chain Security and Provenance & Transparency do not apply to a hosted endpoint, so they were not tested. The score does not measure everything, and the scoring documentation lists what it leaves out.