The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the Optionality MCP listing page.
MCP server and React drill UI for an AI-judged options trading practice game. Built on FastMCP.
Optionality is an instance of a Tollbooth-DPYC™ service: engagement is monetized with convenient Don't Pester Your Customer™ (DPYC™) Bitcoin commerce. Patrons pre-fund a balance over Lightning and play without per-request payment ceremonies. All prices are dynamic and set by the operator — the Welcome page shows live quotes. Patrons can also enter Tollbooth-DPYC coupons to take advantage of discounts when they are offered.
Six judging dimensions: Strategy Selection, Strikes & Tenor, Risk/Reward, Macro Integration, Tail Risk, and Communication — each 0–20, rolled into a 0–100 score with letter grades A+ through F.
Each scenario embeds 1–2 facts that are factually TRUE but immaterial, woven inline into the narrative and never flagged. Citing them as trade drivers penalizes the trainee; recognizing them as noise and setting them aside earns points. The drill is signal-from-noise on a tape where everything you read is true.
A Facts Ledger accompanies every evaluation: which scenario facts you integrated, which you missed, which red herrings you caught, and which you followed.
Three historicity modes:
Four difficulty personas: Apprentice, Journeyman, Adept, Sovereign. Leaderboard points are difficulty-weighted, so rankings can't be padded on easy mode. A Mulligan mode replays an already-judged scenario fresh.
The server builds the full option chain from the dealer's scaffold — three expirations, a strike ladder around spot, a three-anchor IV smile honoring put-bid skew — and prices it with Black–Scholes. The same math runs client-side, so the trainee, the charts, and the judge all see identical numbers.
Mid-scenario, ask anything. Educational questions get direct, formula-backed answers; tactical questions get redirected to the dimension worth more thought — the responsibility stays with the trainee. The desk never reveals the scenario's hidden facts or red herrings. Clues carry a scoring penalty.
Heavy LLM tools (deal, judge, clue desk) use a claim-check async pattern: the call returns a claim immediately and the client polls a free fetch tool, so slow generations survive client timeouts.
optionality-mcp is one Operator in the DPYC federation — independent MCP servers that share a Nostr identity model, Bitcoin Lightning payments, and the tollbooth-dpyc SDK. Peer repos:
| Repo | Role |
|---|---|
| tollbooth-dpyc | Python SDK — vault, auth, pricing, Lightning, Nostr identity |
| dpyc-community | Governance registry: membership, advisories, threat model |
| dpyc-oracle | Community concierge (free onboarding + member lookup) |
| tollbooth-authority | Certification backbone (Schnorr-signed certificates) |
| tollbooth-sample | Sample Operator (canonical template) |
| tollbooth-pricing-studio | iOS pricing-model editor / operator console |
| cypher-mcp | Monetized graph answers: named Cypher templates over Neo4j/AuraDB |
| schwab-mcp | Charles Schwab brokerage data |
| thebrain-mcp | TheBrain personal knowledge graph |
| excalibur-mcp | X/Twitter posting |
| taxsort-mcp | Tax classification + Cloudflare Pages UI |
| optionality-mcp | Options analytics (brokerage-data Operator) |
| tollbooth-oauth2-collector | OAuth2 callback handler (advocate service) |
| tollbooth-shortlinks | URL shortener utility |