Robinhood Mcp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Robinhood Mcp (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
<!-- mcp-name: io.github.verygoodplugins/robinhood-mcp -->
A read-only MCP server for Robinhood portfolio research. Wraps robin_stocks to give AI assistants access to your portfolio data for analysis.
⚠️ Research Tool Only - This server provides read-only access. No trading functionality is exposed.
⚠️ Unofficial API - Uses robin_stocks unofficial API. May break without notice. Use at your own risk.
<video src="https://github.com/user-attachments/assets/c690d641-8f8d-4bbd-8462-3d2c2e25b38e" controls muted playsinline></video>
<p><a href="https://github.com/verygoodplugins/robinhood-mcp/pull/20#issuecomment-4579826755">Watch the simulated product demo</a></p>
This demo uses simulated account data and a generic assistant interface. It shows read-only research workflows only; it does not show real credentials, real holdings, professional advice, or trade execution.
Once connected, you can have natural conversations with Claude about your portfolio:
"Give me a health check on my portfolio. What's my total value, sector concentration, and any positions that are significantly up or down?"
Claude will pull your positions, calculate sector exposure, identify your best and worst performers, and flag any concentration risks.
"I'm thinking about adding to my NVDA position. Show me the fundamentals, recent news, analyst ratings, and how it's performed over the past year."
Get comprehensive research combining price history, P/E ratios, earnings dates, and analyst sentiment in one response.
"Compare the cruise lines in my portfolio - show me CCL, RCL, and NCLH side by side with their P/E ratios, market caps, and year-to-date performance."
Quickly evaluate similar holdings to identify relative value.
"What dividends have I received this year? Which of my holdings pay dividends and what are their yields?"
Track your passive income and identify dividend opportunities in your portfolio.
"What's my exposure to the energy sector? How concentrated am I in my top 5 holdings?"
Analyze sector concentration and identify positions that might be overweight.
"Which of my holdings have earnings coming up in the next two weeks?"
Stay ahead of earnings volatility with a personalized calendar.
"Break down my portfolio returns. What's driving my gains and losses?"
Understand which positions are contributing most to your performance.
"Show me my HIMS order history - every buy and sell with prices and dates."
Review the executed orders behind your positions, with per-fill detail useful for cost-basis and tax research.
"Pull quotes and fundamentals for everything in my watchlist. Which ones look interesting right now?"
Bulk research stocks you're tracking.
pip install robinhood-mcpOr run directly with uvx:
uvx robinhood-mcpexport 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 approvalFor Claude Desktop and other headless deployments, you have two paths:
ROBINHOOD_TOTP_SECRET to thebase32 authenticator-app secret (found at Account → Security → Two-Factor Authentication in the Robinhood mobile app or at robinhood.com). Login is fast, non-interactive, and survives restarts.
ROBINHOOD_TOTP_SECRET unset. Thefirst tool call after a restart triggers a push notification in the Robinhood mobile app — tap "Approve" within ROBINHOOD_APPROVAL_TIMEOUT seconds (default 60). After that one approval, the session is cached in ~/.tokens/robinhood.pickle and reused for days/weeks, with no further interaction until natural expiry.
Newer Robinhood accounts that use passkeys or biometric login as their primary 2FA may not surface a TOTP option in either the iOS app or web settings — push approval works fine for these accounts.
After an authentication failure the server caches the error for ~5 minutes so subsequent tool calls fail fast instead of re-blocking the MCP server while re-attempting the full login flow. Restart Claude Desktop to retry sooner.
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"robinhood": {
"command": "uvx",
"args": ["robinhood-mcp"],
"env": {
"ROBINHOOD_USERNAME": "your_email",
"ROBINHOOD_PASSWORD": "your_password"
}
}
}
}If your account has TOTP enrollment available, add "ROBINHOOD_TOTP_SECRET": "your_2fa_secret" to the env block above.
claude mcp add robinhood -- uvx robinhood-mcp| Tool | Description |
|---|---|
robinhood_get_accounts | Account numbers for available Robinhood accounts |
robinhood_get_portfolio | Portfolio value, equity, buying power, day change |
robinhood_get_positions | All holdings with cost basis, current value, P&L |
robinhood_get_position | One holding by ticker with quantity, value, and P&L |
robinhood_get_watchlist | Stocks in your watchlists |
robinhood_get_quote | Real-time price, bid/ask, volume |
robinhood_get_fundamentals | P/E ratio, market cap, dividend yield, 52-week range |
robinhood_get_historicals | OHLCV price history (day/week/month/year) |
robinhood_get_news | Recent news articles for a symbol |
robinhood_get_earnings | Earnings dates, EPS estimates, actuals |
robinhood_get_ratings | Analyst buy/hold/sell ratings |
robinhood_get_dividends | Dividend payment history |
robinhood_get_options_positions | Current options positions |
robinhood_get_order_history | Order history (buys/sells) with per-fill detail |
robinhood_search_symbols | Search stocks by name or ticker |
If your Robinhood login has multiple accounts, call robinhood_get_accounts first and pass the returned account_number to account-scoped tools. Omit account_number to use Robinhood's default account.
Tools with optional account_number support:
robinhood_get_portfoliorobinhood_get_positionsrobinhood_get_positionrobinhood_get_dividendsrobinhood_get_options_positionsrobinhood_get_order_historySimple queries:
For single-symbol portfolio questions, prefer robinhood_get_position over robinhood_get_positions. The single-symbol tool avoids rebuilding every holding and is much faster for questions like "Should I add more HIMS?"
Analysis requests:
Research workflows:
~/.tokens/robinhood.pickle by robin_stocks.env file or expose credentialsgit 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" errors:
ROBINHOOD_TOTP_SECRETcached session and no ROBINHOOD_TOTP_SECRET, so the server is waiting for you to approve a push notification in the Robinhood mobile app. Tap "Approve" within ROBINHOOD_APPROVAL_TIMEOUT seconds (default 60) and call the tool again — the session pickle is now cached and subsequent calls won't prompt. If TOTP is available on your account, adding ROBINHOOD_TOTP_SECRET removes the prompt entirely. After a failure the server caches the error for ~5 min; restart Claude Desktop to retry sooner.
"Non-base32 digit found" error:
ROBINHOOD_TOTP_SECRET entirelyRate limiting:
MIT
This tool is for educational and research purposes only. It uses unofficial APIs that may break at any time. The authors are not responsible for any account restrictions, data inaccuracies, or financial losses.
This project is not affiliated with, endorsed by, or connected to Robinhood Markets, Inc.
Set up a cron job to get a daily portfolio briefing:
# ~/.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 coffeeRun it daily:
# 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.Built with 🧡 by Jack Arturo at Very Good Plugins.
Powered by robin_stocks and FastMCP.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.