The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the Tasty Agent listing page.
A Model Context Protocol server for TastyTrade brokerage accounts. Enables LLMs to monitor portfolios, analyze positions, and execute trades. Features automated IV analysis prompts and compact tool output.
OAuth Setup:
account_overview(include=["balances","positions"]) - Account balances (including net liquidating value) and open positions.get_quotes(instruments, timeout=10.0) - Real-time quotes for stocks, options, futures, and indices via DXLink streamingget_greeks(options, timeout=10.0) - Greeks (delta, gamma, theta, vega, rho) for equity and futures options via DXLink streamingget_market_metrics(symbols) - IV rank, percentile, beta, liquidity for multiple symbolsmarket_status(exchanges=['Equity']) - Market hours, status, holidays, and current NYC time ('Equity', 'CME', 'CFE', 'Smalls')search_symbols(symbol, limit=10) - Search for symbols by name/tickerget_history(type, days=None, underlying_symbol=None, transaction_type=None, page_offset=0, limit=25) - Transaction history (type="transactions", default 90 days) or order history (type="orders", default 7 days). Paginated — use page_offset and limit for large result sets. Filter transactions by "Trade" or "Money Movement".place_order(legs, target_value=None, time_in_force="Day", dry_run=false) - Place multi-leg orders with quote-derived mid pricing only. The tool fetches live quotes for the exact resolved instruments, computes the signed net mid, validates the final limit against bid/ask guardrails, and optionally sizes quantity from target_value.
quantity is the actual share/contract count. target_value=50000 sizes an equity or equity-option order from quote-derived pricing; omit quantity for single-leg target-value orders. For multi-leg spreads with target_value, use quantity only to express the leg ratio, such as 1:1 or 2:1.Buy to Open, Buy to Close, Sell to Open, or Sell to Close; futures use Buy or Sell.replace_order(order_id) - Reprice an existing live order at the current quote-derived mid.cancel_order(order_id) - Cancel an order.list_orders() - Get all live orders.watchlist(action, ...) - Unified watchlist management:
action="list" - No name returns compact watchlist metadata (name, group, symbol_count); with name, returns compact symbol entries.action="add" - Add symbols to a watchlist (creates if doesn't exist)action="remove" - Remove symbols from a watchlistaction="delete" - Delete a watchlistAdd to your MCP client configuration (e.g., claude_desktop_config.json):
TASTYTRADE_ACCOUNT_ID may be omitted only when the OAuth grant exposes one
brokerage account. Set it explicitly when the grant exposes multiple accounts.
Deploy as a remote MCP server on Modal with proxy auth:
Clients authenticate with Modal-Key and Modal-Secret headers. See examples/modal_deploy.py.
Connect to a remote tasty-agent and call tools directly:
See examples/mcp_client.py for the full client code.
MIT