Finance Toolkit
500+ transparent financial methods calculated from raw statements, not third-party endpoints.
Description from the maker (original English)
SEC filings, dilution, insider & institutional ownership, and political-trade data for AI agents.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
SIGNAL8_API_KEY, AuthorizationValues marked secret are keys to your account. Never share them or paste them into a chat.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
This address needs a key in a request header, which the add-connector menu cannot set. Use Claude Code, Cursor or VS Code instead.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"signal8": {
"command": "npx",
"args": [
"-y",
"@signal8ai/mcp"
],
"env": {
"SIGNAL8_API_KEY": "your-value"
}
}
}
}Run this in your terminal
claude mcp add --transport http signal8 https://mcp.signal8.ai/mcp --header 'Authorization: your-value'claude mcp add signal8 --env SIGNAL8_API_KEY=your-value -- npx -y @signal8ai/mcpFill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"signal8": {
"url": "https://mcp.signal8.ai/mcp",
"headers": {
"Authorization": "your-value"
}
}
}
}Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"signal8": {
"command": "npx",
"args": [
"-y",
"@signal8ai/mcp"
],
"env": {
"SIGNAL8_API_KEY": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"signal8": {
"type": "http",
"url": "https://mcp.signal8.ai/mcp",
"headers": {
"Authorization": "your-value"
}
}
}
}Paste into .vscode/mcp.json in your project
{
"servers": {
"signal8": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@signal8ai/mcp"
],
"env": {
"SIGNAL8_API_KEY": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This address needs a key in a request header, which the add-connector menu cannot set. Use Claude Code, Cursor or VS Code instead.
Your choice stays on this device in a cookie; no account needed.
Authorization secret HTTP headerThese settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
We have not read this server’s tool list yet; we check endpoints in rotation.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 7, 2026
The registry name was verified against the domain signal8.ai (the registry checks domain ownership)
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
Not checked yet; we check endpoints in rotation
Not checked yet; we check endpoints in rotation
Not checked yet; we read the tool list when we check the endpoint
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
You need to fill in: SIGNAL8_API_KEY, Authorization
Either way works: install it on your computer or connect to the cloud version.
The GitHub repo last changed –, and the latest version (0.19.0) reached the registry 19 days ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. It connects by URL, so apps that accept remote MCP servers work too, such as ChatGPT in developer mode.
In the same category: Finance Toolkit, SolidInvoice, Korea Tax Calculator
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
500+ transparent financial methods calculated from raw statements, not third-party endpoints.
Create and send invoices and quotes, manage clients, and track payments in SolidInvoice.
Korean tax calculation and tax-audit judgment MCP: 96 tools with statutory citations.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
MCP (Model Context Protocol) server for Signal8 -- AI-extracted SEC filing intelligence data.
Gives AI agents like Claude, Cursor, and other MCP-compatible tools direct access to:
npm install -g @signal8ai/mcp
npx @signal8ai/mcp
API and MCP access are included with Signal8 Pro ($59/mo, or $588/yr). A free Signal8 account cannot create API keys. Upgrade at signal8.ai/pro, then create a key in the developer portal at signal8.ai/developer/api-keys.
Using Claude.ai or Claude Desktop? You can skip the key entirely: add the hosted server as a custom connector and sign in with your Signal8 account (see Hosted Endpoint).
Add to your Claude Desktop config file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": { "signal8": { "command": "npx", "args": ["-y", "@signal8ai/mcp"], "env": { "SIGNAL8_API_KEY": "sk_live_your_key_here" } } } }
Add to .cursor/mcp.json in your project root:
{
"mcpServers": { "signal8": { "command": "npx", "args": ["-y", "@signal8ai/mcp"], "env": { "SIGNAL8_API_KEY": "sk_live_your_key_here" } } } }
Set the SIGNAL8_API_KEY environment variable and run:
SIGNAL8_API_KEY=sk_live_your_key_here npx @signal8ai/mcp
The server exposes 104 live tools at runtime. The reference tables below are a representative catalog grouped by domain, not an exhaustive list; the Extractions section documents tools that are currently disabled and not registered live. The authoritative list is what tools/list returns.
| Tool | Description |
|---|---|
search_companies | Search companies by name or ticker |
get_company_profile | Full company profile (description, market cap, sector) |
get_company_bundle | Consolidated data bundle in one call |
| Tool | Description |
|---|---|
get_quote | Real-time stock quote (price, change, volume) |
get_market_metrics | Volume averages, volatility, SMAs, trend direction |
get_short_interest | Short interest data and days-to-cover |
get_float | Float composition, shares outstanding, ownership % |
get_financials | Income statement, balance sheet, cash flow |
get_earnings | Earnings history with EPS surprises |
get_executives | Executive team roster and compensation |
get_peers | Peer/comparable companies |
get_transcripts | Earnings call transcripts |
get_news | Latest company news headlines |
get_analyst_consensus | Analyst ratings and price targets |
get_material_events | Material corporate events (8-K filings) |
get_clinical_trials | Clinical trials matched to a company, each tagged sponsorRole (lead vs collaborator; only lead trials are its own pipeline) |
| Tool | Description |
|---|---|
get_quotes_batch | Batch real-time quotes for up to 200 tickers (POST) |
get_quotes_universe | Quotes for an entire index universe (sp500/ndx/dji) |
get_index_snapshot | Bulk ticker snapshots (price, day change, % change) |
get_sector_etf_snapshot | Snapshot of the 11 SPDR sector ETFs with sector labels |
get_top_movers | Top gainers / losers / most-active by volume (with optional session window) |
get_market_breadth | Advance/decline, % above SMA50/200, 52-week high/low counts |
| Tool | Description |
|---|---|
get_earnings_calendar | Upcoming/recent earnings releases between two dates |
get_economic_calendar | Macro/economic events (CPI, FOMC, jobs, GDP) by date and country |
get_filing_calendar | 10-K / 10-Q SEC filing-deadline calendar by universe |
get_lockup_expirations | Upcoming IPO/secondary lockup expirations |
get_recent_material_filings | Recent material 8-K filings by index universe and item codes |
Backed by Signal8's own archive of SEC EDGAR filings — the archive's held range (see archiveFrom in each response; currently from late 2021, expanding back to 2016 as the history backfill fills in), full-text indexed and updated through the day. Filings older than archiveFrom may be absent, so an empty result is not proof a filing was never made. Record-only rows (bodyStored: false) carry metadata but no body.
| Tool | Description |
|---|---|
search_sec_filings | Filings by CIK, form, date, 8-K items, excluded forms, full-text q (match exact/stemmed, sort newest/relevance, facets counts by form/year/8-K item, understand on/off, section search, exhibitTypes — see query syntax below), and company filters (market cap, float, price, sector, industry, exchange, company type, foreign issuer, recent IPO) |
get_filing_documents | Every document in a filing (type, size, stored, secUrl) with the filingId / exhibitId to read each one |
get_filing_structured | Parsed Form 3/4/5 transactions, 13F holdings (values normalised to dollars), XML SCHEDULE 13D/G |
get_filing_document | Full text of a filing by filing id |
get_filing_exhibits | Readable exhibits of a filing, with ids |
get_exhibit_content | Full text of one exhibit |
search_filing_text | Exhibit-level full-text search returning the matching passage (match exact/stemmed, sort, section, exhibitTypes) |
lookup_accession_number | Accession number → filing id and metadata |
screen_sec_filings | Filings across companies by sector / industry / exchange / market cap |
screen_sec_filings_performance | Price returns +1/+3/+7/+30 days after filings (numbers, percent points), with aggregates |
Full-text query syntax (search_sec_filings.q, search_filing_text.pattern): unquoted words must all appear; "quoted phrase" for exact wording; OR between alternatives; -word to exclude; w1 NEAR/10 w2 (or NEAR(10), bare NEAR = 10) for proximity; word* for a prefix of 4+ letters; $AAPL or a capitalised ticker scopes to that company; a form code (8-K), item 5.02 / 8-K 1.05 and a bare year scope to that form / 8-K item / year. Relevance page 1 shows a few filings per company; meta.diversity names who has more. How the archive read the query is returned in meta.understanding (pass understand: false to search the words literally). facets: true adds per-form / per-year / per-8-K-item counts over the whole result set — absent when not measured, never zero.
Section search + exhibit types (both search tools): section restricts matching to business, risk_factors, cybersecurity, legal_proceedings, mdna, market_risk, controls, ex99 (press releases) or an 8-K item (item_5_02); exhibitTypes keeps filings with e.g. EX-10 (material contracts) or EX-99.1. A section is applied only when meta.sections says so — otherwise meta.unsupported explains that the whole filing was searched. Rows may carry matchedSections (absent = not measured).
Company filters on search_sec_filings follow the same rules as the signal8.ai/sec-filings page: they are applied from the archive only, against the filer's own CIK, on issuer-filed forms only (Form 4, 144 and SCHEDULE 13D/G are dropped and reported in companyFilter.droppedForms). Companies with no measured value for a filter are excluded and counted in companyFilter.unknown. Unknown values return a 400 listing the valid names. If the archive cannot answer, the call fails with COMPANY_FILTER_NOT_APPLIED and a reason rather than returning unfiltered rows.
13F values: the SEC changed the unit of a 13F from thousands of dollars to whole dollars for filings on/after 2023-01-03. get_filing_structured returns valueUsd / totalMarketValueUsd normalised to dollars (null when the unit cannot be determined) next to the raw valueThousands, and valueUnit says which unit the raw number is in.
| Tool | Description |
|---|---|
get_extractions | AI-extracted SEC filing data (13 types) |
get_filing_extractions | Extractions for a specific SEC filing |
get_extraction_dashboard | Cross-company extraction analytics |
get_extraction_by_type | Filter extractions by type (warrants, convertibles, etc.) |
Small-cap dilution analysis read directly from SEC filings. Every figure carries the accession number, filing date and the quoted sentence it came from. Included in Signal8 Pro. Call get_dilution_coverage first: it is the cheapest way to learn whether there is anything to fetch.
| Tool | Description |
|---|---|
get_dilution_coverage | Whether a ticker has a dilution analysis, how fresh it is, and why not if it doesn't |
get_dilution_risk | Dilution Pressure Score with its seven-component breakdown and risk levels. A partial score is out of scoreMaxMeasured (never rescale to /100); overheadSupply is total potential dilution excluding shelf (gross warrants/convertibles + ATM/equity line/S-1 at the current price, details.overheadSupplyBasis); levels named in levelsLowerBoundScope are floors ("at least") when levelsAreLowerBound is true; details.levelBounds gives each level's floor, ceiling and best estimate (a level whose floor and ceiling agree is exact) |
get_dilution_snapshot | Potential new shares and % of shares outstanding, cash position and runway, float |
get_dilution_instruments | One instrument family's rows with per-field SEC citations (warrants, convertibles, preferred, shelfs, atms, elocs, s1_offerings, equity_plans, exchangeables, recent_offerings) |
| get_baby_shelf_capacity | S-3 I.B.6 baby shelf: how much the issuer can raise off it
Only the beginning is shown; read the rest in the repo