Skip to main content
Glama
E*TRADE MCP Server

E*TRADE MCP Server

by jjmerri

E*TRADE MCP Server

A Model Context Protocol (MCP) server for E*TRADE's Market API, built with FastMCP.

Features

This MCP server provides access to E*TRADE's Market API endpoints:

  • Quote: Get real-time and delayed quotes for stocks, options, and mutual funds

  • Product Lookup: Search for securities by symbol or company name

  • Option Chains: Get option chains with strikes and expirations

  • Option Expire Dates: Get available expiration dates for options

Related MCP server: polygon-mcp

Installation

  1. Clone this repository

  2. Install dependencies:

pip install -e .
  1. Copy .env.example to .env and add your E*TRADE API credentials:

cp .env.example .env
  1. Edit .env and add your credentials:

ETRADE_CONSUMER_KEY=your_consumer_key_here
ETRADE_CONSUMER_SECRET=your_consumer_secret_here
ETRADE_ENVIRONMENT=sandbox  # or 'production'

Getting E*TRADE API Credentials

  1. Go to E*TRADE Developer Portal

  2. Sign up or log in with your E*TRADE account

  3. Request a Sandbox consumer key at https://us.etrade.com/etx/ris/apikey

  4. Get your Consumer Key and Consumer Secret

  5. Start with the sandbox environment for testing

Authentication

Run the authentication script to get and save your access tokens:

python authenticate.py

This will:

  1. Prompt you to visit an E*TRADE authorization URL

  2. Ask you to enter the verification code

  3. Save the access tokens to your .env file

The MCP server will automatically use these saved tokens.

Note: Access tokens expire at midnight US Eastern time, so you'll need to re-authenticate daily.

Alternative: Manual Authentication

You can also authenticate through the MCP tools:

  1. Call etrade_get_auth_url() to get the authorization URL

  2. Visit the URL in your browser and authorize the application

  3. Copy the verification code

  4. Call etrade_authenticate(verifier="YOUR_CODE") with the verification code

Usage

Running the Server

The server runs as an HTTP server on port 8000 with the MCP endpoint at /mcp:

etrade-mcp

Or with Python:

python -m etrade_mcp.server

The server will start at http://localhost:8000 with the MCP endpoint available at http://localhost:8000/mcp.

Connecting to the Server

Configure your MCP client to connect to the HTTP endpoint:

{
  "mcpServers": {
    "etrade": {
      "url": "http://localhost:8000/mcp"
    }
  }
}

Available Tools

etrade_get_auth_url()

Get the OAuth authorization URL. This is the first step in authentication.

Returns: Authorization URL to visit in browser

etrade_authenticate(verifier: str)

Complete authentication with the verification code from E*TRADE.

Args:

  • verifier: Verification code from E*TRADE

Returns: Success message

etrade_get_quote(symbols: str, require_earnings_date: bool = False, skip_mini_options_check: bool = False)

Get stock quotes for one or more symbols.

Args:

  • symbols: Comma-separated list of symbols (e.g., "AAPL,MSFT,GOOGL")

  • require_earnings_date: Include next earnings date

  • skip_mini_options_check: Skip mini options check

Returns: Quote data with prices, volume, bid/ask, etc.

etrade_lookup_product(search: str, company: str = None, type: str = None)

Look up products by symbol or company name.

Args:

  • search: Symbol or partial symbol to search

  • company: Company name (optional)

  • type: Security type - EQ, MF, OPTN (optional)

Returns: List of matching products

etrade_get_option_chains(symbol: str, ...)

Get option chains for a symbol with various filters.

Args:

  • symbol: Underlying symbol

  • expiry_year, expiry_month, expiry_day: Expiration date filters

  • strike_price_near: Filter strikes near this price

  • no_of_strikes: Number of strikes to return

  • include_weekly: Include weekly options

  • option_category: STANDARD, ALL, MINI

  • chain_type: CALL, PUT, CALLPUT

  • And more...

Returns: Option chain data

etrade_get_option_expire_dates(symbol: str, expiry_type: str = None)

Get available option expiration dates.

Args:

  • symbol: Underlying symbol

  • expiry_type: WEEKLY, MONTHLY, QUARTERLY, ALL

Returns: List of expiration dates

Example Usage with MCP Client

# Get authorization URL
auth_url = etrade_get_auth_url()
# Visit the URL, authorize, get verifier code

# Authenticate
etrade_authenticate(verifier="12345")

# Get a quote
quote = etrade_get_quote(symbols="AAPL")

# Look up a product
results = etrade_lookup_product(search="Apple")

# Get option chains
chains = etrade_get_option_chains(
    symbol="AAPL",
    chain_type="CALL",
    price_type="ATNM"
)

# Get expiration dates
dates = etrade_get_option_expire_dates(symbol="AAPL")

API Documentation

For detailed API documentation, see:

