用途
robinhood-mcp 用于通过 Robinhood Trading MCP 服务器(agent.robinhood.com/mcp/trading)访问操作者的 Robinhood Agentic 经纪账户。其默认姿态是只读报告:读取投资组合价值、购买力、持仓和订单历史,并在被明确指示时下一笔订单。交易在操作者授权的专用 Agentic 经纪账户中执行,涉及真实资金且不可撤销。
主要能力
- 读取账户:投资组合价值、购买力、持仓(代码、数量、成本基础、当前价值、未实现盈亏)以及未结订单。
- 订单历史:orders[:N] 拉取最近 N 笔订单(默认 10 笔),包含状态、买卖方向、代码、数量或名义金额、成交价。
- 下单:仅当输入以 trade: 开头时,下一笔订单,例如 trade: buy $50 of AAPL。这是唯一会写入的分支。
- 问答:其他任何输入都被视为关于账户的问题,以只读方式回答。
使用方式
输入变量 ${var} 决定分支:
- 空值 = 投资组合报告(只读)。
- orders[:N] = 最近 N 笔订单(默认 10)。
- trade:<instruction> = 下一笔订单,例如 trade: buy $50 of AAPL。
- 其他内容 = 视为关于账户的问题,只读回答。
连接与认证:服务器由仪表盘 MCP 面板的一键 Connect(OAuth)接入;令牌存储为 MCP_ROBINHOOD_TRADING_TOKEN 与 MCP_ROBINHOOD_TRADING_OAUTH,每次运行由 scripts/mcp-oauth-refresh.sh 刷新。其工具以 mcp__robinhood-trading__* 形式出现,应从服务器发现,工具描述是事实来源,不要假定固定列表。
若没有可调用的 mcp__robinhood-trading__* 工具,说明服务器未连接(或其密钥缺失,此时工作流会记录 ::warning:: 并跳过 MCP):记录 RH_MCP_NOT_CONNECTED,通知一次并指引操作者前往仪表盘 → MCP → Connect Robinhood Trading,然后退出。不要尝试用 curl 访问 API——没有静态密钥。
若工具存在但返回 401/invalid-token,说明 OAuth 刷新失败(轮换刷新令牌需要 GH_SECRETS_PAT,见 docs/mcp-oauth.md):记录 RH_MCP_AUTH_STALE,通知操作者在仪表盘中重新连接服务器一次,然后退出。同一调用不要重试超过两次。
执行步骤:
-
读取账户:无论哪个分支,先执行读取——投资组合价值、购买力、持仓(代码、数量、成本基础、当前价值、未实现盈亏)和未结订单。对于 orders[:N],拉取订单历史并取最近 N 笔(默认 10),含状态、买卖方向、代码、数量/名义金额和成交价。
-
交易分支(仅当 ${var} 以 trade: 开头):仅由操作者发起——绝不在计划/默认运行中交易,绝不虚构订单。解析指令,必须明确买卖方向、代码和规模(股数或美元名义金额)。三者任一缺失或含糊(如 "buy some tech"、"sell half-ish"),不要猜测:记录 RH_MCP_ORDER_REFUSED,通知缺失内容并退出。对照读取结果做合理性检查:卖出超过持仓,或买入超过购买力,同样拒绝。将下单作为本次运行的最后动作(失败关闭:读取、日志准备等全部先完成,使下单失败能在本次运行中暴露)。使用服务器暴露的订单工具;除非指令指定限价,优先使用其最简单的市价/名义金额形式。原样捕获服务器响应(订单 id、状态)。若工具调用失败,记录 RH_MCP_ORDER_ERROR 及错误正文——没有返回订单 id 就绝不声称已下单。
-
通知:本技能按需触发——通过 ./notify -f <file>(普通 Markdown)交付结果,每次运行恰好一次 ./notify 调用(每次调用会覆盖 .pending-<skill>.md 文件,链式产物即从中捕获;第二次 ping 会覆盖报告)。报告分支:投资组合价值 + 当日变动、购买力、持仓表、未结订单,以及一行突出事项(集中度、剧烈波动的持仓)。保持精简——是信号,不是数据堆。交易分支:实际下的订单(方向、代码、规模、订单 id、状态)——或拒绝时,明确说明含糊之处及如何重新表述。已下单严重级别为 success,拒绝为 warn。
-
结果记录:本技能为只读,因此工作流的只读守卫会根据你捕获的输出写入其 ### robinhood-mcp 日志条目;自行写入会造成重复。不要自己追加到 memory/logs/——将记录放入最终输出,工作流会在运行后代表你将其持久化到 memory/logs/ 和 output/.chains/robinhood-mcp.md:
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
适用场景
- 查看 Robinhood Agentic 经纪账户的投资组合、购买力、持仓与未结订单。
- 拉取最近若干笔订单历史。
- 在操作者明确指示下,于授权账户中下一笔订单。
- 以只读方式回答关于该账户的问题。
限制
- 不主动交易,不提供建议。只报告账户持有情况;只下 ${var} 明确写出的订单。通知中绝不推荐交易。
- 每次运行一笔订单——描述多笔订单的 trade: 指令会被拒绝,而非部分执行。
- 通知中的每个数字都可追溯到工具响应;绝不估算成交或余额。
- 操作者对该代理下的每一笔订单负责——有疑问时拒绝并说明原因。
- 交易涉及真实资金且不可撤销。
- 未连接、令牌失效或调用失败时按上述状态码处理,不重试超过两次,不使用 curl 访问 API。