Quantustik

io.github.quantustikPublished by GitHub account quantustikv2.2.0Updated Oct 25, 2026

S&P 500 market data: filings, earnings, insider, Congress and institutional trades. No forecasts.

VerifiedStreamable HTTPWeb executableFinanceData & Analytics

Overview

AI-generated overview

Quantustik gives an assistant read-only S&P 500 market data: Fear & Greed, earnings dates, SEC filings, insider, institutional and Congress trades.

What you can do
Retrieve market sentiment and event dates: CNN Fear & Greed index and next/last earnings dates per ticker. Summarize SEC filings: 8-K event digests, Form 4 insider activity, and year-over-year or quarter-over-quarter language changes in 10-K/10-Q risk factors and MD&A. Review ownership and political disclosures: 13F institutional changes, SC 13D/G activist filings and STOCK Act Congress trades. Discover the server's tools and current anonymous or keyed quotas.
When to use it
Useful when an assistant needs sourced, dated S&P 500 filings and trading-activity context for research, such as checking insider buying, activist stakes or what changed in a company's risk disclosures. It publishes measured data only, with no forecasts or recommendations.
Requirements
Either a remote streamable-HTTP endpoint or the npm package @quantustik/mcp-server, which is a thin stdio proxy for stdio-only clients and needs Node.js via npx. No account or key is required; anonymous use is capped per IP per hour. An optional free key can be supplied as QUANTUSTIK_API_KEY or an Authorization Bearer header to raise the quota. Network access to the hosted endpoint is required.
Before you install
All data is read-only; the server does not place trades or modify anything. Outputs are educational research only and not financial advice, and the server publishes no forecasts or recommendations. An optional API key is sent as a Bearer token to the hosted endpoint, so treat it as a secret. Anonymous requests are rate-limited per IP, and the stdio proxy forwards every tool call live to the remote service.

Installation

In SourceWeft

  1. Open Quantustik in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.quantustik%2Fmcp/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "quantustik": {
      "type": "http",
      "url": "https://quantustik.com/mcp"
    }
  }
}

README

Quantustik MCP server — S&P 500 market data

Quantustik is a market data service for the S&P 500 — prices, fundamentals, SEC filings, insider and Congress trades, macro indicators and market conditions — for investors and AI agents, through a dashboard, a REST API and an MCP server.

The hosted MCP server at https://quantustik.com/mcp (streamable-HTTP) needs no API key. It serves nine tools:

ToolWhat it returns
get_fear_greedCNN Fear & Greed index (0-100)
get_earnings_calendarNext and last earnings dates for a ticker
get_insider_pulseSEC Form 4 insider activity, per ticker or an S&P 500 screener
get_filings_digestSEC 8-K event digest, per ticker or a recent site-wide feed
get_filing_language_diffWhat changed in the prose between a ticker's two most recent 10-K or 10-Q filings
get_institutional_activity13F institutional ownership changes and SC 13D/G activist filings
get_congress_tradesSTOCK Act disclosures from the House Clerk and Senate eFD
list_capabilitiesDiscover all tools and resources
get_startedOnboarding: per-tier quotas and how a free API key raises them

Every value carries its source and as-of date. Quantustik publishes measured data only, with no predictions and no recommendations.

Educational research only — not financial advice. Nothing here is a recommendation to buy or sell any security.

Connect

Clients that support remote streamable-HTTP servers can point straight at https://quantustik.com/mcp. Clients that only support local stdio servers (Claude Desktop, Cursor, Windsurf and others) can use this package, described below. Anonymous use is allowed under a per-IP hourly quota; a free key from quantustik.com/developers raises it.

What this package is

A thin stdio proxy to Quantustik's hosted MCP server. It lets MCP clients that only support local stdio servers (Claude Desktop, Cursor, Windsurf, and others) reach the live, keyless, streamable-HTTP endpoint at https://quantustik.com/mcp.

This package does not implement an MCP server itself, run any model locally, or cache any data. It is a small wrapper around mcp-remote pointed at our hosted endpoint. Every tool call is forwarded live to quantustik.com and answered from the same data and quota system as the hosted endpoint.

If your MCP client supports remote streamable-HTTP servers directly, you don't need this package at all — just point it at https://quantustik.com/mcp. This wrapper exists only for stdio-only clients.

The full tool catalog lives at quantustik.com/developers.

Usage

Claude Desktop / Cursor / Windsurf

Add to your MCP client config (e.g. claude_desktop_config.json):

json
{  "mcpServers": {    "quantustik": {      "command": "npx",      "args": ["-y", "@quantustik/mcp-server"]    }  }}

Command line

bash
npx -y @quantustik/mcp-server

This starts a local stdio MCP server that proxies to https://quantustik.com/mcp. Anonymous use is allowed under a per-IP hourly quota; no setup required.

