E*TRADE MCP Server with OAuth, risk management, and trading tools
17 tools with inconsistent quality. All have descriptions (10-100+ chars) and basic schemas, but many lack parameter descriptions, enums for constrained inputs, and output documentation. OAuth/auth tools are well-named (get_request_token, get_access_token) but trading/portfolio tools lack clarity on return structures. No tool annotations (readOnlyHint/destructiveHint) despite clear risk levels. Error handling is absent from visible code. Naming follows verb_noun convention but some tools are vague (calculate_risk_parameters, view_portfolio). Parameter descriptions exist but are sparse, e.g., 'sortBy' in view_portfolio has no description of valid fields.
Calculate risk parameters for position sizing
Delete alerts from E*TRADE user account
Exchange request token for access token
Get account balance from E*TRADE
Get details for a specific alert
Generate authorization URL for user to approve application
Get option chains for a specific symbol
Missing output schemas for all tools. No documentation of return types, field names, or structures. LLMs cannot plan downstream calls or extract data reliably.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk levels. delete_alerts is DESTRUCTIVE but unmarked; renew_access_token is WRITE but unmarked. Agents cannot infer safety/retry semantics.
Parameter descriptions missing or incomplete. 'sortBy' in view_portfolio has no description of valid fields. 'expiryType' in get_option_expire_dates lacks enum or format guidance. LLMs cannot infer valid values.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 55 | 2026-07-28+ | v2 |
Get option expiration dates for a symbol
Get quote information for one or more symbols
Get OAuth request token to start authentication flow
Get specific transaction details from E*TRADE account
List alerts from E*TRADE user account
List transactions from E*TRADE account
Look up securities by company name
Renew existing access token
Revoke access token
View portfolio information from E*TRADE account
Vague tool names reduce clarity. 'view_portfolio' is passive; 'get_portfolio' is clearer. 'calculate_risk_parameters' is ambiguous, does it return a risk score, position size, or stop-loss level? Rename to 'calculate_position_size' or 'get_risk_metrics'.
No error handling guidance in visible code. Tools do not document what errors are retryable, user-fixable, or fatal. No recovery hints (e.g., 'If OAuth fails, call get_request_token first').