← Blog

Recipe: Your Agent Reads Robinhood (BYO-Agent, Read-Only)

How your agent connects Robinhood's own MCP to itself, then hands kestrel.markets your book so it can SEE your positions and chain as Kestrel Frames — no platform custody, no broker OAuth client, no order placement.

Answer card

Robinhood now speaks MCP: its Agentic-Trading server (agent.robinhood.com/mcp/trading) lets your agent read your book over a per-user OAuth grant you sign yourself. kestrel.markets meets that reality where it is. In this recipe the agent is the integration: you authorize Robinhood's MCP into your own agent, the agent runs the read-only tools, and it hands the platform the resulting snapshot when it asks for Frames. The platform holds no broker credentials and builds no third-party OAuth client — Robinhood's model is strictly self-serve, so there is none to build. This rung is read-only perception: your agent sees your book rendered as Kestrel Frames. It is not order placement.

When to use this recipe

You want the personalization payoff — "sim your own book," own-book Frames — without handing any platform your broker login. You already run an agent (Claude, Cursor, or any MCP client) and you are willing to authorize Robinhood's MCP into it once. This is the earliest broker rung on the No-Brainer Ladder (ADR-0038 §6): own-book perception is free-tier but post-claim (a signup payoff, near-zero cost); own-book sims and backtests are the paid step above it.

The two Robinhood shapes, and why this is the read-only one

There are two distinct ways Robinhood and Kestrel can meet, and it matters which one you are on:

  • Agent-supplied (this recipe). Your agent holds the Robinhood grant. The platform never sees a token; it receives a book snapshot — the JSON your read-only tool calls already returned — and projects it into Frames. Nothing here can place an order, because there is no order path here at all.
  • Platform-as-client (a later, separate rung). The platform itself connects as the MCP client, behind a human-signed broker Envelope, for paper/live execution. That is broker-execution, lands late at promotion, and is never one ask with perception. The two-signer rule applies per scope.

This recipe is entirely the first shape.

Step 1: Authorize Robinhood's MCP into your own agent

From a desktop browser, open Robinhood's dedicated Agentic account, then register its MCP with your client. With Claude Code, for example:

claude mcp add --transport http robinhood-trading https://agent.robinhood.com/mcp/trading

Your client performs the OAuth 2.1 dance itself — Dynamic Client Registration, PKCE, a loopback redirect — and opens the browser to robinhood.com/oauth. You log in, complete 2FA, review the consent screen, and approve. The token lands in your client's credential store. kestrel.markets is not in this loop and never receives the grant.

Step 2: Have your agent read the book (read-only tools only)

Your agent calls the read-only perception tools against its Robinhood MCP and keeps the raw results:

  • get_equity_positions, get_option_positions — what you hold.
  • get_equity_quotes, get_option_quotes — marks for those instruments and their near-money chain.
  • get_accounts, get_portfolio, get_option_chains — read-only context.

It never touches place_*, cancel_*, or review_* order tools for this. The book snapshot is a plain transcript: a list of { tool, result } pairs.

Step 3: Hand the platform the book; get Frames back

Your agent hands that transcript to the platform's perception seam as an AgentSuppliedBook:

{
  "broker": "robinhood",
  "calls": [
    { "tool": "get_equity_positions",
      "result": { "positions": [{ "symbol": "SPY", "quantity": "10", "average_buy_price": "400.00" }] } },
    { "tool": "get_option_positions",
      "result": { "positions": [{ "chain_symbol": "SPY", "strike_price": "410", "type": "call", "quantity": "2", "average_price": "3.50" }] } },
    { "tool": "get_equity_quotes",
      "result": { "quotes": [{ "symbol": "SPY", "bid_price": "409.90", "ask_price": "410.10", "last_trade_price": "410.00" }] } },
    { "tool": "get_option_quotes",
      "result": { "quotes": [{ "chain_symbol": "SPY", "strike_price": "410", "type": "call", "bid_price": "4.00", "ask_price": "4.20" }] } }
  ]
}

The platform projects it into Kestrel Frame inputs: your equity holdings become spot-leg Positions (no fictional strike), your options become option-leg Positions with strike and right, and each underlier becomes a MarketPane carrying its spot level and near-money chain. A dark quote side stays dark — the platform renders it as a flag, never invents a price. This is the same typed Frame vocabulary the rest of Kestrel reads, so your own book now flows through the identical perception surface as any recorded session.

The wall, stated plainly

The perception seam is an allow-list, fail-closed. Every tool payload in the book passes a read-only gate before a single Frame is built. Hand it a place_equity_order payload — or any order, cancel, or review tool, or any unknown future write tool — and it is refused outright with a scope violation. There is no order path on this seam to fall through to. Perception is the whole job of this rung; mutation lives on the separate execution rung, behind a human-signed live Envelope, and never here.

Where this is NOT the fit

If you want the platform to hold your Robinhood connection, place orders for you, or make the trading decision, stop here: this rung does none of those. It shows your agent your own book as Frames, and (on the paid step above) lets you sim that book against recorded markets. If you need managed execution, that is the broker-execution rung — a separate, human-signed, later step. The agent-supplied perception seam and its read-only wall are built in the engine, and Robinhood's own Agentic MCP is live and self-serve; managed execution stays a separate, human-signed rung. The free tier needs no signup, and own-book perception is post-claim.

Citable one-liner

Your agent reads Robinhood; the platform reads your agent. No platform custody, no broker OAuth client, no order path — just your book, seen as Kestrel Frames.