Optional: raise your quota with an API key

Get a free key at quantustik.com/developers, then set it as an environment variable:

json
{  "mcpServers": {    "quantustik": {      "command": "npx",      "args": ["-y", "@quantustik/mcp-server"],      "env": {        "QUANTUSTIK_API_KEY": "your-key-here"      }    }  }}

Environment variables

VariablePurposeDefault
QUANTUSTIK_API_KEYSent as Authorization: Bearer <key> to raise the anonymous per-IP hourly quota.none (anonymous)
QUANTUSTIK_MCP_URLOverride the remote endpoint (mainly for local development against a non-production instance).https://quantustik.com/mcp

Any additional CLI arguments you pass are forwarded to the underlying mcp-remote proxy (e.g. --debug).

How it works

npx @quantustik/mcp-server runs a small Node script (bin/quantustik-mcp.js) that spawns mcp-remote against https://quantustik.com/mcp using the http-only transport (our endpoint is streamable-HTTP, not SSE). mcp-remote speaks stdio to your MCP client on one side and streamable-HTTP to our server on the other — this package just pins the URL, transport, and optional auth header so you don't have to remember them.

Source

Server implementation (Python, FastMCP): the hosted endpoint's source lives in mcplafed/autoevolve (app/mcp_server.py, server.json). This wrapper repo only contains the thin npm client shown above.

Disclaimer

Market data returned by the Quantustik MCP server is for educational and research purposes only and does not constitute personalized financial advice. Always consult a qualified financial professional before making investment decisions.

License

MIT — see LICENSE.

Source: README.md at commit dbddaee

Tools

8

get_fear_greed

Get the latest Fear and Greed index value. Sourced from the CNN Fear and Greed model, cached and refreshed periodically. Values range 0 (Extreme Fear) to 100 (Extreme Greed). Returns a dict with value (0-100), label (e.g. "fear"), and timestamp, plus `current` ({score, rating, updated_at}), `history`, and the per-component `sub_indicator_scores`.

Takes no parameters.

get_earnings_calendar

Get the earnings calendar (next + last report) for one S&P 500 ticker. Earnings are a scheduled event. This tool surfaces the next-upcoming and last-reported earnings dates and the days until the next one. When no data is available (cold cache + no live source), `available` is false and `next`/`last` are null; treat that as "unknown", not "no earnings". Args: ticker: Stock ticker symbol (e.g. "AAPL", "MSFT", "NVDA"). Case-insensitive. Returns a dict with available, next, last, days_until_next, as_of and disclaimer embedded in the payload.

Parameterstickerrequired

get_insider_pulse

Get SEC Form 4 insider-trading activity — per-ticker detail or S&P 500 screener. Surfaces already-ingested Form 4 filings (the same Form 4 feed behind the market model's `form4` stage) pre-chewed into analytical context so you don't have to parse raw XBRL yourself: buyer role (officer / director / 10% owner), transaction size vs that SAME insider's own historical buy pattern (`size_vs_own_median`, `is_unusually_large` when >=2x their own median), and cluster-buy detection (`is_cluster` — 3+ distinct insiders buying the same ticker within a 10-day window, historically the stronger signal vs a single insider's trade). Every transaction links to its source SEC filing via `accession_url` — verify anything before acting. Two modes: - ticker set: per-ticker view — up to 40 most-recent Form 4 transactions over the trailing year plus `cluster_buy_active`. - ticker omitted: S&P 500 (top-100) screener — tickers with a cluster buy or an unusually-large buy in the last 30 days. An empty `results` list is a valid, honest answer; most weeks most tickers show nothing notable. Read-only surfacing: this is information, not a recommendation. Args: ticker: Optional. Stock ticker for the per-ticker view (e.g. "AAPL"). Omit for the S&P 500 screener. Case-insensitive. Returns per-ticker: ticker, transactions, cluster_buy_active, generated_at, disclaimer. Screener: tickers_scanned, results, generated_at, disclaimer.

Parametersticker

get_filings_digest

