Skip to main content
Glama
markswendsen-code

mcp-robinhood

@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 chromium

Configuration

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 browser

Usage 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

robinhood_login

Login to Robinhood

robinhood_get_portfolio

View all positions and values

robinhood_get_quote

Get stock/crypto price

robinhood_get_account_balance

Get buying power and cash balance

robinhood_get_watchlist

View watchlists

robinhood_get_order_history

View recent orders

robinhood_place_trade

Buy or sell stocks (use dry_run: true to preview)

robinhood_logout

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 tools
robinhood_get_account_balanceA

Get the account balance including buying power, cash balance, and total portfolio value.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of orders to retrieve (default: 20)

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolYesStock ticker symbol (e.g., AAPL, TSLA) or crypto symbol (e.g., BTC, ETH)

TDQS

B3.3/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoName of specific watchlist to retrieve (optional)

TDQS

B3.4/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
mfa_codeNoMFA/2FA code if required (optional if set via env var ROBINHOOD_MFA_CODE)
passwordNoRobinhood password (optional if set via env var ROBINHOOD_PASSWORD)
usernameNoRobinhood username/email (optional if set via env var ROBINHOOD_USERNAME)

TDQS

B3.4/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesWhether to buy or sell
symbolYesStock ticker symbol (e.g., AAPL, TSLA)
dry_runNoIf true, simulate the trade without actually placing it (default: true for safety)
quantityNoNumber of shares to buy/sell (use this OR dollar_amount)
order_typeYesOrder type: market (execute at current price) or limit (execute at specified price)
limit_priceNoPrice per share for limit orders (required for limit orders)
dollar_amountNoDollar amount to invest (use this OR quantity)

TDQS

A3.7/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

  1. 8 tool updatesv1.0.0
    • First observedrobinhood_get_account_balance
    • First observedrobinhood_get_order_history
    • First observedrobinhood_get_portfolio
    • First observedrobinhood_get_quote
    • First observedrobinhood_get_watchlist
    • First observedrobinhood_login
    • First observedrobinhood_logout
    • First observedrobinhood_place_trade

TDQS

A3.8/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: login, logout, account balance, order history, portfolio, quote, watchlist, place trade. No overlap in functionality.

Naming Consistency5/5

All tools follow a consistent 'robinhood_verb_noun' pattern, e.g., robinhood_get_account_balance, robinhood_place_trade. No mixing of conventions.

Tool Count5/5

Eight tools cover essential Robinhood interactions: authentication, account info, trading, and market data. Scope is well-balanced without being excessive or sparse.

Completeness4/5

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

ActivityInactive
ResponsivenessSyncing

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

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents to read balances, positions, and transaction history, and place limit sell orders on Fidelity Investments accounts via Playwright browser automation.
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Enables 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.
    20
    12
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables 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

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