The evidence

Filings and events

A company's own disclosures: filed 8-K events, its press releases, the text of those 8-Ks, and governance red flags (late filings, auditor changes, selling clusters).

TOOLget_filings
Server
https://mcp.optimistfi.com/mcp
Authentication
None
Access
Read-only: it changes nothing
Example call
curl https://mcp.optimistfi.com/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_filings","arguments":{"entity":"AAPL","limit":3}}}'

When a model calls it

Models choose a tool from its description. This is the one the server publishes:

A company's own disclosures: filed 8-K events, its press releases, the text of those 8-Ks, and governance red flags (late filings, auditor changes, selling clusters). Use when the user asks: any red flags at X; what did X announce; latest 8-K from X. Not 10-K/10-Q sections. Args: entity; kind = events | press_releases | event_text | red_flags.
  • any red flags at X
  • what did X announce
  • latest 8-K from X

Parameters

entitystringrequired

The company: a ticker (AAPL, BRK.B), a company name (Apple) or an SEC CIK.

kindstringdefault "events"

events
filed 8-K events and how significant
press_releases
the company's own releases
event_text
the text of the latest filed events
red_flags
late filings, auditor changes and insider-selling clusters

Accepts events, event, 8-k, 8k, press_releases, press_release, release, releases, pr, event_text, text, red_flags, governance.

limitintegerdefault 12

Most records, newest first to return.

startstring

Window start, YYYY-MM-DD.

endstring

Window end, YYYY-MM-DD.

Response

A real response to the example call, trimmed: lists cut to two items, long text cut short. The result's content holds the answer as JSON text; parsed, it reads:

result.content · parsed
[
  {
    "entity": {
      "figi": "BBG000B9XRY4",
      "cik": "0000320193",
      "ticker": "AAPL",
      "name": "Apple Inc."
    },
    "type": "insider_trade",
    "direction": "backward",
    "event_time": "2026-10-06",
    "as_of": "2026-10-08",
    "confidence": "confirmed",
    "source": {
      "name": "SEC EDGAR Form 4",
      "url": "https://www.sec.gov/Archives/edgar/data/320193/000114036126039158/",
      "license": "public"
    },
    "data": {
      "insider_name": "Newstead Jennifer",
      "insider_title": "SVP, GC and Government Affairs",
      "txn_code": "S",
      "acquired_disposed": "D",
      "shares": 2399,
      "price": 332.01,
      "value": 796491.99,
      "shares_owned_after": 39593
    }
  },
  {
    "entity": {
      "figi": "BBG000B9XRY4",
      "cik": "0000320193",
      "ticker": "AAPL",
      "name": "Apple Inc."
    },
    "type": "corporate_event",
    "direction": "backward",
    "event_time": "2026-07-30",
    "as_of": "2026-07-30",
    "confidence": "confirmed",
    "source": {
      "name": "SEC EDGAR 8-K Item 2.02",
      "url": "https://www.sec.gov/Archives/edgar/data/320193/000032019326000018/0000320193-26-000018-index.htm",
      "license": "public"
    },
    "data": {
      "subtype": "earnings"
    }
  },
  "… 2 more"
]

Fields are explained in Reading a response.

Errors

A call the server cannot run (a missing or invalid argument) comes back with isError: true and the reason in words. A company or market the server cannot match comes back as a result naming what was not found. See Errors and limits.
ScoutJUST THIS STORY

LET’S MAKE THIS USEFUL · 1 OF 5

How would you like me to explain this?

Tell me what you want from this read. Start with a quick note, then adjust the details. Your other stories stay as they are.

We’ll remember your view of this story. The published article stays unchanged.

THIS STORY’S READING VIEWStandard · The whole picture

Clear explanations with context. Both sides of the evidence.