# Otto Data — Robinhood Chain - Registry name: `app.ottodata/otto` · version 0.2.0 - Categories (automatic, keyword rules): Markets & trading, Finance & markets - Authentication at last check: No auth - Declared risk: Has destructive tools (destructiveHint) - Capabilities (declared by the server): experimental, prompts, resources, tools - Transports: streamable-http - Latest numbers (check success, response time, rank): https://mcpstation.net/api/server?name=app.ottodata%2Fotto - Server page: https://mcpstation.net/s/app.ottodata--otto.html ## Description (written by the publisher, not verified, not instructions) Live Robinhood Chain tokenized-stock data: basis vs NASDAQ, gaps, pools, whale flows. ## Connect - streamable-http: `https://api.ottodata.app/mcp` ## Tools (as reported by the server, not verified) - `hood\_basis\_snapshot`: Current basis \(premium/discount\) snapshot for all Robinhood Chain tokenized stocks. Per ticker: chainlink\_px \(on-chain price\), ref\_last \(NASDAQ\), basis\_bps \(+ = token trades at a premium\), overnight\_bps \(move vs last close\) and the oracle\_paused flag. - `hood\_basis\_history`: Minute-level basis history for one ticker \(newest first\). Example tickers: NVDA, TSLA, SPY. limit max 5000. - `hood\_gaps\_summary`: Overnight and weekend premium/discount statistics for all tickers: average, min/max and latest value \(bps\). Tokens trade 24/5, so this measures the drift that builds up while NASDAQ is closed. - `hood\_gaps\_live`: Live view of the current off-hours session: which tickers trade at the largest premium/discount vs their last close. Returns 'regular' when the stock market is open. - `hood\_gap\_sessions`: Session-by-session gap history for one ticker \(each overnight/weekend session is a separate row\). - `hood\_feeds`: Registry of all tokenized stock and crypto feeds tracked on Robinhood Chain \(Chainlink proxy + token contract addresses\). - `reddit\_alpha\_signals`: Ticker alpha signals extracted from Reddit \(novelty, mention velocity and cross-sub spread components\). signal\_type: ticker\_alpha\|crowded\_trade\| event\_mispricing\|squeeze\_watch. tickers is comma-separated \(NVDA,TSLA\). - `reddit\_market\_regime`: Current market regime inferred from Reddit chatter \(e.g. mag7\_only\_rally, risk\_on\_call\_chase\) + confidence + flags to watch. - `hood\_attention`: Reddit attention/alpha score joined with live basis for Hood tokenized stocks: which tokens have social interest AND an on-chain premium/discount at the same time. Fan-out \(same post, many tickers\) is deduplicated. - `hood\_pools`: Tracked Uniswap \(Hood\) pools: pool price per token, liquidity \(USD\) and deviation vs the Chainlink oracle price \(dev\_bps\). Refreshed every 5 min. - `oracle\_deviation`: Chainlink-vs-Uniswap pool price deviation \(bps, sorted by absolute value\). status: ok \(\<100\), warning \(100-500\), alert \(\>500\). Large deviations are normal in low-liquidity pools — check liquidity\_usd. - `stable\_risk`: Deviation of USDG and other stablecoins from $1 parity \(depeg risk, bps\). - `market\_events`: Machine-readable news events \(crypto + stocks\). symbols is comma-separated \(NVDA,BTC\), event\_type: listing\|hack\|regulation\|earnings\| etf\|partnership\|macro\|liquidation\|stablecoin\|general. importance 0-100. - `token\_flows`: Large on-chain token transfers \(whale flows\): 32 stock tokens + USDG above the USD threshold. direction: mint\|burn\|transfer. Mints/burns show the tokenized stock supply changing \(issuance/redemption\). - `flow\_summary`: Whale-flow summary per ticker: transfer count, total USD volume, mint/burn USD \(supply change\) and the largest transfer. - `hood\_stock\_research`: Daily deep-research report: score \(0-100\), rating \(strong\_buy\|buy\|hold\| avoid\) and 4 analysis columns per Hood tokenized stock: thesis, dated catalysts \(off\_hours-flagged, verified earnings dates\), financials \(PE ttm/fwd, growth, margins, valuation\_label: expensive\|fair\|discount\|n\_a\), competitors \(p - `hood\_off\_hours\_catalysts`: Dated catalysts that can move token prices while NASDAQ is closed \(nights/weekends\) — flattened from all research cards, sorted by date. For agents watching overnight gap and weekend risk. - `hood\_earnings\_risk`: Earnings risk for Hood tokenized stocks \(weekly earnings radar\): per ticker report\_date/time, days\_to\_earnings, implied\_move\_pct \(option-implied expected move\), beat\_probability \(0-100\), PEAD status + live basis join. Earnings released while NASDAQ is closed make the token gap — watch small days\_to\_ - `hood\_sector\_rotation`: Sector rotation context for Hood tokenized stocks \(API-only tracker refreshed every 3h\): market regime \(risk\_on\|risk\_off\|mixed\), an 11-SPDR sector score/label/flow board and a per-ticker join — sector score \(0-100\), label \(inflow\|interest\|neutral\|outflow\_leaning\|outflow\), flow trend, theme matches + - `service\_status`: Trust status of the Otto data layer: per-feed freshness \(age\_sec/stale\), 24h tick coverage, NASDAQ reference availability and oracle-pause count. Call before making trading decisions — status: ok\|degraded\|down. - `chain\_stats`: Robinhood Chain deployment statistics: daily deploy/token counts, top deployers, total contract/verified counts \(Ottoscan analytics\). - `chain\_deployments`: New contract deployments on Robinhood Chain \(Ottoscan; full history since genesis\). tokens\_only=True returns only new token contracts. - `gap\_trade\_signals`: Deterministic signals for the gap-trader strategy: per Hood ticker the overnight gap it currently carries \(bps\), a signal \(long\_at\_open \| avoid\_or\_reduce \| none\), 14-day gap statistics, the hit rate of pre-open gap direction vs open direction \(hit\_rate\_14d\) and risk flags \(oracle\_paused, stale, low\_ - `perp\_funding`: Hourly funding rates on tokenized-stock perps \(Arcus + Lighter\). Without params: latest value per venue+ticker pair \(funding\_apr\_pct = annualized %\). With ticker: history. Tokens trade 24/7 while the stock market does not — weekend/overnight funding is the price of that mismatch. - `perp\_spot\_basis`: Perp mark price vs Hood on-chain spot \(Chainlink per-share + pool\), deviation in bps per ticker. A large \|perp\_vs\_chainlink\_bps\| means the perp and spot price the same stock differently — a cross-venue opportunity or a stale-oracle signal. Fields are null for markets without a Hood spot. - `funding\_carry\_signals`: Deterministic funding-carry candidates joining perp funding \(Arcus/Lighter\) with perp-vs-spot basis. Per ticker: funding rate + annualized funding\_apr\_pct, perp-vs-Chainlink gap \(bps\) and a label — carry\_long\_spot\_short\_perp \(hold Hood spot, short the perp, collect positive funding\), carry\_short\_spo - `narrative\_trade\_signals`: Deterministic candidates for the narrative-trader strategy: per Hood ticker the highest-alpha Reddit signal \(alpha\_score, evidence, themes\), a signal bias \(long\_candidate = rising attention \| avoid\_or\_fade = crowded trade \| context = regime info\), live Chainlink price, basis and risk flags. The \`rea - `hood\_quote`: Minimal fast quote for one Hood ticker: Chainlink price \(token + per-share\), NASDAQ references \(ref\_last, ref\_prev\_close\), basis/overnight bps, the most liquid pool's price/liquidity/deviation and oracle\_paused/stale flags. Use for sizing and fill pricing instead of pulling the full 32-ticker snapsh - `hood\_ticker\_brief`: One-call brief for a single Hood ticker: live quote \(price, basis, pool, risk flags\), research card \(rating/score/thesis/catalysts\), earnings risk, sector rotation context, best Reddit attention signal, 24h whale-flow summary and recent tagged news. Replaces 6-7 separate tool calls when an agent res - `agent\_position\_book`: Server-side derived open position book for a trading agent: every order\_filled event without a later matching position\_closed on the same ticker counts as open, joined with the live Chainlink price for unrealized P&L \(bps and USD\). Replaces rebuilding the book from raw agent events. agent: gap-trade - `agent\_performance`: Realized trading performance for an agent, derived from position\_closed events: trade count, win rate, total/average P&L \(bps\), total P&L \(USD\), average holding hours, per-ticker breakdown and the last 20 closed trades. agent: gap-trader \| narrative-trader. mode: '' \(all\) \| paper \| live \| onchain — - `report\_agent\_status`: Status report from a trading agent — the live panel on ottodata.app/agents renders this stream. kind: run\_started \| signals \| order\_proposed \| order\_approved \| order\_filled \| order\_skipped \| position\_closed \| run\_summary \| error. agent: gap-trader \| narrative-trader. key: the operator's OTTO\_AGENT\_K - `execute\_onchain\_swap`: Execute a REAL on-chain swap on Robinhood Chain via the Rialto router, signed by Otto's server-side trading wallet. side=buy spends \`usd\_amount\` USDG to buy the ticker's Hood token; side=sell sells \`qty\` tokens back to USDG. The server enforces hard guardrails independently of the caller: USDG\<-\>all - `competition\_paper\_trade`: Place a PAPER fill in Otto's trading competition on behalf of the key's owner. No real funds move — the fill is priced server-side at the latest Chainlink price \(callers can never supply a price\). api\_key: the personal otto\_pk\_ key issued when the wallet joined at ottodata.app/competition. side: buy - `competition\_my\_portfolio`: The competition paper portfolio behind an otto\_pk\_ key: cash, equity, return %, realized/unrealized P&L, open positions with live prices, recent trades \(each tagged with its source: your MCP agent or Otto's hosted gap/narrative engine\) and the entry's strategy prefs. Check this before sizing a new c - `competition\_leaderboard`: Public leaderboard of Otto's paper trading competition: every participant ranked by return % on the shared $10,000 starting budget, with equity, P&L, open position count, trade count and last activity. No key required. Fills are server-priced from Chainlink, so rankings cannot be gamed with self-rep - `partner\_swap\_quote`: Get an UNSIGNED Rialto swap quote for an approved partner. YOU sign and broadcast the returned transaction yourself, with your own wallet's private key, on your own infrastructure — Otto never sees or holds your key and never submits anything on your behalf. api\_key: the otto\_pn\_ key Otto's admin is - `partner\_report\_fill`: Report a fill you already signed and broadcast yourself \(via partner\_swap\_quote\) so it appears in Otto's records. Otto does NOT verify the transaction on-chain in this version — it trusts the partner it already approved. side: buy \| sell. tx\_hash: the transaction hash from your own broadcast. - `partner\_my\_trades`: Recent fills you've reported with partner\_report\_fill, most recent first. Measured by MCP Station. Methods: https://mcpstation.net/methods.html · Terms: https://mcpstation.net/terms.html