본문으로 건너뛰기
cccskills
무료GitHub에 공개

robinhood-mcp

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.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

설치 방법 보기

포함된 파일(1)

  • SKILL.md5.3 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

${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.

Detection & auth

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.

  • No 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.
  • Tools exist but return 401/invalid-token → the OAuth refresh failed (rotating refresh tokens need 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.

Steps

1. Read the account

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.

2. Trade branch (only when ${var} starts with trade:)

Operator-initiated only — never trade on a scheduled/default run, and never invent an order.

  1. Parse the instruction. It must pin down side (buy/sell), symbol, and size (share quantity or dollar notional). If any of the three is missing or ambiguous ("buy some tech", "sell half-ish"), do not guess: log RH_MCP_ORDER_REFUSED, notify with what was missing, and exit.
  2. Sanity-check against the reads: selling more than the position holds, or buying beyond buying power → refuse the same way.
  3. Place the order as the final action of the run (fail-closed: everything else — reads, log prep — happens first, so a placement failure surfaces in this run). Use the order tool the server exposes; prefer its simplest market/notional form unless the instruction specifies a limit price.
  4. Capture the server's response verbatim (order id, status). If the tool call fails, log RH_MCP_ORDER_ERROR with the error body — never claim an order was placed without an order id back.

3. Notify

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):

  • Report branches: portfolio value + day change, buying power, a positions table, open orders, and one line of what stands out (concentration, a position moving hard). Keep it tight — signal, not a data dump.
  • Trade branch: the exact order placed (side, symbol, size, order id, status) — or, on refusal, exactly what was ambiguous and how to restate it. Severity success for a placed order, warn for a refusal.

4. Result record

This skill is read-only, so the workflow's read-only guard writes its ### robinhood-mcp log entry from your captured output; a self-written entry would be a duplicate. 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

Constraints

  • No unprompted trading, no advice. Report what the account holds; place only the order ${var} spells out. Never recommend a trade in the notify.
  • One order per run — a trade: instruction that describes multiple orders is refused, not partially executed.
  • Every figure in the notify traces to a tool response; never estimate fills or balances.
  • The operator is responsible for every order this agent places — when in doubt, refuse and say why.

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Mention/keyword sweep on social platforms for [REPLACE: KEYWORDS] — trends, sentiment, top posts

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

aeonfun/aeon7772026년 10월 18일 업데이트

Price and volume tracker for [REPLACE: TOKEN_SYMBOL] with anomaly alerts above [REPLACE: ALERT_THRESHOLD_PCT]% movement

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

aeonfun/aeon7772026년 10월 18일 업데이트

First-touch review of newly opened PRs on [REPLACE: WATCHED_REPO] — verdict + welcoming comment + label

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

aeonfun/aeon7772026년 10월 18일 업데이트

Digest of the most interesting new posts on [REPLACE: TOPIC] from RSS feeds and the open web

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

aeonfun/aeon7772026년 10월 18일 업데이트

Summary of the [REPLACE: CHANNEL_PLATFORM] channel [REPLACE: CHANNEL_NAME] — top [REPLACE: TOP_N_THREADS] threads + open questions

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

aeonfun/aeon7772026년 10월 18일 업데이트

Watch Vercel deploys for [REPLACE: VERCEL_PROJECT] — alert on [REPLACE: ALERT_ON] in the last [REPLACE: LOOKBACK_HOURS] hours

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

aeonfun/aeon7772026년 10월 18일 업데이트

aeonfun의 스킬 모두 보기

이 스킬의 문제 신고