This project provides a command-line portfolio tracker for Robinhood with login, portfolio viewing, and basic trading. It also includes a paper-trading mode for safe testing.
Important: Real-money trading is risky. Use paper mode first. You are responsible for your account and regulatory compliance.
- Login using username/password or device token with session caching
- View portfolio positions, cash, performance snapshot
- Place market buy/sell orders (limit support planned)
- Paper-trading mode with local state file
- Simple momentum strategy example and rebalance command
- Create and activate a virtual environment
python3 -m venv .venv && source .venv/bin/activate- Install dependencies
pip install -r requirements.txt- Set environment variables
export RH_USERNAME="your_email@example.com"
export RH_PASSWORD="your_password"
export RH_DEVICE_TOKEN="your_device_token_optional"
export RH_PAPER="true" # set to "false" to enable live trading
# Optional: if you already have an access token from the web app
export RH_ACCESS_TOKEN="paste_access_token_here"
export RH_TOKEN_TYPE="Bearer"- Run the CLI
python -m robinhood_tracker --helplogin: Authenticate and cache sessionportfolio: Display positions, equity, and cashbuy --symbol AAPL --quantity 1: Market buysell --symbol AAPL --quantity 1: Market sellrebalance --symbols AAPL,MSFT,GOOGL --allocations 40,30,30: Example strategy
bot add --symbol AAPL --quantity 10 --stop-loss -5.0 --take-profit 10.0: Add position to monitorbot remove --symbol AAPL: Remove position from monitoringbot start --interval 5: Start bot (checks every 5 minutes)bot stop: Stop the botbot status: Show monitored positions and current P&Lbot check: Manually check all positions once
The project includes a comprehensive MCP adapter for AI model integration.
The MCP adapter provides 15 trading and portfolio management tools:
get_portfolio- Get portfolio summary and positionsget_health- Check API server statuslogin- Authenticate with Robinhood
buy_stock- Buy shares with symbol and quantitysell_stock- Sell shares with symbol and quantityrebalance_portfolio- Auto-rebalance to target allocations
get_bot_status- Get bot status and monitored positionsadd_bot_position- Add position with stop-loss/take-profitremove_bot_position- Remove position from monitoringstart_bot- Start automated trading botstop_bot- Stop automated trading botcheck_bot_positions- Manually check all positions
get_options_positions- Get current options holdingsget_options_orders- Get recent options ordersget_options_instruments- Get available options for symbol
# List all available tools
python3 mcp_robinhood_adapter.py --list-tools
# Get portfolio
python3 mcp_robinhood_adapter.py --tool get_portfolio
# Buy stock
python3 mcp_robinhood_adapter.py --tool buy_stock --params '{"symbol": "AAPL", "quantity": 1}'
# Add position to bot
python3 mcp_robinhood_adapter.py --tool add_bot_position --params '{"symbol": "AAPL", "quantity": 1, "stop_loss": 5, "take_profit": 10}'Configure your AI model to use the MCP server:
{
"mcpServers": {
"robinhood": {
"command": "python3",
"args": ["/path/to/robinhood_tracker/mcp_robinhood_adapter.py"]
}
}
}- Never commit credentials. Use environment variables or a
.envfile not tracked by git. - Paper mode writes local state to
.paper_state.json. - MCP server communicates with Python backend via local HTTP API (127.0.0.1:5000).
This is not financial advice. Use at your own risk.