Model Context Protocol server for the tastytrade brokerage API: tools, resources and prompts for quotes, positions and order flow, with every money-moving action behind a dry-run confirmation gate.
Two read-only tools with strong descriptions (180-250 chars each) that explain WHAT, WHEN, and dependencies. Both have clear verb-noun naming (tastytrade_get_*). However, input schemas are minimal or absent: tastytrade_get_accounts has empty input {}, and tastytrade_get_account has only one parameter with a description. No output schemas are documented in the visible code. Error handling is mentioned in descriptions (auth_failed, upstream_error, not_found) but no structured error recovery guidance. No tool annotations (readOnlyHint, etc.) despite both being read-only. Descriptions are well-written but lack format constraints and pagination guidance.
Read-only. Fetches the configuration and status detail for one brokerage account (GET /customers/me/accounts/{account_number}). Use when you already have an account number (from List Accounts) and need its type, margin-or-cash mode, futures approval, suitable options level, investment objective, risk tolerance, or open/closed status. This returns account CONFIGURATION, not balances, buying power, or positions; use Get Account Balances for cash and buying power. Does not mutate state. Returns a single Account object (the API's {data:{...}} is unwrapped). Common errors: not_found if the account number is unknown to the customer; auth_failed on an invalid session.
Read-only. Lists every brokerage account the authenticated customer can access (GET /customers/me/accounts). Call this first at session start to discover the account-number values that every other account, balance, position, and order tool requires, and to read each account's type, margin-or-cash designation, futures approval, and the caller's authority level. Does not move money or mutate state. Returns an array of AccountAuthorityDecorator records, each shaped as { account: Account, authority-level: string } (the API's {data:{items:[...]}} is unwrapped to the bare items array). Common errors: auth_failed if the session/token is invalid; upstream_error if the customer service is unavailable.
No input schema for tastytrade_get_accounts (empty {}). Cannot validate or guide LLM on required vs optional parameters.
No output schemas documented. LLMs cannot infer response structure (fields, types, pagination). Descriptions mention 'array of AccountAuthorityDecorator' and 'single Account object' but no formal schema.
No tool annotations despite both tools being read-only. Missing readOnlyHint would help agents understand these are safe to call without side effects.
Error handling mentioned in descriptions (auth_failed, upstream_error, not_found) but no structured recovery guidance. Descriptions say 'Common errors:' but do not tell LLM what to do next.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 54 | 2025-06-18+ | v2 |
tastytrade_get_accounts description includes example value '5WX34382' in the related tool's description. LLMs may reuse example IDs literally in real calls.