Installation & Setup
Connect Aelix to your Robinhood Agentic account the safe way: clone the repo, trust the project MCP server, authenticate over OAuth, tighten the permission gate, and write a strategy before your first order.
This page is the full walkthrough from an empty desktop to a desk that can propose, but never silently place, a trade. It follows `docs/SETUP.md` step for step: get the repo, trust the project-scoped MCP server, authenticate to Robinhood over OAuth, verify the real tool names, tighten the permission gate, and write a strategy before anything trades.
Setup is deliberately conservative. The default posture is everything gated, every Robinhood tool call asks for your approval, and you loosen it deliberately, one read-only tool at a time. Nothing here weakens the guardrails in `CLAUDE.md`; it only wires the broker in behind them.
Prerequisites
- A Robinhood individual investing account in good standing.
- A desktop device, you can only open the Agentic account and authenticate there.
- A funding amount decided in advance. This is the most the agent can ever lose. Start small.
- Claude Code installed and logged in.
The Agentic account opens and authenticates on desktop only. Have the Robinhood mobile app on hand too, OAuth includes a verification step there.
1. CLONE git clone … ─▶ cd rh-trading-agent (.mcp.json ships the server)
2. TRUST claude ─▶ approve robinhood-trading (project-scoped MCP)
3. AUTH /mcp ─▶ OAuth in browser ─▶ verify in RH mobile app
─▶ onboarding auto-opens ─▶ create + FUND Agentic acct
4. TIGHTEN claude mcp get robinhood-trading ─▶ split tools deny / ask / allow
5. STRATEGY write strategies/*.md ─▶ caps + entry/exit rules
────────────────────────────────────────────────────────────────────────
READY first desk run stops at a preview card, you approve or pass1. Get the repo locally
git clone <your-private-repo-url> rh-trading-agent
cd rh-trading-agentThe repo's .mcp.json already defines the Robinhood Trading MCP server at project scope, so you do not need to run claude mcp add separately. The definition is a single HTTP endpoint:
{
"mcpServers": {
"robinhood-trading": {
"type": "http",
"url": "https://agent.robinhood.com/mcp/trading"
}
}
}If you prefer to register it explicitly instead of relying on the project file, the equivalent command is:
claude mcp add robinhood-trading --transport http https://agent.robinhood.com/mcp/trading2. Launch and trust the project server
claudeThe first time you open this project, Claude Code asks whether to trust the project-scoped MCP server from .mcp.json. Approve `robinhood-trading`. The repo's .claude/settings.json pre-lists it under enabledMcpjsonServers, so the trust prompt is a one-time confirmation:
"enabledMcpjsonServers": [
"robinhood-trading"
]3. Authenticate (OAuth)
Authentication happens inside the session. Open the MCP panel:
/mcpSelect robinhood-trading and authenticate
From the /mcp panel, choose `robinhood-trading` and start the auth flow.
Approve on Robinhood's OAuth screen
A browser opens Robinhood's OAuth consent screen. The agent never sees your password, the OAuth handshake happens between you and Robinhood.
Complete the check in the Robinhood mobile app
There is a verification step in the Robinhood mobile app. Approve it there to finish connecting.
Onboarding auto-opens for the Agentic account
After connecting, Robinhood's onboarding auto-opens. Create your Agentic account and fund it with your dedicated budget, the amount you decided in advance. This isolated account is the only one the desk can trade.
4. Verify the tools and tighten permissions
By default, every Robinhood tool call requires manual approval, the ask rule applied to mcp__robinhood-trading__*. That is intentional for the first runs: you watch every call before it happens. To refine it, you first need the real tool names.
claude mcp get robinhood-tradingYou can also run /mcp in-session to list them. Once you know the names, edit .claude/settings.json: move read-only tools (positions, buying power, quotes) into allow so routine reads stop prompting, and keep order-placing tools in ask, or in deny while you are still testing a strategy and want zero live orders.
How the three tiers are evaluated
- deny
- Hard block. The tool cannot run, no prompt. Use it to physically wall off tools you never want touched, this repo denies the options order tools (
place_option_order,cancel_option_order) because the desk is equities only. - ask
- Gated. Every call pauses for your explicit in-session approval. This is where order tools live,
place_equity_orderstays inaskso a human always confirms. - allow
- Runs without a prompt. Reserve it for read-only tools whose worst case is a wasted API call, quotes, positions, fundamentals, order history.
Here is the illustrative example from docs/SETUP.md. The tool names are placeholders, replace them with the actual names from claude mcp get:
{
"permissions": {
"deny": ["mcp__robinhood-trading__cancel_all"],
"ask": ["mcp__robinhood-trading__place_order"],
"allow": [
"mcp__robinhood-trading__get_positions",
"mcp__robinhood-trading__get_buying_power"
]
}
}For reference, the .claude/settings.json checked into this repo already ships a worked split you can start from and tighten. A representative slice of the real tool names:
| Tier | Behavior | Example tools (real names) |
|---|---|---|
allow | Runs, no prompt (read-only) | get_accounts, get_portfolio, get_equity_positions, get_equity_quotes, get_equity_fundamentals, get_equity_orders, run_scan, review_equity_order |
ask | Pauses for approval | place_equity_order, cancel_equity_order, create_scan, create_watchlist, add_to_watchlist |
deny | Hard block (not equities) | place_option_order, cancel_option_order |
Representative tools from the repo's checked-in permission gate.
Note that review_equity_order sits in allow, it only builds a preview, it does not place anything. The tool that actually submits an order, place_equity_order, stays in ask. For the full breakdown of every list, see Configuration & Permissions.
5. Define a strategy before trading
Do not trade against an empty rulebook. Write your rules in strategies/, per-trade cap, max positions, entry/exit logic, stop conditions. CLAUDE.md requires every proposed trade to map to a written rule there, and the Risk Manager reads that folder before clearing any trade. If a cap is removed or left unset, the Risk Manager VETOes.
Kill switch
You can cut the broker connection at any time. Disconnect the MCP from the Robinhood app, or remove it locally:
claude mcp remove robinhood-tradingReminders & responsibilities
- The funding amount is the hard ceiling on loss, nothing the agent does can exceed it, but a small cap does not validate the strategy behind a trade.
- Keep order tools in `ask` (or `deny` while testing). A gated order is the whole point, see Guardrails.
- Every trade must cite a written rule in
strategies/, or the Risk Manager vetoes it, see Strategies. - When you are ready for a first run, follow the Quickstart and watch it stop at a preview card.
Where to go next
Connecting the Broker
MCPHow the robinhood-trading server wires in, tool namespacing, and the HTTP transport. See MCP.
Configuration & Permissions
GATEThe full deny → ask → allow breakdown and every tool's tier. See Configuration.
First desk run
QUICKSTARTThe fastest path from a connected broker to a preview card. See Quickstart.