关于 Robinhood Portfolio Research
Robinhood Portfolio Research 是一个只读的 MCP 服务,封装非官方的 robin_stocks 库,供 AI 助手分析 Robinhood 投资组合数据。它面向希望借助 AI 进行持仓研究的个人投资者。项目不提供交易功能,所有工具均为查询型。
主要功能
- 01查询账户、持仓与投资组合价值
- 02获取报价、基本面与历史价格
- 03查看新闻、财报日期与分析师评级
- 04查询股息记录与期权持仓
- 05按标的代码查询订单历史
- 06支持 TOTP 或推送审批两种登录方式
适用场景
- 01对投资组合进行集中度和板块敞口分析
- 02在买入前汇总标的的基本面与近期新闻
- 03查看持仓的股息记录与即将到来的财报日期
MCP 相关
该项目是一个 MCP 服务,向 MCP 客户端暴露约 15 个只读工具,例如 robinhood_get_positions 和 robinhood_get_quote。它通过 robin_stocks 访问 Robinhood 数据。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
12收录的工具列表 · 更新于 2 周前
此工具无需参数。
详细介绍
robinhood-mcp
用于 Robinhood 投资组合研究的只读 MCP 服务。它封装了 robin_stocks,让 AI 助手能够访问你的投资组合数据并进行分析。
⚠️ 仅供研究使用 - 此服务仅提供只读访问,不开放任何交易功能。
⚠️ 非官方 API - 使用 robin_stocks 非官方 API。该 API 可能会在不另行通知的情况下失效。使用风险自负。
演示
此演示使用模拟账户数据和通用助手界面,仅展示只读研究工作流;不展示真实凭据、真实持仓、专业建议或交易执行。
你可以用它做什么?
连接后,你可以用自然语言与 Claude 讨论你的投资组合:
投资组合健康检查
“检查一下我的投资组合状况。总价值是多少?行业集中度如何?哪些持仓涨跌幅较大?”
Claude 会获取你的持仓、计算行业敞口、找出表现最好和最差的资产,并标记任何集中度风险。
买入前研究
“我考虑增持 NVDA。请展示它的基本面、近期新闻、分析师评级,以及过去一年的表现。”
通过一份回复,整合价格历史、市盈率、财报日期和分析师情绪,提供全面研究。
比较投资标的
“比较我投资组合中的邮轮公司——并排列出 CCL、RCL 和 NCLH 的市盈率、市值和年初至今的表现。”
快速评估相似持仓,找出相对价值。
股息分析
“我今年收到了多少股息?我的哪些持仓会派发股息,股息收益率是多少?”
跟踪被动收入,并发现投资组合中的股息机会。
风险评估
“我的能源行业敞口有多大?前 5 大持仓的集中度如何?”
分析行业集中度,并找出权重可能过高的持仓。
财报日历
“我的哪些持仓将在接下来两周发布财报?”
借助个性化日历,提前应对财报波动。
表现归因
“分析一下我的投资组合回报。哪些因素推动了收益和亏损?”
了解哪些持仓对投资表现的影响最大。
交易历史
“显示我的 HIMS 订单历史——每笔买入和卖出及其价格和日期。”
查看持仓背后的已执行订单,并提供逐笔成交详情,便于研究成本基础和税务。
自选列表研究
“获取我自选列表中所有标的的报价和基本面。现在有哪些值得关注?”
批量研究你正在跟踪的股票。
安装
pip install robinhood-mcp
或者使用 uvx 直接运行:
uvx robinhood-mcp
配置
环境变量
export ROBINHOOD_USERNAME="your_email"
export ROBINHOOD_PASSWORD="your_password"
export ROBINHOOD_TOTP_SECRET="your_2fa_secret" # if your account exposes TOTP (see below)
export ROBINHOOD_APPROVAL_TIMEOUT="60" # optional — seconds to wait for push approval
对于 Claude Desktop 和其他无头部署,你有两种方式:
- TOTP(如果你的账户支持)。 将
ROBINHOOD_TOTP_SECRET设置为 Base32 格式的身份验证器应用密钥(可在 Robinhood 手机应用的 账户 → 安全性 → 双重身份验证 中,或在 robinhood.com 上找到)。登录快速、无需交互,并且重启后仍然有效。 - 否则,使用推送审批。 不设置
ROBINHOOD_TOTP_SECRET。重启后的 第一次工具调用会触发 Robinhood 手机应用中的推送通知——在ROBINHOOD_APPROVAL_TIMEOUT秒内(默认 60 秒)点按“批准”。完成这一次审批后,会话会缓存到~/.tokens/robinhood.pickle中,并可重复使用数天或数周,直到自然过期前都无需进一步交互。
较新的 Robinhood 账户若以通行密钥或生物识别登录作为主要 双重身份验证方式,iOS 应用或网页设置中可能都不会显示 TOTP 选项—— 推送审批对这些账户同样适用。
身份验证失败后,服务会将错误缓存约 5 分钟,这样后续工具调用会快速失败, 而不会在重新尝试完整登录流程时再次阻塞 MCP 服务。重启 Claude Desktop 可更快重试。
Claude Desktop
添加到 ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"robinhood": {
"command": "uvx",
"args": ["robinhood-mcp"],
"env": {
"ROBINHOOD_USERNAME": "your_email",
"ROBINHOOD_PASSWORD": "your_password"
}
}
}
}
如果你的账户支持注册 TOTP,请在上方的 env 块中添加
"ROBINHOOD_TOTP_SECRET": "your_2fa_secret"。
Claude Code
claude mcp add robinhood -- uvx robinhood-mcp
可用工具
| 工具 | 描述 |
|---|---|
robinhood_get_accounts | 可用 Robinhood 账户的账号号码 |
robinhood_get_portfolio | 投资组合价值、权益、购买力、当日变动 |
robinhood_get_positions | 所有持仓及其成本基础、当前价值和盈亏 |
robinhood_get_position | 按股票代码查询单项持仓,包括数量、价值和盈亏 |
robinhood_get_watchlist | 自选列表中的股票 |
robinhood_get_quote | 实时价格、买入价/卖出价、成交量 |
robinhood_get_fundamentals | 市盈率、市值、股息收益率、52 周区间 |
robinhood_get_historicals | OHLCV 价格历史(日/周/月/年) |
robinhood_get_news | 某个股票代码的近期新闻文章 |
robinhood_get_earnings | 财报日期、每股收益预估值、实际值 |
robinhood_get_ratings | 分析师的买入/持有/卖出评级 |
robinhood_get_dividends | 股息支付历史 |
robinhood_get_options_positions | 当前期权持仓 |
robinhood_get_order_history | 订单历史(买入/卖出),含每笔成交的详细信息 |
robinhood_search_symbols | 按名称或股票代码搜索股票 |
账户选择
如果你的 Robinhood 登录名关联了多个账户,请先调用 robinhood_get_accounts,
并将返回的 account_number 传递给账户范围内的工具。省略
account_number 则使用 Robinhood 的默认账户。
支持可选 account_number 的工具:
robinhood_get_portfoliorobinhood_get_positionsrobinhood_get_positionrobinhood_get_dividendsrobinhood_get_options_positionsrobinhood_get_order_history
示例对话
简单查询:
- “我现在的投资组合价值是多少?”
- “按市值显示我持仓最多的 5 只股票”
- “我已经持有 HIMS 吗?当前持仓是多少?”
- “列出我的 Robinhood 账户,然后显示 IRA 账户的持仓。”
- “查询 AAPL 的报价”
对于单只股票的投资组合问题,优先使用 robinhood_get_position,而不是
robinhood_get_positions。单只股票工具无需重新构建所有持仓,处理“我应该再买一些 HIMS 吗?”这类问题时速度快得多。
分析请求:
- “比较 GOOGL 和 META 的基本面”
- “我的哪些股票的交易价格低于其 52 周均价?”
- “显示 TSLA 过去一年的价格走势图”
- “我表现最好和最差的股票分别是哪只?”
研究工作流:
- “我想了解邮轮行业。获取 CCL、RCL 和 NCLH 的数据,比较它们的基本面和近期表现。”
- “找出我投资组合中市盈率低于 15 且盈利增长为正的股票”
- “我有几项持仓亏损严重。显示表现最差持仓的基本面和新闻,帮助我决定是继续持有还是止损。”
限制
- 只读:无法进行交易、修改自选列表或更改账户设置
- 非官方 API:Robinhood 可能随时更改其 API,导致功能失效
- 不支持实时流:报价是某个时间点的数据,而非实时数据流
- 会话过期:你可能需要定期重新进行身份验证
- 速率限制:大量使用可能触发 Robinhood 的速率限制
安全说明
- 凭据仅在本地用于向 Robinhood 进行身份验证
- 会话令牌由 robin_stocks 缓存在
~/.tokens/robinhood.pickle中 - 切勿提交
.env文件或暴露凭据 - 此工具无法执行交易,设计上仅为只读
开发
git clone https://github.com/verygoodplugins/robinhood-mcp.git
cd robinhood-mcp
pip install -e ".[dev]"
# Lint
ruff check . && ruff format --check .
# Test
pytest
# Run locally
robinhood-mcp
故障排除
“Not logged in”错误:
- 确认用户名和密码正确
- 如果你使用身份验证器应用进行双重身份验证(2FA),则需要设置
ROBINHOOD_TOTP_SECRET - 尝试通过 Robinhood 应用登录,确保账户未被锁定
- 工具调用短暂挂起后失败,并显示“Login returned empty result”: 没有缓存会话,也未设置
ROBINHOOD_TOTP_SECRET,因此服务正在等待你在 Robinhood 移动应用中批准推送通知。在ROBINHOOD_APPROVAL_TIMEOUT秒内(默认 60 秒)点击“Approve”,然后再次调用工具——此时会话 pickle 已缓存,后续调用不会再提示。如果你的账户支持 TOTP,添加ROBINHOOD_TOTP_SECRET即可完全移除该提示。失败后,服务会将错误缓存约 5 分钟;重启 Claude Desktop 可更快重试。
“Non-base32 digit found”错误:
- 你的 TOTP 密钥包含无效字符
- 密钥只能包含字母 A-Z 和数字 2-7
- 如果你不使用身份验证器应用,请彻底移除
ROBINHOOD_TOTP_SECRET
速率限制:
- robin_stocks 没有内置速率限制
- 如果触发速率限制,请等待几分钟后再试
许可证
MIT
免责声明
此工具仅用于教育和研究目的。它使用非官方 API,这些 API 可能随时失效。作者不对任何账户限制、数据不准确或财务损失承担责任。
本项目与 Robinhood Markets, Inc. 无关,也未获得其认可,亦未与其建立联系。
自动化示例
使用 Claude Code 每日查看投资组合
设置 cron 作业,以获取每日投资组合简报:
# ~/.claude/commands/portfolio-review.md
---
description: "Daily portfolio health check"
---
Using the robinhood MCP tools:
1. Get my current portfolio value and day change
2. Identify my top 3 gainers and top 3 losers today
3. Flag any positions that are down more than 20% from cost basis
4. Check if any holdings have earnings in the next 7 days
5. Give me a 2-3 sentence summary I can read with my morning coffee
每天运行:
# Add to crontab -e
0 7 * * 1-5 cd ~/Projects && claude -p "/portfolio-review" --dangerously-skip-permissions >> ~/portfolio-reports/$(date +\%Y-\%m-\%d).md
每周研究摘要
# ~/.claude/commands/weekly-research.md
---
description: "Weekly deep dive on portfolio"
---
For each of my top 10 holdings by value:
1. Pull current fundamentals and compare to sector averages
2. Get recent news and analyst rating changes
3. Flag any significant changes from last week
4. Identify 2-3 stocks from my watchlist that might be worth adding
Format as a markdown report I can review on the weekend.
致谢
由 Very Good Plugins 的 Jack Arturo 倾注 🧡 构建。
由 robin_stocks 和 FastMCP 提供支持。
Links
- GitHub
- PyPI
- Very Good Plugins
- AutoMem - AI memory infrastructure
- robin_stocks Documentation
- Model Context Protocol
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。