Environment Variables

  • ETRADE_CONSUMER_KEY: Your E*TRADE consumer key (required)

  • ETRADE_CONSUMER_SECRET: Your E*TRADE consumer secret (required)

  • ETRADE_ENVIRONMENT: sandbox or production (default: sandbox)

  • ETRADE_SANDBOX_BASE_URL: Sandbox API URL (default: https://apisb.etrade.com)

  • ETRADE_PROD_BASE_URL: Production API URL (default: https://api.etrade.com)

Security Notes

  • Never commit your .env file or expose your API credentials

  • Start with the sandbox environment for testing

  • OAuth tokens expire; you'll need to re-authenticate periodically

  • Production environment requires additional E*TRADE account approvals

Reference

This server is based on E*TRADE's sample Python client, which is included in the EtradePythonClient directory for reference.

License

MIT

Available Tools

6 tools
etrade_authenticateB

Complete E*TRADE OAuth authentication with verification code.

Args: verifier: The verification code received after authorizing the application

Returns: Success message

Inputs: verifier (required). Returns: result

etrade_get_auth_urlA

Get E*TRADE OAuth authorization URL. This is the first step in authentication - returns a URL for the user to visit.

Returns: Authorization URL that the user should visit in their browser

Inputs: no named parameters. Returns: result

etrade_get_option_chainsB

Get option chains for a symbol.

Args: symbol: Underlying stock symbol (e.g., "AAPL") expiry_year: Expiration year (4-digit, e.g., 2024) expiry_month: Expiration month (1-12) expiry_day: Expiration day (1-31) strike_price_near: Strike price near this value no_of_strikes: Number of strikes to return include_weekly: Include weekly options skip_adjusted: Skip adjusted options option_category: STANDARD, ALL, or MINI chain_type: CALL, PUT, or CALLPUT price_type: ATNM (at the money) or ALL

Returns: Option chain data with available strikes and expiration dates

Inputs: symbol (required), expiry_year, expiry_month, expiry_day, +7 more. Returns: object

etrade_get_option_expire_datesB

Get option expiration dates for a symbol.

Args: symbol: Underlying stock symbol (e.g., "AAPL") expiry_type: WEEKLY, MONTHLY, QUARTERLY, or ALL (optional)

Returns: List of available expiration dates for options

Inputs: symbol (required), expiry_type. Returns: object

etrade_get_quoteB

Get stock quote for one or more symbols.

Args: symbols: Comma-separated list of stock symbols (e.g., "AAPL", "MSFT,GOOGL") require_earnings_date: If true, return next earnings date skip_mini_options_check: If true, skip check for mini options

Returns: Quote data including price, volume, bid/ask, and other market information

Inputs: symbols (required), require_earnings_date, skip_mini_options_check. Returns: object

etrade_lookup_productC

Look up products by symbol or company name.

Args: search: Full or partial symbol name to search for company: Full or partial company name (optional) type: Security type - EQ (equity), MF (mutual fund), OPTN (option) (optional)

Returns: List of matching products with details

Inputs: search (required), company, type. Returns: object

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.5/5.0

    Scored across 6 tools

    Disambiguation5/5

    Each tool has a clearly distinct purpose with no overlap. Authentication tools handle OAuth flow, option tools retrieve chains and expiration dates, quote tool gets market data, and lookup tool searches for products. An agent can easily distinguish between these functions.

    Naming Consistency5/5

    All tools follow a consistent 'etrade_verb_noun' pattern with snake_case throughout. The naming convention is perfectly uniform across all six tools, making them predictable and easy to understand.

    Tool Count4/5

    Six tools is reasonable for an E*TRADE API server, covering authentication, options data, quotes, and product lookup. While slightly lean, it provides core functionality without being overwhelming or insufficient for the domain.

    Completeness3/5

    The server covers authentication, options data retrieval, quotes, and product lookup well. However, there are notable gaps for a trading platform: no tools for account management (balances, positions), order placement (buy/sell), or portfolio analysis, which limits comprehensive trading workflows.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • F
      license
      Not graded
      quality
      D
      maintenance
      Enables LLMs to retrieve real-time stock and options market data through the E\*TRADE API using natural language. It features secure OAuth 1.0 authentication, persistent token management, and comprehensive support for stock quotes, options chains, and Greeks.
      2
      -
    • A
      license
      C
      quality
      D
      maintenance
      Enables querying real-time and historical financial market data for stocks, options, forex, and crypto, including quotes, trades, technical indicators, and reference data through a set of MCP tools.
      71
      3
      MIT
    • A
      license
      Not graded
      quality
      C
      maintenance
      Provides stock and options market data via the Tradier Brokerage API, enabling AI agents to query financial data through natural language.
      304 npm
      MIT
    • F
      license
      A
      quality
      B
      maintenance
      Enables MCP clients to retrieve stock market and company financial data, including quotes, overviews, ratios, historical prices, income statements, and stock comparisons, via a set of tools.
      7
      -

    Appeared in Searches