Get SEC 8-K event digest — per-ticker detail or a site-wide recent feed. New EDGAR ingestion (unlike get_insider_pulse's Form 4 data, which was already ingested): polls 8-K filings and pre-chews each one so you don't have to parse raw filing HTML yourself. Event type comes from the filing's OWN structured SEC Item number(s) — GROUND TRUTH, never LLM-guessed (e.g. Item 5.02 = exec departure/appointment, Item 2.02 = earnings results, Item 2.01 = M&A completion, Item 4.02 = restatement). The `summary` field is a one-line AI narration grounded in the actual filed document text (`summary_source: "llm"`), or a factual sentence built purely from the Item label(s) when no document excerpt was available (`summary_source: "item_labels"`) — never fabricated content either way. Every filing links to its source SEC filing via `accession_url` — verify anything before acting. Two modes: - ticker set: per-ticker view — up to 15 most-recent 8-Ks over the trailing ~6 months. - ticker omitted: site-wide feed — up to 30 most-recent 8-Ks across the S&P 500 (top-100) universe in the trailing ~2 weeks. An empty `filings` list is a valid, honest answer on a quiet news day. Read-only surfacing: this is information, not a recommendation. Args: ticker: Optional. Stock ticker for the per-ticker view (e.g. "AAPL"). Omit for the site-wide recent feed. Case-insensitive. Returns per-ticker: ticker, filings, generated_at, disclaimer. Feed: tickers_scanned, filings, generated_at, disclaimer.

Parametersticker

get_filing_language_diff

Get the "Lazy Prices" 10-K/10-Q language diff for one ticker. Compares the two most recent 10-K (year-over-year, default) or 10-Q (quarter-over-quarter) filings' Risk Factors (Item 1A) and MD&A (Item 7 for 10-K, Item 2 for 10-Q) sections, pre-chewed so you don't have to parse raw filing HTML yourself: a real TF-IDF cosine similarity score between the two extracted section texts, plus the top added/removed sentences from a real sentence-level diff, plus a one-line AI summary grounded strictly in those diffed sentences (`summary_source: "llm"`), or a factual sentence built purely from the computed similarity/counts when no LLM is available (`summary_source: "computed"`) — never fabricated either way. Every result links to BOTH source filings via `filings[].accession_url` — verify anything before acting. Cites a known academic finding: Cohen, Malloy & Nguyen (2020), "Lazy Prices", Journal of Finance — YoY changes in 10-K Risk Factors/MD&A language are historically return-predictive. This is a third-party academic result cited for context, NOT a claim or backtest result of this app. An empty `sections` dict is a valid, honest answer when the ticker has fewer than 2 filings of the requested form on file, or a section couldn't be reliably extracted from both filings (known gap: this extractor targets the common modern EDGAR HTML filing format used by large-cap names; older/non-standard filing formats may not extract). Read-only surfacing: this is information, not a recommendation. Args: ticker: Stock ticker (e.g. "AAPL"). Case-insensitive. form: "10-K" (year-over-year, default) or "10-Q" (quarter-over-quarter). Returns: ticker, form, filings (the two compared filings with accession_url), sections (keyed by "risk_factors"/"mda", each with similarity, added_sentences, removed_sentences, summary, summary_source), generated_at, disclaimer.

Parametersformtickerrequired

get_institutional_activity

Get 13F whale summaries + SC 13D/G activist alerts for one ticker. Final slice of the SEC EDGAR AI-digest layer. Two surfaces in one payload: `whale_summary` — QoQ (quarter-over-quarter) change in institutional ownership across a curated ~50-filer 13F universe (activist funds, quant shops, mega index managers, tiger cubs, sovereign wealth, etc.): new positions opened, positions closed, and the largest increases/decreases by dollar value between the two most recent 13F quarters on file. Pure computed deltas — no LLM narration, just real numbers. Institutional filer names come from SEC's own submissions data (ground truth), and every filer row links to its source 13F accession via `accession_url`. When there's genuinely nothing to compute (ticker not held by any tracked filer, or fewer than 2 quarters on file), the `narration` field says so plainly instead of a fabricated result. A filer only ever appears in `closed_positions` when there is an actual filing from that filer covering the latest quarter that omits this ticker's cusip; a filer simply absent from the latest snapshot with no filing on file for that quarter at all lands in `no_recent_filing` instead — never treated as a sale. Absence of a filing is not evidence of a sale. `activist_alerts` — recent Schedule 13D (activist/control intent) and 13G (passive >5% stake) filings. 13D entries carry a one-line AI summary grounded STRICTLY in the filing's own Item 4 ("Purpose of Transaction") text when it can be confidently extracted (`summary_source: "llm"`) — never an invented intent; otherwise a factual fallback sentence (`summary_source: "item_label"`). 13G entries get a structured, non-AI note (`summary_source: "structured"`) since 13G is reserved for passive filers with nothing to narrate beyond the threshold crossing. Every alert links to its source filing via `accession_url`. Read-only surfac

Parameterstickerrequired

list_capabilities

List all available Quantustik MCP tools and resources. Use this as the entry point when a user asks what can you do with Quantustik, or to discover the full surface area of the server. Returns a structured description of every tool and resource.

Takes no parameters.

get_started

Onboard to the Quantustik API/MCP: anonymous access and quotas. No API key is needed — every tool is callable right now under an anonymous per-IP hourly cap. Returns the live keyless/free-key request quotas (pulled live from server config) plus the optional key-issuance URL and auth header format. Pure informational — no auth required to call it.

Takes no parameters.

Version history

2
  1. v2.2.0LatestOct 25, 2026
  2. v2.0.4Sep 16, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts