The thesis

Track record

OptimistFi's dated track record on a company: each time a filing crossed or held its thesis's break condition. A crossing whose thesis predates the filing is a genuine call, dated before the event.

TOOLget_track_record
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_track_record","arguments":{"entity":"MSFT"}}}'

When a model calls it

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

OptimistFi's dated track record on a company: each time a filing crossed or held its thesis's break condition. A crossing whose thesis predates the filing is a genuine call, dated before the event. Use when the user asks: has OptimistFi been right on X; did X's thesis break. response_mode=plain for beginners. Args: entity.
  • has OptimistFi been right on X
  • did X's thesis break

Parameters

entitystringrequired

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

response_modestringdefault "standard"

standard
the full read with the investment case
plain
a short beginner-friendly explanation at the reading_level grade

Accepts standard, plain.

reading_levelinteger

With response_mode plain, who the explanation is written for: 5 a complete beginner, 10 a general reader, 13 an informed investor (unset reads as 13, with precise figures).

Accepts 5, 10, 13.

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": {
    "ticker": "MSFT",
    "name": "MICROSOFT CORP",
    "cik": "0000789019",
    "figi": "BBG000BPH459"
  },
  "type": "track_record",
  "confidence": "estimated",
  "source": {
    "name": "OptimistFi — thesis break-condition checks over filed facts",
    "url": "https://optimistfi.com/stocks/MSFT",
    "license": "computed"
  },
  "data": {
    "forward_calls": [],
    "checks": [
      {
        "ticker": "MSFT",
        "cik": "0000789019",
        "period_end": "2026-06-30",
        "filing_date": "2026-07-29",
        "crossed": 0,
        "thesis_computed": "2026-08-28T17:35:13Z"
      },
      {
        "ticker": "MSFT",
        "cik": "0000789019",
        "period_end": "2026-06-30",
        "filing_date": "2026-07-29",
        "crossed": 0,
        "thesis_computed": "2026-08-20T03:48:43Z"
      }
    ],
    "confluence": {
      "count": 0,
      "kinds": [],
      "stacked": false
    },
    "standing": {
      "price": {
        "close": 535.070007,
        "date": "2026-10-09"
      },
      "range_52w": {
        "low": 352.83,
        "high": 542.07,
        "sessions": 252,
        "position_pct": 96.3
      },
      "valuation": {
        "as_of": "2026-10-12",
        "close_date": "2026-10-09",
        "pe_ratio": 29.71,
        "ps_ratio": 11.97,
        "price_to_book": 8.98,
        "price_to_cash_flow": 21.72,
        "ev_to_ebitda": 21.06,
        "market_cap": 3973186677848
      },
      "analyst_target": {
        "consensus": 574.5,
        "median": 572.5,
        "high": 725,
        "low": 440,
        "as_of": "2026-10-12",
        "analysts_publishing_last_month": 9,
        "target_basis": "consensus",
        "implied_move_pct": 7.4,
        "basis": "published analyst price targets, not an OptimistFi forecast; the implied move is the distance from the last close to the consensus, and the count is how many analysts published in the last month, not total coverage"
      },
      "analyst_actions_12m": {
        "downgrade": 7,
        "hold": 2,
        "initialise": 4,
        "maintain": 100,
        "upgrade": 6
      },
      "thesis_state": {
        "state": "intact",
        "rules_watched": 2,
        "rules_crossed": 0
      }
    },
    "dependents": [
      {
        "ticker": "AAOI",
        "pct": 28.8,
        "fiscal_year": "2025",
        "receipt": "https://www.sec.gov/Archives/edgar/data/1158114/000143774926005875/aaoi20251231_10k.htm"
      },
      {
        "ticker": "EA",
        "pct": 16,
        "fiscal_year": "2026",
        "receipt": "https://www.sec.gov/Archives/edgar/data/712515/000162828026033617/ea-20260331.htm"
      },
      "… 1 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.