An options trading agent that writes down its reasoning before placing orders on an Alpaca paper trading account. Uses MCP to communicate with alpaca-mcp-server for data and order placement.
Server has 7 tools with basic descriptions but critical gaps in schema documentation and parameter clarity. Only place_order has a visible input schema; the other 6 tools lack documented input parameters entirely. Descriptions are present but generic (avg ~60 chars), below the 194-char baseline for production tools. No output schemas documented. Error handling and recovery guidance absent. Tool naming is reasonable (verb_noun pattern) but parameter validation and LLM-friendly constraints are missing.
Retrieve account information including equity, cash, buying power, and account status
Get market clock information including whether market is open and next open/close times
Get the last quote for a given symbol
Retrieve option chain data for a given underlying symbol
Retrieve order history and status
Retrieve all open positions in the account
Place an options order on the Alpaca paper trading account
6 of 7 tools lack documented input schemas. Only place_order has visible parameter definitions. get_account_info, get_clock, get_positions, get_orders, get_option_chain, and get_last_quote have no input schema visible in source.
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract required fields without knowing what each tool returns.
place_order lacks enum constraints on 'side' (buy/sell) and 'order_type' (limit/market/etc). Free-form strings invite hallucinated values.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 50 | 2026-07-28+ | v2 |
No error handling or recovery guidance. Tools do not indicate what to do on failure (retry, ask user, fatal). Agents cannot self-correct.
place_order (WRITE operation) lacks confirmation/dry-run pattern. Agents can place real orders without explicit user approval.