MCP & Tools
The robinhood-trading MCP server is the single connector between Claude Code and the Robinhood Agentic broker, how it connects, and every tool grouped by permission tier.
Aelix reaches the broker through exactly one Model Context Protocol (MCP) server, named robinhood-trading. It is the only path to your account, there is no other API client, no scraper, and no second connection. Everything the desk reads or does at Robinhood goes through this server, and every call is subject to the permission tiers in `.claude/settings.json`.
The server is declared project-scoped in `.mcp.json`, so opening the project in Claude Code prompts you to trust it. Authentication is OAuth 2.0, performed in-session, the agent never sees your password.
The server definition
The connection lives in .mcp.json at the repo root. It uses the HTTP transport pointed at Robinhood's agent endpoint:
{
"mcpServers": {
"robinhood-trading": {
"type": "http",
"url": "https://agent.robinhood.com/mcp/trading"
}
}
}Because the server is project-scoped, .claude/settings.json pre-lists it under enabledMcpjsonServers so Claude Code knows it is expected.
Connecting & authenticating
You only need to do this once. Open the project, trust the server, then authenticate over OAuth from inside the session:
# The .mcp.json above is enough, but you can also add it explicitly:
claude mcp add robinhood-trading --transport http https://agent.robinhood.com/mcp/trading
# In-session, authenticate (opens Robinhood's OAuth consent in a browser;
# a verification step happens in the Robinhood mobile app):
/mcp
# Inspect the server + its real tool names any time:
claude mcp get robinhood-tradingTool inventory by permission tier
Permissions are evaluated deny → ask → allow, first match wins, and a matching ask rule prompts even when a broader allow also matches. The desk's tools fall into three tiers:
| Group | Representative tools | Tier |
|---|---|---|
| Account & portfolio (read) | get_accounts, get_portfolio, get_equity_positions, get_equity_orders | allow |
| Market data (read) | get_equity_quotes, get_equity_historicals, get_equity_fundamentals, get_equity_tradability, get_index_quotes, get_indexes, get_earnings_calendar, get_earnings_results, search | allow |
| Scans & watchlists (read) | get_scans, run_scan, get_watchlists, get_watchlist_items, get_popular_watchlists | allow |
| Order preview (read) | review_equity_order | allow |
| Scan & watchlist mutations | create_scan, update_scan_config, update_scan_filters, create_watchlist, add_to_watchlist, remove_from_watchlist, follow_watchlist | ask |
| Equity orders | place_equity_order, cancel_equity_order | ask |
| Option orders | place_option_order, cancel_option_order | deny |
Exact lists live in .claude/settings.json. Option order tools are denied because the underlying beta is equities-only.
Least privilege: who holds what
Tool access is scoped per role in each agent's frontmatter. Only the Portfolio Manager holds the order tools (review_equity_order, place_equity_order). The three analysts and the Risk Manager have no order tools at all, they physically cannot place a trade. Each role gets only the read tools its job needs:
- Fundamental Analyst,
get_equity_fundamentals,get_earnings_calendar,get_earnings_results,get_equity_quotes,search. - Technical Analyst,
get_equity_historicals,get_equity_quotes,get_index_quotes,run_scan,get_scans,get_watchlist_items. - Macro / News Analyst,
WebSearch,WebFetch,get_index_quotes,get_indexes,get_earnings_calendar. - Risk Manager,
get_portfolio,get_equity_positions,get_accounts,get_equity_orders,get_equity_quotes(read-only).
See The Desk Team for each role's full definition and Configuration for how frontmatter and settings fit together.
Kill switch
You can sever the connection at any time, this is your hard stop. Disconnect the MCP from the Robinhood app, or remove it locally:
claude mcp remove robinhood-trading