Agent Skillsaeonfun/aeon › robinhood-mcp

robinhood-mcp

GitHub

通过 Robinhood MCP 连接经纪账户,支持读取投资组合、持仓及订单历史等只读信息。当变量包含 trade: 指令时,解析并执行单笔交易,具备严格的参数校验与安全机制。

skills/robinhood-mcp/SKILL.md aeonfun/aeon

Trigger Scenarios

用户查询 Robinhood 账户资产或持仓 用户发出明确的交易指令如 buy/sell

Install

npx skills add aeonfun/aeon --skill robinhood-mcp -g -y
More Options

Use without installing

npx skills use aeonfun/aeon@robinhood-mcp

指定 Agent (Claude Code)

npx skills add aeonfun/aeon --skill robinhood-mcp -a claude-code -g -y

安装 repo 全部 skill

npx skills add aeonfun/aeon --all -g -y

预览 repo 内 skill

npx skills add aeonfun/aeon --list

SKILL.md

Frontmatter
{
    "name": "robinhood-mcp",
    "metadata": {
        "mcp": [
            "robinhood-trading"
        ],
        "var": "",
        "mode": "read-only",
        "tags": [
            "markets",
            "trading",
            "mcp"
        ],
        "title": "Robinhood MCP",
        "category": "crypto",
        "capabilities": [
            "external_api",
            "writes_external_host",
            "sends_notifications"
        ]
    },
    "description": "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."
}

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

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.

Version History

  • fc05537 Current 2026-08-05 22:15

    采用Agent Skills规范格式重构元数据,移除OKF系统,更新前端解析逻辑以支持块级列表,并重新生成验证锁文件。

  • 2353ebd 2026-08-05 01:56

    修复只读模式下日志写入失败问题,将记录输出至最终结果而非直接写文件;修正 notify 命令参数格式。

  • ed82d8a 2026-07-31 03:02

    将MCP OAuth刷新所需的PAT密钥名称从MCP_SECRETS_PAT标准化重命名为GH_SECRETS_PAT,以统一服务于MCP和Grok两个功能的OAuth刷新持久化路径。

  • d96f176 2026-07-19 14:10

Same Skill Collection

skills/action-converter/SKILL.md
skills/aeon-doctor/SKILL.md
skills/aeon-update/SKILL.md
skills/article/SKILL.md
skills/auto-merge/SKILL.md
skills/auto-workflow/SKILL.md
skills/autoresearch/SKILL.md
skills/bd-radar/SKILL.md
skills/changelog/SKILL.md
skills/code-health/SKILL.md
skills/competitor-monitor/SKILL.md
skills/cost-report/SKILL.md
skills/create-skill/SKILL.md
skills/ctrl/SKILL.md
skills/defi-overview/SKILL.md
skills/deploy-prototype/SKILL.md
skills/deploy-uni-hook/SKILL.md
skills/digest/SKILL.md
skills/distribute-tokens/SKILL.md
skills/ecosystem-pulse/SKILL.md
skills/executor-mcp/SKILL.md
skills/fear-divergence/SKILL.md
skills/feature/SKILL.md
skills/fetch-tweets/SKILL.md
skills/finance-district-mcp/SKILL.md
skills/fleet-control/SKILL.md
skills/fork-fleet/SKILL.md
skills/github-monitor/SKILL.md
skills/github-trending/SKILL.md
skills/glim-mcp/SKILL.md
skills/heartbeat/SKILL.md
skills/higgsfield/SKILL.md
skills/hunter-22/SKILL.md
skills/idea-forge/SKILL.md
skills/idea-pipeline/SKILL.md
skills/inbox-triage/SKILL.md
skills/install-skill/SKILL.md
skills/investigation-report/SKILL.md
skills/issue-triage/SKILL.md
skills/last30/SKILL.md
skills/memory-flush/SKILL.md
skills/mention-radar/SKILL.md
skills/monitor-polymarket/SKILL.md
skills/narrative-convergence/SKILL.md
skills/narrative-tracker/SKILL.md
skills/okf-export/SKILL.md
skills/okf-ingest/SKILL.md
skills/onchain-monitor/SKILL.md
skills/operator-scorecard/SKILL.md
skills/pack-submit/SKILL.md

Metadata

Files
0
Version
a59b691
Hash
6d16aed1
Indexed
2026-07-19 14:10

Accueil - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-08-31 21:28
浙ICP备14020137号-1 $Carte des visiteurs$