Skip to main content
Glama

Read E*TRADE positions and cash

etrade_positions
Read-only

Retrieve current holdings and investable cash for an E*TRADE account, each position marked at its last trade, formatted as a holdings block ready for rebalance planning.

Instructions

Current holdings and investable cash for one E*TRADE account, each position marked at its last trade with the date that trade happened. The response ends with a JSON block in exactly the shape plan_rebalance takes for its holdings argument, plus the cash figure for availableCash, so a rebalance can be planned against the real book without the user retyping it. Positions that came back without a symbol or a usable mark are omitted: an undated or unpriced position cannot be sized against.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
accountIdKeyYesThe account's `accountIdKey` from `etrade_accounts` — the opaque key, not the human-readable account number. The API rejects the account number.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnlyHint, openWorldHint), and the description adds real behavioral detail beyond them: marking at last trade with trade date, an explicit omission rule for positions lacking a symbol or usable mark, and the trailing JSON block shape. It does not cover pagination or per-account limits, but the filtering behavior is a genuinely useful disclosure.

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?

Three sentences, front-loaded with what is returned, followed by the key integration detail and then the caveat. Each sentence earns its place; only the marketing-ish phrasing 'without the user retyping it' is mildly redundant.

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?

With no output schema, the description carries the return-value burden and does so: it describes the per-position mark, the cash figure, the trailing rebalance-shaped JSON block, and the omission rule. Adequate for a single-parameter read tool, though it does not address multiple-account selection or staleness of marks.

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% and the schema already explains that accountIdKey is the opaque key from etrade_accounts and that the human-readable number is rejected. The description says nothing about the parameter, so it adds no meaning beyond the schema — baseline 3 is correct when structured data does the work.

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?

States a specific verb+resource: 'current holdings and investable cash for one E*TRADE account', and clarifies the marking semantics (last trade with its date). It does not explicitly distinguish itself from the sibling etrade_balances, so an agent must infer the boundary, but the purpose itself is unambiguous.

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?

Usage is implied through the integration note — the response is shaped for plan_rebalance's holdings argument, so this is what feeds a rebalance. However there is no explicit when-to-use statement, no 'use etrade_balances instead when X', and no prerequisite guidance. The context is inferable but not stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.