Skip to main content
Glama
jjmerri

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: E*TRADE MCP Server

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

Install Server
F
license - not found
A
quality
D
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • -
    license
    -
    quality
    -
    maintenance
    Enables real-time stock and options market data retrieval from Interactive Brokers through IB Gateway. Provides stock quotes with price and volume information, plus options quotes with bid, ask, and last price data.
  • F
    license
    -
    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.
    1
  • A
    license
    -
    quality
    C
    maintenance
    Enables access to real-time and historical market data including stocks, ETFs, forex, and cryptocurrencies, with support for time series, quotes, dividends, splits, and earnings.
    MIT
  • A
    license
    C
    quality
    C
    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

View all related MCP servers

Related MCP Connectors

  • Tradier MCP — stock & options market data via the Tradier Brokerage API

  • Access SEC filings, insider transactions, and financial data via the ShareSEER API.

  • Provide access to Chinese stock market data including historical prices, real-time data, news, and…

View all MCP Connectors

Appeared in Searches

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/jjmerri/etrade-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server