Skip to main content
Robinhood’s agent executes your trades. Otto is the pre-trade brains it plugs into: tokenized-equity screening, SEC smart-money filings, and market-regime context, all read-only.
Otto Intel MCP cannot place orders, move funds, sign arbitrary wallet messages, swap, bridge, deposit, or withdraw. Reference prices and scanner output are data, not executable quotes or recommendations.

Connect the hosted MCP

The hosted policy is: first call free, then pay per call in USDC (x402) — your agent brings its wallet. One successful intelligence-tool invocation is free per observed network origin. Changing session IDs or client metadata does not create another grant; callers sharing one outbound address also share the courtesy call. otto_catalog is always free, does not consume it, and returns the full live x402 menu.

Claude Code

Claude Desktop

Customize → Connectors → + → Add custom connector → paste https://mcp.ottoai.services.

Cursor

Add it to ~/.cursor/mcp.json (or .cursor/mcp.json for a single project):

Codex CLI

ChatGPT

Settings → Security and login → toggle Developer mode. Then Settings → Plugins → + → paste https://mcp.ottoai.services. After the free call, an unpaid intelligence-tool invocation returns a machine-actionable payment_required result with the route’s live Base-USDC x402 requirement. The hosted wrapper preserves that requirement and adds:
  • command: an exact curl command for this tool path and input.
  • why_paid: the tool and the response this payment buys.
  • pricing_model: the shared hosted pricing policy.
  • free_call: whether the observed network origin’s grant is spent or currently in progress.
  • catalog: the always-free otto_catalog pointer for comparing the full menu.
Connect an x402-capable wallet, sign the accepted requirement, and retry the same tool with the signed payload in x_payment. The wallet and signing key stay in the client; the hosted MCP holds neither. If no free result is available for an input, the server responds promptly and leaves the grant available. A paid invocation sends its signed authorization once. If the public route cannot complete that read, the tool returns x402_read_retriable with reuse_x_payment: false; obtain a new requirement before another attempt.

Hosted or local

Local x402 package

The local package is for operators who want on-demand coverage and per-call USDC settlement. Create a fresh wallet, fund it only with the Base USDC you intend to spend, and expose its key only to the local MCP process.
Add the stdio server to any MCP client that accepts a command configuration:
The payer key signs bounded Base-USDC payment authorizations locally. It is never sent to Otto. Use a disposable, low-balance wallet rather than a primary wallet. Env-var syntax differs by client — Cursor expects ${env:X402_PRIVATE_KEY} where the block above uses ${X402_PRIVATE_KEY}.

Tools

Both transports consume the same ten intelligence-tool definitions. The hosted transport also exposes otto_catalog, the always-free storefront tool. otto_catalog has no input and no price. It derives the current endpoint count, paths, descriptions, and prices from the live x402 discovery surfaces rather than storing a fixed count. For SEC field semantics and amendment handling, see SEC filings methodology.

Example prompts

Use otto_tokenized_equities with thesis "AI infrastructure chips." Show why each row matched, separate reference price from executable pricing, and do not recommend a trade.
For NVDA, compare otto_insider_trades with otto_equity_intel. Separate observed SEC data from your interpretation and call out freshness.
Use otto_institutional_holdings for Berkshire Hathaway (CIK 1067983). Summarize the latest top positions and amendment status without treating the filing as a current portfolio recommendation.
Run otto_equity_smart_money_brief for AAPL. Extract the Form 4 and 13D/13G evidence behind the brief and describe uncertainty.
Read otto_rh_season, otto_base_season, and otto_pm_crypto. Summarize where the signals agree or conflict; do not generate an order.