Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Read your Robinhood Agentic brokerage account via the Robinhood Trading MCP - portfolio, buying power, positions, and order history - and place a single operator-instructed trade. OAuth Connect via the dashboard MCP panel.
.claude/skills/aeonfun-robinhood-mcp/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-18 | ✗→✓ | ▲ Improved | 13% | 0% |
| case-12 | ✗→✓ | ▲ Improved | 316% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 355% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 339% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 462% | 0% |
> ${var} — empty = portfolio report (read-only). orders[:N] = last N orders (default 10). trade:<instruction> = place one order, e.g. trade: buy $50 of AAPL — the only branch that writes. Anything else = treat as a question about the account and answer it read-only.
Access the operator's Robinhood Agentic Trading account through the Robinhood MCP server (agent.robinhood.com/mcp/trading). Trades execute in a dedicated Agentic brokerage account the operator authorized — real money, irreversible. The default posture is read-only reporting; an order is placed only when ${var} explicitly instructs it.
The server is wired by the dashboard MCP panel's one-click Connect (OAuth; tokens stored as MCP_ROBINHOOD_TRADING_TOKEN + MCP_ROBINHOOD_TRADING_OAUTH, refreshed each run by scripts/mcp-oauth-refresh.sh). Its tools surface as mcp__robinhood-trading__* — discover them from the server; the tool descriptions are the source of truth, don't assume a fixed list.
mcp__robinhood-trading__* tool callable → the server isn't connected (or its secrets are missing, in which case the workflow logged a ::warning:: and skipped MCP). Log RH_MCP_NOT_CONNECTED, notify once pointing the operator at the dashboard → MCP → Connect Robinhood Trading, and exit. Don't try to reach the API with curl — there is no static key.GH_SECRETS_PAT — see docs/mcp-oauth.md). Log RH_MCP_AUTH_STALE, notify the operator to re-connect the server once in the dashboard, and exit. Don't retry the same call more than twice.Whatever the branch, start with the reads — portfolio value, buying power, positions (symbol, quantity, cost basis, current value, unrealized P/L), and open orders. For orders[:N], pull order history and take the most recent N (default 10) with status, side, symbol, quantity/notional, and fill price.
${var} starts with trade:)Operator-initiated only — never trade on a scheduled/default run, and never invent an order.
RH_MCP_ORDER_REFUSED, notify with what was missing, and exit.RH_MCP_ORDER_ERROR with the error body — never claim an order was placed without an order id back.This skill is on-demand — deliver the result via ./notify -f <file> (ordinary Markdown), exactly one ./notify call per run (each call overwrites the .pending-<skill>.md file the chain artifact is captured from — a second ping would clobber the report):
success for a placed order, warn for a refusal.This skill is read-only, so it can't write the repo during the run (the sandbox write-locks the workspace). Don't append to memory/logs/ yourself — put this record in your final output; the workflow persists it to memory/logs/ and output/.chains/robinhood-mcp.md on your behalf after the run:
### robinhood-mcp
- Branch: portfolio | orders | trade
- Result: RH_MCP_OK | RH_MCP_ORDER_PLACED id=… | RH_MCP_ORDER_REFUSED reason=… | RH_MCP_NOT_CONNECTED | RH_MCP_AUTH_STALE | RH_MCP_ERROR
- Snapshot: value=$… bp=$… positions=N${var} spells out. Never recommend a trade in the notify.trade: instruction that describes multiple orders is refused, not partially executed.Other measured skills in the registry, with their headline benchmark lift.