Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,071Paid calls: 1,541Letters: 14Defects: 1,323counted 3 min ago
teppi

Server definition

Hash
sha256:0aa97968f0c8ada0065fed28df9c9df14fea2cb3473a896090390f6d781f4e25
What it is
What a remote MCP server returned when asked what it offers: 8 tools

The blob, as servednamed by its sha256

{ "instructions": "Access S&P 500 market data from Quantustik: fear and greed, earnings calendars, SEC filings, insider and institutional activity. Quantustik publishes data only, no forecasts or recommendations. All outputs are for educational research only — not personalized financial advice. You do NOT need an API key — every tool is callable right now; anonymous requests share a per-IP hourly cap. Call get_started for quota details and list_capabilities to discover every tool and resource.", "tools": [ { "description": "Get the earnings calendar (next + last report) for one S&P 500 ticker.\n\n Earnings are a scheduled event. This tool surfaces the next-upcoming and\n last-reported earnings dates and the days until the next one.\n\n When no data is available (cold cache + no live source), `available` is\n false and `next`/`last` are null; treat that as \"unknown\", not \"no earnings\".\n\n Args:\n ticker: Stock ticker symbol (e.g. \"AAPL\", \"MSFT\", \"NVDA\"). Case-insensitive.\n\n Returns a dict with available, next, last, days_until_next, as_of and\n disclaimer embedded in the payload.\n ", "inputSchema": { "properties": { "ticker": { "title": "Ticker", "type": "string" } }, "required": [ "ticker" ], "title": "get_earnings_calendarArguments", "type": "object" }, "name": "get_earnings_calendar", "outputSchema": null }, { "description": "Get the latest Fear and Greed index value.\n\n Sourced from the CNN Fear and Greed model, cached and refreshed periodically.\n Values range 0 (Extreme Fear) to 100 (Extreme Greed).\n\n Returns a dict with value (0-100), label (e.g. \"fear\"), and timestamp, plus\n `current` ({score, rating, updated_at}), `history`, and the per-component\n `sub_indicator_scores`.\n ", "inputSchema": { "properties": {}, "title": "get_fear_greedArguments", "type": "object" }, "name": "get_fear_greed", "outputSchema": null }, { "description": "Get the \"Lazy Prices\" 10-K/10-Q language diff for one ticker.\n\n Compares the two most recent 10-K (year-over-year, default) or 10-Q\n (quarter-over-quarter) filings' Risk Factors (Item 1A) and MD&A\n (Item 7 for 10-K, Item 2 for 10-Q) sections, pre-chewed so you don't have\n to parse raw filing HTML yourself: a real TF-IDF cosine similarity score\n between the two extracted section texts, plus the top added/removed\n sentences from a real sentence-level diff, plus a one-line AI summary\n grounded strictly in those diffed sentences (`summary_source: \"llm\"`), or\n a factual sentence built purely from the computed similarity/counts when\n no LLM is available (`summary_source: \"computed\"`) — never fabricated\n either way. Every result links to BOTH source filings via\n `filings[].accession_url` — verify anything before acting.\n\n Cites a known academic finding: Cohen, Malloy & Nguyen (2020), \"Lazy\n Prices\", Journal of Finance — YoY changes in 10-K Risk Factors/MD&A\n language are historically return-predictive. This is a third-party\n academic result cited for context, NOT a claim or backtest result of\n this app.\n\n An empty `sections` dict is a valid, honest answer when the ticker has\n fewer than 2 filings of the requested form on file, or a section\n couldn't be reliably extracted from both filings (known gap: this\n extractor targets the common modern EDGAR HTML filing format used by\n large-cap names; older/non-standard filing formats may not extract).\n\n Read-only surfacing: this is information, not a recommendation.\n\n Args:\n ticker: Stock ticker (e.g. \"AAPL\"). Case-insensitive.\n form: \"10-K\" (year-over-year, default) or \"10-Q\" (quarter-over-quarter).\n\n Returns: ticker, form, filings (the two compared filings with\n accession_url), sections (keyed by \"risk_factors\"/\"mda\", each with\n similarity, added_sentences, removed_sentences, summary,\n summary_source), generated_at, disclaimer.\n ", "inputSchema": { "properties": { "form": { "default": "10-K", "title": "Form", "type": "string" }, "ticker": { "title": "Ticker", "type": "string" } }, "required": [ "ticker" ], "title": "get_filing_language_diffArguments", "type": "object" }, "name": "get_filing_language_diff", "outputSchema": null }, { "description": "Get SEC 8-K event digest — per-ticker detail or a site-wide recent feed.\n\n New EDGAR ingestion (unlike get_insider_pulse's Form 4 data, which was\n already ingested): polls 8-K filings and pre-chews each one so you don't\n have to parse raw filing HTML yourself. Event type comes from the\n filing's OWN structured SEC Item number(s) — GROUND TRUTH, never\n LLM-guessed (e.g. Item 5.02 = exec departure/appointment, Item 2.02 =\n earnings results, Item 2.01 = M&A completion, Item 4.02 = restatement).\n The `summary` field is a one-line AI narration grounded in the actual\n filed document text (`summary_source: \"llm\"`), or a factual sentence\n built purely from the Item label(s) when no document excerpt was\n available (`summary_source: \"item_labels\"`) — never fabricated content\n either way. Every filing links to its source SEC filing via\n `accession_url` — verify anything before acting.\n\n Two modes:\n - ticker set: per-ticker view — up to 15 most-recent 8-Ks over the\n trailing ~6 months.\n - ticker omitted: site-wide feed — up to 30 most-recent 8-Ks across\n the S&P 500 (top-100) universe in the trailing ~2 weeks. An empty\n `filings` list is a valid, honest answer on a quiet news day.\n\n Read-only surfacing: this is information, not a recommendation.\n\n Args:\n ticker: Optional. Stock ticker for the per-ticker view (e.g. \"AAPL\").\n Omit for the site-wide recent feed. Case-insensitive.\n\n Returns per-ticker: ticker, filings, generated_at, disclaimer.\n Feed: tickers_scanned, filings, generated_at, disclaimer.\n ", "inputSchema": { "properties": { "ticker": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Ticker" } }, "title": "get_filings_digestArguments", "type": "object" }, "name": "get_filings_digest", "outputSchema": null }, { "description": "Get SEC Form 4 insider-trading activity — per-ticker detail or S&P 500 screener.\n\n Surfaces already-ingested Form 4 filings (the same Form 4 feed behind the\n market model's `form4` stage) pre-chewed into analytical context so you\n don't have to parse raw XBRL yourself: buyer role (officer / director /\n 10% owner), transaction size vs that SAME insider's own historical buy\n pattern (`size_vs_own_median`, `is_unusually_large` when >=2x their own\n median), and cluster-buy detection (`is_cluster` — 3+ distinct insiders\n buying the same ticker within a 10-day window, historically the stronger\n signal vs a single insider's trade). Every transaction links to its\n source SEC filing via `accession_url` — verify anything before acting.\n\n Two modes:\n - ticker set: per-ticker view — up to 40 most-recent Form 4 transactions\n over the trailing year plus `cluster_buy_active`.\n - ticker omitted: S&P 500 (top-100) screener — tickers with a cluster\n buy or an unusually-large buy in the last 30 days. An empty\n `results` list is a valid, honest answer; most weeks most tickers\n show nothing notable.\n\n Read-only surfacing: this is information, not a recommendation.\n\n Args:\n ticker: Optional. Stock ticker for the per-ticker view (e.g. \"AAPL\").\n Omit for the S&P 500 screener. Case-insensitive.\n\n Returns per-ticker: ticker, transactions, cluster_buy_active, generated_at,\n disclaimer. Screener: tickers_scanned, results, generated_at, disclaimer.\n ", "inputSchema": { "properties": { "ticker": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Ticker" } }, "title": "get_insider_pulseArguments", "type": "object" }, "name": "get_insider_pulse", "outputSchema": null }, { "description": "Get 13F whale summaries + SC 13D/G activist alerts for one ticker.\n\n Final slice of the SEC EDGAR AI-digest layer. Two surfaces\n in one payload:\n\n `whale_summary` — QoQ (quarter-over-quarter) change in institutional\n ownership across a curated ~50-filer 13F universe (activist funds,\n quant shops, mega index managers, tiger cubs, sovereign wealth, etc.):\n new positions opened, positions closed, and the largest\n increases/decreases by dollar value between the two most recent 13F\n quarters on file. Pure computed deltas — no LLM narration, just real\n numbers. Institutional filer names come from SEC's own submissions data\n (ground truth), and every filer row links to its source 13F accession\n via `accession_url`. When there's genuinely nothing to compute (ticker\n not held by any tracked filer, or fewer than 2 quarters on file), the\n `narration` field says so plainly instead of a fabricated result.\n A filer only ever appears in `closed_positions` when there is an actual\n filing from that filer covering the latest quarter that omits this\n ticker's cusip; a filer simply absent from the latest snapshot with no\n filing on file for that quarter at all lands in `no_recent_filing`\n instead — never treated as a sale. Absence of a filing is not evidence\n of a sale.\n\n `activist_alerts` — recent Schedule 13D (activist/control intent) and\n 13G (passive >5% stake) filings. 13D entries carry a one-line AI summary\n grounded STRICTLY in the filing's own Item 4 (\"Purpose of Transaction\")\n text when it can be confidently extracted (`summary_source: \"llm\"`) —\n never an invented intent; otherwise a factual fallback sentence\n (`summary_source: \"item_label\"`). 13G entries get a structured, non-AI\n note (`summary_source: \"structured\"`) since 13G is reserved for passive\n filers with nothing to narrate beyond the threshold crossing. Every\n alert links to its source filing via `accession_url`.\n\n Read-only surfacing: this is information, not a recommendation.\n\n Args:\n ticker: Stock ticker (e.g. \"AAPL\"). Case-insensitive.\n\n Returns: ticker, whale_summary (cusip, quarters, new_positions,\n closed_positions, no_recent_filing, increased, decreased, narration),\n activist_alerts (list of filings with form, reporting_person, summary,\n summary_source, accession_url), generated_at, disclaimer.\n ", "inputSchema": { "properties": { "ticker": { "title": "Ticker", "type": "string" } }, "required": [ "ticker" ], "title": "get_institutional_activityArguments", "type": "object" }, "name": "get_institutional_activity", "outputSchema": null }, { "description": "Onboard to the Quantustik API/MCP: anonymous access and quotas.\n\n No API key is needed — every tool is callable right now under an\n anonymous per-IP hourly cap. Returns the live keyless/free-key request\n quotas (pulled live from server config) plus the optional key-issuance\n URL and auth header format. Pure informational — no auth required to\n call it.\n ", "inputSchema": { "properties": {}, "title": "get_startedArguments", "type": "object" }, "name": "get_started", "outputSchema": null }, { "description": "List all available Quantustik MCP tools and resources.\n\n Use this as the entry point when a user asks what can you do with\n Quantustik, or to discover the full surface area of the server.\n\n Returns a structured description of every tool and resource.\n ", "inputSchema": { "properties": {}, "title": "list_capabilitiesArguments", "type": "object" }, "name": "list_capabilities", "outputSchema": null } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:0aa97968f0c8ada0065fed28df9c9df14fea2cb3473a896090390f6d781f4e25 | sha256sum