mcp-robinhood
Provides tools for interacting with Robinhood brokerage accounts, enabling portfolio viewing, trading, quotes, and account management.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-robinhoodshow my portfolio"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@striderlabs/mcp-robinhood
An MCP (Model Context Protocol) server connector for Robinhood that enables AI agents to interact with Robinhood brokerage accounts via browser automation.
Features
View Portfolio — Get all positions, values, and performance
Get Quotes — Real-time stock and crypto prices
Account Balance — Buying power, cash balance, total value
Watchlists — View your Robinhood watchlists
Order History — Recent trades and their statuses
Place Trades — Buy/sell stocks with market or limit orders (dry-run mode available)
Related MCP server: Cloudflare Playwright MCP
Installation
npm install -g @striderlabs/mcp-robinhood
# Install Playwright browsers
npx playwright install chromiumConfiguration
Set your Robinhood credentials as environment variables:
export ROBINHOOD_USERNAME="your@email.com"
export ROBINHOOD_PASSWORD="yourpassword"
export ROBINHOOD_MFA_CODE="123456" # If MFA is enabled
export ROBINHOOD_HEADLESS="true" # Set to "false" to see the browserUsage with Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"robinhood": {
"command": "mcp-robinhood",
"env": {
"ROBINHOOD_USERNAME": "your@email.com",
"ROBINHOOD_PASSWORD": "yourpassword",
"ROBINHOOD_HEADLESS": "true"
}
}
}
}Available Tools
Tool | Description |
| Login to Robinhood |
| View all positions and values |
| Get stock/crypto price |
| Get buying power and cash balance |
| View watchlists |
| View recent orders |
| Buy or sell stocks (use |
| Close the browser session |
Trade Safety
The robinhood_place_trade tool defaults to dry_run: true for safety. To execute real trades, explicitly set dry_run: false.
Example usage:
# Preview a trade
robinhood_place_trade(action="buy", symbol="AAPL", order_type="market", quantity=1, dry_run=true)
# Execute a real trade
robinhood_place_trade(action="buy", symbol="AAPL", order_type="market", quantity=1, dry_run=false)Requirements
Node.js >= 18
Playwright with Chromium installed
A Robinhood account
Disclaimer
This tool uses browser automation and is not affiliated with Robinhood. Use responsibly and ensure compliance with Robinhood's Terms of Service. Trading involves financial risk.
License
MIT
Available Tools
8 toolsrobinhood_get_account_balanceA
Get the account balance including buying power, cash balance, and total portfolio value.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations present; description partially fills gap by listing returned fields, but does not disclose preconditions, side effects, or response structure. Since it's a read operation with no params, it's minimally adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no wasted words, front-loaded with verb and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless get-balance tool with no output schema, the description covers core purpose and return fields. Could mention return format or access requirements, but adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters, so description cannot add param semantics. Baseline score of 4 applies as per rules.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it retrieves account balance and lists specific components (buying power, cash balance, total portfolio value), distinguishing it from sibling tools like get_portfolio or get_order_history.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implicitly clear when to use (when needing balance info), but lacks explicit guidance on when not to use or alternatives. Sibling tool names provide context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
robinhood_get_order_historyC
Get recent order history including buys, sells, and their statuses.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of orders to retrieve (default: 20) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description should disclose behavioral traits. It mentions 'recent' but does not define the timeframe or clarify read-only behavior. No mention of pagination, sorting, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence; it is concise but lacks important details about the tool's behavior. Not excessively verbose, but omits critical information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one optional parameter and no output schema, the description is somewhat complete but fails to explain return format or any constraints like maximum limit value. Lacks context for an agent to fully understand behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single parameter 'limit', which has its own description. The description adds no additional context about the parameter's purpose or behavior beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves recent order history including buys, sells, and statuses. However, it does not distinguish it from sibling tools like robinhood_get_portfolio or robinhood_get_watchlist, which retrieve different data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., robinhood_get_account_balance for account-level data). No mention of prerequisites or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
robinhood_get_portfolioA
Get the current portfolio including all positions, values, and performance. Requires login first.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. States 'Requires login' which is a key constraint, but does not disclose read-only nature, error handling, or data freshness.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences: first states purpose, second adds prerequisite. No redundant words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a zero-parameter retrieval tool. Lists returned data types (positions, values, performance) and prerequisite. Could benefit from noting read-only nature or default user context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters; schema coverage 100%. Description appropriately implies no input needed, though could clarify that it returns data for the logged-in user.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it gets the current portfolio with all positions, values, and performance. Distinct from siblings like robinhood_get_account_balance or robinhood_get_watchlist.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Specifies a prerequisite (requires login first) which guides usage. Implicitly distinguished from other tools by scope, but no explicit when-not or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
robinhood_get_quoteB
Get the current stock or crypto quote/price for a given symbol.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Stock ticker symbol (e.g., AAPL, TSLA) or crypto symbol (e.g., BTC, ETH) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, and the description does not disclose any behavioral traits beyond the basic action. It fails to mention authentication requirements, error handling (e.g., invalid symbol), or data freshness guarantees, which are critical for an API tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no filler. All words contribute directly to the purpose, and it is appropriately front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description should at least hint at the return format or additional fields (e.g., bid/ask). It also lacks authentication context. However, for a simple quote tool, the minimal description may suffice for an experienced agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage with a clear description and examples. The tool description adds minimal extra value by stating 'current stock or crypto quote/price', which slightly expands context but does not materially improve understanding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies the action ('Get'), the resource ('current stock or crypto quote/price'), and the input ('given symbol'). It uniquely distinguishes itself from sibling tools (e.g., account balance, order history, portfolio) by focusing solely on quotes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, nor does it mention prerequisites like login status. Usage context is only implied through the tool's name and sibling set.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
robinhood_get_watchlistB
Get the current watchlist(s) from Robinhood.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Name of specific watchlist to retrieve (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description is too brief. It does not disclose behavioral traits like authentication requirements, rate limits, or behavior when no watchlist exists. The description adds little beyond the name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with the main action. No wasted words, though could be slightly more informative without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple retrieval tool with one optional parameter and no output schema, the description is adequate but lacks context on authentication, errors, and expected behavior. More detail would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with the optional 'name' parameter already described in the schema. The tool description does not add any extra semantic meaning or usage nuance beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the action 'Get' and resource 'current watchlist(s) from Robinhood', distinguishing it from sibling tools like robinhood_get_account_balance or robinhood_place_trade.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. The context of sibling tools implies usage, but no when-to-use or when-not-to-use information is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
robinhood_loginB
Login to Robinhood. Credentials can be provided as arguments or set via ROBINHOOD_USERNAME and ROBINHOOD_PASSWORD environment variables.
| Name | Required | Description | Default |
|---|---|---|---|
| mfa_code | No | MFA/2FA code if required (optional if set via env var ROBINHOOD_MFA_CODE) | |
| password | No | Robinhood password (optional if set via env var ROBINHOOD_PASSWORD) | |
| username | No | Robinhood username/email (optional if set via env var ROBINHOOD_USERNAME) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so description carries full burden. It mentions login and credential methods but omits behavioral traits like session management, authentication requirements, or side effects. MFA implication is weak.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core purpose. No redundant or extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a login tool, misses important context like return values (session tokens), error handling, and post-login behavior. No output schema exacerbates the gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with per-parameter descriptions. The description adds environment variable context, but the schema already mentions env var fallback for each parameter. Minimal added value beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Login to Robinhood', a specific verb+resource action that distinguishes it from sibling tools like robinhood_get_account_balance or robinhood_place_trade.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implied that login is a prerequisite for other tools, but no explicit guidance on when to use or not use it. It explains credential options but does not clarify prerequisites or sequence.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
robinhood_logoutA
Logout from Robinhood and close the browser session.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description mentions closing the browser session, which implies ending the session, but does not elaborate on side effects like token invalidation or the need to re-login. Still, it provides adequate transparency for a simple action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no unnecessary words, perfectly front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no parameters and no output schema, the description sufficiently explains the tool's purpose. It could be enhanced with more behavioral details, but given the tool's simplicity, it is largely complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so the description does not need to add meaning beyond the schema. It correctly states the action without parameter-related distractions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (logout) and the resource (Robinhood) and distinguishes it from sibling tools like login and account operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives, though the context of sibling tools implies it is used after login or when the session should end. A brief note on preconditions would improve this.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
robinhood_place_tradeA
Place a buy or sell order on Robinhood. Use dry_run: true to preview without executing. CAUTION: This places real trades with real money.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Whether to buy or sell | |
| symbol | Yes | Stock ticker symbol (e.g., AAPL, TSLA) | |
| dry_run | No | If true, simulate the trade without actually placing it (default: true for safety) | |
| quantity | No | Number of shares to buy/sell (use this OR dollar_amount) | |
| order_type | Yes | Order type: market (execute at current price) or limit (execute at specified price) | |
| limit_price | No | Price per share for limit orders (required for limit orders) | |
| dollar_amount | No | Dollar amount to invest (use this OR quantity) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It warns that trades are real and suggests dry_run for preview, but does not disclose authentication requirements, rate limits, or error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loading the purpose (Place a buy/sell order) and then providing a key usage hint. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 7 parameters and no output schema. The description explains the core action and dry_run, but does not mention return values, confirmation behavior, or unique parameter interactions (e.g., quantity vs dollar_amount). Sufficient but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the input schema already details each parameter. The description adds only the suggestion to use dry_run, which is already in the schema. It does not add new semantic context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool places buy/sell orders on Robinhood, with a specific verb and resource. It differentiates from sibling tools by directly addressing order placement, unlike account or portfolio tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions using dry_run:true to preview, and warns about real trades. However, it lacks explicit guidance on when not to use (e.g., requiring funds) or alternatives among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
8 tool updates
v1.0.0- First observed
robinhood_get_account_balance - First observed
robinhood_get_order_history - First observed
robinhood_get_portfolio - First observed
robinhood_get_quote - First observed
robinhood_get_watchlist - First observed
robinhood_login - First observed
robinhood_logout - First observed
robinhood_place_trade
TDQS
Each tool has a clearly distinct purpose: login, logout, account balance, order history, portfolio, quote, watchlist, place trade. No overlap in functionality.
All tools follow a consistent 'robinhood_verb_noun' pattern, e.g., robinhood_get_account_balance, robinhood_place_trade. No mixing of conventions.
Eight tools cover essential Robinhood interactions: authentication, account info, trading, and market data. Scope is well-balanced without being excessive or sparse.
Core workflows are covered (login, view balance/portfolio/orders, place trade, get quote). Missing tools for canceling orders or viewing order details, but the surface is functional for basic trading.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Stealth web automation for AI agents. Login, signup, navigate, screenshot.
Stealth web automation for AI agents. Login, signup, navigate, screenshot.
Provides cloud browser automation capabilities using Stagehand and Browserbase, enabling LLMs to i…
- BankSyncOAuthio.banksync
Connect AI agents to bank accounts, transactions, balances, and investments.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to read balances, positions, and transaction history, and place limit sell orders on Fidelity Investments accounts via Playwright browser automation.MIT
- FlicenseNot gradedqualityCmaintenanceEnables AI assistants to control a browser for web automation tasks like navigation, typing, clicking, and taking screenshots.-
- AlicenseAqualityAmaintenanceEnables AI agents to trade on Interactive Brokers: check quotes, balance, positions, and execute buy/sell orders (including fractional shares by dollar amount) via the Client Portal API.2012MIT
- FlicenseNot gradedqualityDmaintenanceEnables portfolio management, trading, and automated bot operations for Robinhood accounts through MCP tools like get_portfolio, buy_stock, sell_stock, and bot management.1-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/markswendsen-code/mcp-robinhood'
If you have feedback or need assistance with the MCP directory API, please join our Discord server