E*TRADE MCP Server
Provides access to E\*TRADE's Market API for retrieving real-time stock quotes, looking up securities, and analyzing option chains with strikes and expirations.
README
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
Installation
- Clone this repository
- Install dependencies:
pip install -e .
- Copy
.env.exampleto.envand add your E*TRADE API credentials:
cp .env.example .env
- Edit
.envand 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
- Go to E*TRADE Developer Portal
- Sign up or log in with your E*TRADE account
- Request a Sandbox consumer key at https://us.etrade.com/etx/ris/apikey
- Get your Consumer Key and Consumer Secret
- Start with the sandbox environment for testing
Authentication
One-time Setup (Recommended)
Run the authentication script to get and save your access tokens:
python authenticate.py
This will:
- Prompt you to visit an E*TRADE authorization URL
- Ask you to enter the verification code
- Save the access tokens to your
.envfile
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:
- Call
etrade_get_auth_url()to get the authorization URL - Visit the URL in your browser and authorize the application
- Copy the verification code
- 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 dateskip_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 searchcompany: 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 symbolexpiry_year,expiry_month,expiry_day: Expiration date filtersstrike_price_near: Filter strikes near this priceno_of_strikes: Number of strikes to returninclude_weekly: Include weekly optionsoption_category: STANDARD, ALL, MINIchain_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 symbolexpiry_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:sandboxorproduction(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
.envfile 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
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.