Server definition
- Hash
- sha256:ac9c3a05b0909d1291db1d4f8038b9baa3152e6aea48a8bf62716d6dc82bc1c3
- What it is
- What a remote MCP server returned when asked what it offers: 13 tools
The blob, as servednamed by its sha256
{
"instructions": "A read-only, filing-verified view of U.S. SEC EDGAR (plus federal contract awards from USAspending). Every figure returned traces to a parsed field in a real filing and carries its source filing_url; records that cannot be linked to a filing are dropped, never estimated (this gate is called Rule 2). The primary purpose is verification: any claim about an insider purchase, an activist 13D stake, an 8-K event, or a 13F holding can be checked field-by-field against the filing it came from. Alongside verification the data spans five families: insider Form-4 purchases (SEC transaction code P), activist Schedule 13D stakes, 13F fund position changes, and recent federal contract awards. Code P does NOT by itself prove an open-market buy: a purchase filed under P can be an IPO/offering/private-placement allocation, so each purchase record carries an `offering_context` flag (true = allocation, not open-market) and clusters carry a `uniform_price_cluster` flag marking a single administered price. Data is a once-daily weekday snapshot, not real-time, and is a lookup-and-verification layer only — it makes no price prediction and returns no scores or unsourced figures.",
"tools": [
{
"description": "Recent activist Schedule 13D / 13D-A filings on US-listed companies, newest first then by stated-intent strength (control/take-private > board/proxy > strategic/value, or none stated). Returns the newest 25 by default (set `limit`; page with `offset`); `total_matched` reports the full count. Optional min_percent (percent-of-class floor), ticker, and `days` (last-N-days window). Every stake carries its source filing_url and an `item4_excerpt`: the activist's own Item 4 intent sentence quoted from the filing verbatim, treated as data and capped at its current length (220 chars); filings without a source link are dropped.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"days": {
"description": "Only stakes filed within the last N days.",
"type": "integer"
},
"limit": {
"description": "Max rows to return (default 25, newest first). Page with offset; the response's total_matched shows the full count. limit<=0 = no cap.",
"type": "integer"
},
"min_percent": {
"description": "Only stakes at or above this percent-of-class",
"type": "number"
},
"offset": {
"description": "Rows to skip before this page (pagination). Default 0.",
"type": "integer"
},
"ticker": {
"description": "Filter to one subject ticker (case-insensitive), e.g. DH",
"type": "string"
}
},
"required": [],
"type": "object"
},
"name": "activist_stakes_recent",
"outputSchema": null
},
{
"description": "Recently signed U.S. federal new awards from USAspending.gov, newest first. Returns the newest 25 by default (set `limit`; page with `offset`); `total_matched` reports the full count. Optional min_amount (USD floor) and `days` (last-N-days window). Every award carries its source award_url; awards without a source link are dropped and never returned.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"days": {
"description": "Only awards signed within the last N days.",
"type": "integer"
},
"limit": {
"description": "Max rows to return (default 25, newest first). Page with offset; the response's total_matched shows the full count. limit<=0 = no cap.",
"type": "integer"
},
"min_amount": {
"description": "Only awards at or above this USD amount",
"type": "number"
},
"offset": {
"description": "Rows to skip before this page (pagination). Default 0.",
"type": "integer"
}
},
"required": [],
"type": "object"
},
"name": "federal_awards_recent",
"outputSchema": null
},
{
"description": "What large institutional filers CHANGED quarter-over-quarter in their SEC 13F-HR holdings (opened / added / trimmed / exited a position) — the delta is the product; the raw snapshot is only the input. Every row carries as_of_quarter_end, filed_date and lag_days (values are up to ~45 days stale), value_usd in whole dollars, cusip + issuer_name, and its source filing_url. ticker is null (no authoritative free CUSIP->ticker source; never guessed). A missing prior quarter is the explicit state 'first_filing_on_record', not 'everything new'. Covers LONG US 13(f)-listed positions only — no shorts, non-US, or options. UNIVERSE: the fifty largest 13F filers by reported value as of the latest quarter, re-ranked quarterly. Because it is ranked BY REPORTED VALUE, the head is the biggest asset managers (BlackRock, Vanguard, State Street, Fidelity, ...) whose quarter-over-quarter changes largely reflect index rebalancing, not conviction; the feed reports WHAT WAS FILED, not what it means, and does not tag any manager active or passive (that would be inference). Coverage is PER SEC CIK, not per brand: a firm filing under several CIKs appears as several entries, and when a filer's 13F moves to a new CIK, historical coverage stays attached to the CIK that filed it. This is a convenience/completeness view of public data, NOT a trading edge. Returns the newest 25 by default (set `limit`; page with `offset`); `total_matched` reports the full count. Optional filer, change_type, min_value_usd, and `days` (last-N-days window).",
"inputSchema": {
"additionalProperties": false,
"properties": {
"change_type": {
"description": "Only this kind of quarter-over-quarter change",
"enum": [
"new_position",
"added",
"trimmed",
"exited",
"no_prior_quarter"
],
"type": "string"
},
"days": {
"description": "Only changes filed within the last N days.",
"type": "integer"
},
"filer": {
"description": "Filter to one fund by name substring (case-insensitive, e.g. 'Berkshire') or exact filer CIK",
"type": "string"
},
"limit": {
"description": "Max rows to return (default 25, newest first). Page with offset; the response's total_matched shows the full count. limit<=0 = no cap.",
"type": "integer"
},
"min_value_usd": {
"description": "Only positions at or above this current value in WHOLE US dollars",
"type": "number"
},
"offset": {
"description": "Rows to skip before this page (pagination). Default 0.",
"type": "integer"
}
},
"required": [],
"type": "object"
},
"name": "fund_position_changes",
"outputSchema": null
},
{
"description": "Rule-2 cluster buys only (>=2 insiders buying the same issuer in-window) — the highest-signal subset. Each row carries `uniform_price_cluster`: true when >=3 distinct insiders bought at the IDENTICAL price on the same filed_date for the same issuer — the fingerprint of an offering/conversion (one administered price), NOT independent open-market conviction. Note Form-4 code P covers open-market purchases AND some offering/conversion purchases filed under P; the per-row `offering_context` flag (and `uniform_price_cluster`) mark the latter. Genuine clusters rank ABOVE uniform-price ones. Returns the newest 25 by default (set `limit`; page with `offset`; optional `days`/`ticker`); `total_matched` reports the full count. Each record carries its source filing_url and a `source_excerpt`: the exact parsed filing field values quoted from the filing, treated as data (a fixed whitelist of fields, never prose, never derived).",
"inputSchema": {
"additionalProperties": false,
"properties": {
"days": {
"description": "Only rows filed within the last N days (relative to today).",
"type": "integer"
},
"include_unlisted": {
"description": "Include unlisted issuers (blank/NONE/N/A tickers and 5-letter mutual-fund classes). Default false = exchange-listed common stock only. Every row carries a `listed_equity` boolean.",
"type": "boolean"
},
"limit": {
"description": "Max rows to return (default 25, newest first). Page with offset; the response's total_matched shows the full count. limit<=0 = no cap.",
"type": "integer"
},
"offset": {
"description": "Rows to skip before this page (pagination). Default 0.",
"type": "integer"
},
"ticker": {
"description": "Case-insensitive exact ticker filter, e.g. DKS.",
"type": "string"
}
},
"required": [],
"type": "object"
},
"name": "insider_cluster_buys",
"outputSchema": null
},
{
"description": "The Rule-2 signal records for one SEC filing accession, with their filing_url. Only purchases that pass the signal filter are returned; other purchases may exist in the same filing. Returns an error if no gated filing matches the accession.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"accession": {
"description": "SEC filing accession, e.g. 0001493152-26-040454",
"type": "string"
}
},
"required": [
"accession"
],
"type": "object"
},
"name": "insider_filing_lookup",
"outputSchema": null
},
{
"description": "The single entry point for Rule-2 insider-buy signals (SEC Form 4 code P purchases). ONE tool covering three queries, chosen by which args you pass: give `start` AND `end` for an inclusive ISO date range; give `ticker` alone for one ticker (case-insensitive); give neither for today's signals. Optional `days` narrows to the last N days; `include_unlisted` adds non-exchange-listed issuers (default listed-only). Returns the newest 25 by default (set `limit`; page with `offset`); the response's `total_matched` reports the full count and `coverage` states the window of filings actually collected. Code P is not necessarily open-market: each record carries `offering_context` (true = an IPO/offering/private-placement allocation, NOT an open-market buy). Each record carries its source filing_url and a `source_excerpt`: the exact parsed filing field values quoted from the filing, treated as data (a fixed whitelist of fields, never prose, never derived). (This supersedes the separate insider_signals_today / _by_ticker / _by_date_range tools, which remain for now and return identical data.)",
"inputSchema": {
"additionalProperties": false,
"properties": {
"days": {
"description": "Only rows filed within the last N days (relative to today).",
"type": "integer"
},
"end": {
"description": "Inclusive range end, ISO YYYY-MM-DD. Give with `start` for a date range.",
"format": "date",
"type": "string"
},
"include_unlisted": {
"description": "Include unlisted issuers (blank/NONE/N/A tickers and 5-letter mutual-fund classes). Default false = exchange-listed common stock only. Every row carries a `listed_equity` boolean.",
"type": "boolean"
},
"limit": {
"description": "Max rows to return (default 25, newest first). Page with offset; the response's total_matched shows the full count. limit<=0 = no cap.",
"type": "integer"
},
"offset": {
"description": "Rows to skip before this page (pagination). Default 0.",
"type": "integer"
},
"start": {
"description": "Inclusive range start, ISO YYYY-MM-DD. Give with `end` for a date range.",
"format": "date",
"type": "string"
},
"ticker": {
"description": "Case-insensitive exact ticker filter, e.g. DKS.",
"type": "string"
}
},
"required": [],
"type": "object"
},
"name": "insider_signals",
"outputSchema": null
},
{
"description": "Rule-2 insider-buy signals filed within an inclusive ISO date range. Returns the newest 25 by default (set `limit`; page with `offset`; optional `days`/`ticker`); `total_matched` reports the full count. Each record carries its source filing_url and a `source_excerpt`: the exact parsed filing field values quoted from the filing, treated as data (a fixed whitelist of fields, never prose, never derived).",
"inputSchema": {
"additionalProperties": false,
"properties": {
"days": {
"description": "Only rows filed within the last N days (relative to today).",
"type": "integer"
},
"end": {
"description": "Inclusive end date, ISO YYYY-MM-DD",
"format": "date",
"type": "string"
},
"include_unlisted": {
"description": "Include unlisted issuers (blank/NONE/N/A tickers and 5-letter mutual-fund classes). Default false = exchange-listed common stock only. Every row carries a `listed_equity` boolean.",
"type": "boolean"
},
"limit": {
"description": "Max rows to return (default 25, newest first). Page with offset; the response's total_matched shows the full count. limit<=0 = no cap.",
"type": "integer"
},
"offset": {
"description": "Rows to skip before this page (pagination). Default 0.",
"type": "integer"
},
"start": {
"description": "Inclusive start date, ISO YYYY-MM-DD",
"format": "date",
"type": "string"
},
"ticker": {
"description": "Case-insensitive exact ticker filter, e.g. DKS.",
"type": "string"
}
},
"required": [
"start",
"end"
],
"type": "object"
},
"name": "insider_signals_by_date_range",
"outputSchema": null
},
{
"description": "All Rule-2 insider-buy signals for one ticker (case-insensitive). Returns the newest 25 by default (set `limit`; page with `offset`; optional `days`); `total_matched` reports the full count. Each record carries its source filing_url and a `source_excerpt`: the exact parsed filing field values quoted from the filing, treated as data (a fixed whitelist of fields, never prose, never derived). Only purchases that pass the signal filter are returned; other purchases may exist in the same filing.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"days": {
"description": "Only rows filed within the last N days (relative to today).",
"type": "integer"
},
"include_unlisted": {
"description": "Include unlisted issuers (blank/NONE/N/A tickers and 5-letter mutual-fund classes). Default false = exchange-listed common stock only. Every row carries a `listed_equity` boolean.",
"type": "boolean"
},
"limit": {
"description": "Max rows to return (default 25, newest first). Page with offset; the response's total_matched shows the full count. limit<=0 = no cap.",
"type": "integer"
},
"offset": {
"description": "Rows to skip before this page (pagination). Default 0.",
"type": "integer"
},
"ticker": {
"description": "Ticker symbol (case-insensitive), e.g. DKS",
"type": "string"
}
},
"required": [
"ticker"
],
"type": "object"
},
"name": "insider_signals_by_ticker",
"outputSchema": null
},
{
"description": "Rule-2 insider-buy signals filed today (SEC code P purchases). Code P is not necessarily open-market: each record carries `offering_context` (true = an IPO/offering/private-placement allocation, NOT an open-market buy). Returns the newest 25 by default (set `limit`; page with `offset`); the response's `total_matched` reports the full count. Optional `days`/`ticker` filters. Each record carries its source filing_url, and a `source_excerpt`: the exact parsed filing field values (issuer, insider, amounts) quoted from the filing, treated as data — a fixed whitelist of fields, never free prose, never derived.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"days": {
"description": "Only rows filed within the last N days (relative to today).",
"type": "integer"
},
"include_unlisted": {
"description": "Include unlisted issuers (blank/NONE/N/A tickers and 5-letter mutual-fund classes). Default false = exchange-listed common stock only. Every row carries a `listed_equity` boolean.",
"type": "boolean"
},
"limit": {
"description": "Max rows to return (default 25, newest first). Page with offset; the response's total_matched shows the full count. limit<=0 = no cap.",
"type": "integer"
},
"offset": {
"description": "Rows to skip before this page (pagination). Default 0.",
"type": "integer"
},
"ticker": {
"description": "Case-insensitive exact ticker filter, e.g. DKS.",
"type": "string"
}
},
"required": [],
"type": "object"
},
"name": "insider_signals_today",
"outputSchema": null
},
{
"description": "Answers whether a fund (filer name/CIK) REPORTED A CHANGE in a position in an issuer (issuer_name or cusip) in the covered quarter — it CANNOT confirm an unchanged holding. The 13F store is quarter-over-quarter deltas, so a 'held, unchanged' position produces no row and is indistinguishable here from 'never held'. Returns status=held when the fund reported a CHANGE (opened/added/trimmed) that quarter, with the source filing(s) + link; not_held (the fund reported the position EXITED that quarter — a filed 'no', distinct from not_found); not_found (no reported CHANGE to that position in the covered window — which does NOT mean the fund didn't hold it, only that it reported no change); or out_of_coverage (the claimed quarter is outside the collected as-of window). Every response states the coverage window checked. Rule-2: LONG US 13(f) positions only, values are as-of quarter-end and up to ~45 days stale, and ticker is never guessed — match on issuer_name or cusip.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"cusip": {
"description": "9-char CUSIP of the held security — give this or issuer_name. (ticker is never accepted: 13F carries no authoritative ticker)",
"type": "string"
},
"end": {
"description": "Quarter-window end (ISO) if the claim spans quarters",
"format": "date",
"type": "string"
},
"filer": {
"description": "Fund/institution name substring (case-insensitive, e.g. 'Berkshire') or exact filer CIK — REQUIRED",
"type": "string"
},
"issuer_name": {
"description": "Held company/issuer name (e.g. 'Apple') — give this or cusip",
"type": "string"
},
"quarter": {
"description": "As-of quarter-end the claim is about, ISO YYYY-MM-DD (e.g. '2026-06-30')",
"format": "date",
"type": "string"
},
"start": {
"description": "Quarter-window start (ISO) if the claim spans quarters",
"format": "date",
"type": "string"
}
},
"required": [],
"type": "object"
},
"name": "verify_13f_change",
"outputSchema": null
},
{
"description": "Check a claim that a registrant (cik/company/accession) filed an 8-K carrying specific SEC item code(s) in a timeframe, against the filed record. Returns status=confirmed with the source filing(s) + link; not_found; partial (same registrant/filing but the claimed item(s) aren't carried, or the date differs — itemised claimed-vs-filed); out_of_scope (claims about the body's meaning/materiality aren't covered — the filing is never paraphrased); or out_of_coverage. Every response states the coverage window checked. Rule-2: item codes are the SEC controlled vocabulary parsed from the filing — never inferred from prose.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"accession": {
"description": "SEC filing accession, e.g. 0001193125-26-389400",
"type": "string"
},
"cik": {
"description": "Registrant CIK (leading zeros ignored), e.g. 320193",
"type": "string"
},
"company_name": {
"description": "Registrant name substring (case-insensitive), e.g. 'Apple'",
"type": "string"
},
"date": {
"description": "Claimed filing date, ISO YYYY-MM-DD (matched ±3 filing days)",
"format": "date",
"type": "string"
},
"end": {
"description": "Window end (ISO) if the claim is a range",
"format": "date",
"type": "string"
},
"items": {
"description": "Claimed SEC 8-K item code(s), comma-separated (e.g. '5.02' or '1.01,9.01') — checked against the filing",
"type": "string"
},
"start": {
"description": "Window start (ISO) if the claim is a range",
"format": "date",
"type": "string"
}
},
"required": [],
"type": "object"
},
"name": "verify_8k_event",
"outputSchema": null
},
{
"description": "Check a claim about an activist stake (ticker/subject, filer, percent-of-class, stated intent, timeframe) against the filed Schedule 13D/13D-A record. Returns status=confirmed with the source filing(s) + link; not_found; partial (same filer/subject but percent/intent/date differs, itemised claimed-vs-filed); out_of_scope (passive 13G isn't covered); or out_of_coverage (outside the collected window). Every response states the coverage window checked. Rule-2: no estimates — absence is reported as absence, never guessed.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"date": {
"description": "Claimed filed date, ISO YYYY-MM-DD (matched ±3 filing days)",
"format": "date",
"type": "string"
},
"end": {
"description": "Window end (ISO) if the claim is a range",
"format": "date",
"type": "string"
},
"filer_name": {
"description": "Activist filer name in any order, e.g. 'Elliott Management'",
"type": "string"
},
"form_type": {
"description": "Optional; only activist 13D/13D-A is covered — a passive 13G returns out_of_scope",
"type": "string"
},
"intent": {
"description": "Optional pre-registered intent: I1 control/take-private, I2 board/proxy, I3 strategic/value",
"enum": [
"I1",
"I2",
"I3"
],
"type": "string"
},
"percent_of_class": {
"description": "Claimed percent-of-class owned (matched ±0.5 percentage points)",
"type": "number"
},
"start": {
"description": "Window start (ISO) if the claim is a range",
"format": "date",
"type": "string"
},
"subject_name": {
"description": "Subject/target company name (use if you don't have the ticker)",
"type": "string"
},
"ticker": {
"description": "Subject-company ticker (case-insensitive), e.g. DH",
"type": "string"
}
},
"required": [],
"type": "object"
},
"name": "verify_activist_13d",
"outputSchema": null
},
{
"description": "Check a claim about an insider open-market buy (ticker/issuer, person, amount, timeframe) against the filed record. Returns status=confirmed with the source filing(s) + link; not_found; partial (same insider/company but value/date differs, itemised claimed-vs-filed); out_of_scope (sales/options/grants aren't covered); or out_of_coverage (outside the collected window). Every response states the coverage window checked. Rule-2: no estimates, no unlabelled partial matches — absence is reported as absence, never guessed.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"amount_usd": {
"description": "Claimed purchase value in USD (matched ±5% or ±$1)",
"type": "number"
},
"date": {
"description": "Claimed date, ISO YYYY-MM-DD (matched ±3 filing days)",
"format": "date",
"type": "string"
},
"end": {
"description": "Window end (ISO) if the claim is a range",
"format": "date",
"type": "string"
},
"issuer_name": {
"description": "Issuer/company name (use if you don't have the ticker)",
"type": "string"
},
"person": {
"description": "Insider name in any order, e.g. 'Alfonso de Angoitia'",
"type": "string"
},
"shares": {
"description": "Claimed share count",
"type": "number"
},
"start": {
"description": "Window start (ISO) if the claim is a range",
"format": "date",
"type": "string"
},
"ticker": {
"description": "Issuer ticker (case-insensitive), e.g. CAVA",
"type": "string"
},
"txn_type": {
"description": "Optional; only open-market buys are covered — sale/option/grant returns out_of_scope",
"type": "string"
}
},
"required": [],
"type": "object"
},
"name": "verify_insider_purchase",
"outputSchema": null
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:ac9c3a05b0909d1291db1d4f8038b9baa3152e6aea48a8bf62716d6dc82bc1c3 | sha256sum