Let Claude manage your tastytrade portfolio.
- • Core MCP protocol features implemented (20/40)
- • Room for improvement in GitHub community
- • Optimal dependency management (20/20)
- • Moderate deployment maturity (5/10)
- • Documentation (8/8)
- • Archestra MCP Trust score badge is missing
{
"tasty-agent": {
"command": "uvx",
"args": [
"tasty-agent"
],
"env": {}
}
}tasty-agent: A TastyTrade MCP Server
A Model Context Protocol server for TastyTrade brokerage accounts. Enables LLMs to monitor portfolios, analyze positions, and execute trades.
Authentication
OAuth Setup:
- Create an OAuth app at https://my.tastytrade.com/app.html#/manage/api-access/oauth-applications
- Check all scopes, save your client ID and client secret
- Create a "New Personal OAuth Grant" in your OAuth app settings (check all scopes)
- Copy the generated refresh token
- Configure the MCP server with your credentials (see Usage section below)
MCP Tools
Account & Portfolio
get_balances()- Account balances and buying powerget_positions()- All open positions with current valuesget_net_liquidating_value_history(time_back='1y')- Portfolio value history ('1d', '1m', '3m', '6m', '1y', 'all')get_history(start_date=None)- Transaction history (format: YYYY-MM-DD, default: last 90 days)
Market Data & Research
get_quote(symbol, option_type=None, strike_price=None, expiration_date=None, timeout=10.0)- Real-time quotes for stocks and options via DXLink streamingget_greeks(symbol, option_type, strike_price, expiration_date, timeout=10.0)- Greeks (delta, gamma, theta, vega, rho) for options via DXLink streamingget_market_metrics(symbols)- IV rank, percentile, beta, liquidity for multiple symbolsmarket_status(exchanges=['Equity'])- Market hours and status ('Equity', 'CME', 'CFE', 'Smalls')search_symbols(symbol)- Search for symbols by name/tickerget_current_time_nyc()- Current time in New York timezone (market time)
Order Management
get_live_orders()- Currently active ordersplace_order(symbol, order_type, action, quantity, price, strike_price=None, expiration_date=None, time_in_force='Day', dry_run=False)- Simplified order placement for stocks and optionsdelete_order(order_id)- Cancel orders by ID
Watchlist Management
get_watchlists(watchlist_type='private', name=None)- Get watchlists ('public'/'private', all if name=None)manage_private_watchlist(action, symbol, instrument_type, name='main')- Add/remove symbols from private watchlistsdelete_private_watchlist(name)- Delete private watchlist
MCP Client Configuration
Add to your MCP client configuration (e.g., claude_desktop_config.json):
{
"mcpServers": {
"tastytrade": {
"command": "uvx",
"args": ["tasty-agent"],
"env": {
"TASTYTRADE_CLIENT_SECRET": "your_client_secret",
"TASTYTRADE_REFRESH_TOKEN": "your_refresh_token",
"TASTYTRADE_ACCOUNT_ID": "your_account_id"
}
}
}
}
Examples
"Get my account balances and current positions"
"Get real-time quote for SPY"
"Get quote for TQQQ C option with strike 100 expiring 2026-01-16"
"Get Greeks (delta, gamma, theta, vega, rho) for AAPL P option with strike 150 expiring 2024-12-20"
"Place dry-run order: buy 100 AAPL shares at $150"
"Place order: buy 17 TQQQ C contracts at $8.55, strike 100, expiring 2026-01-16"
"Cancel order 12345"
"Get my private watchlists"
"Add TSLA to my main watchlist"
"Remove AAPL from my tech watchlist"
Development
Testing with client.py
For interactive testing during development:
# Install dev dependencies
uv sync --group dev
# Set up environment variables in .env file:
# TASTYTRADE_CLIENT_SECRET=your_secret
# TASTYTRADE_REFRESH_TOKEN=your_token
# TASTYTRADE_ACCOUNT_ID=your_account_id (optional)
# OPENAI_API_KEY=your_openai_key
# Run the interactive client
uv run client.py
The client provides a chat interface to test MCP tools directly. Example commands:
- "Get my account balances"
- "Get quote for SPY"
- "Place dry-run order: buy 100 AAPL at $150"
Debug with MCP inspector
npx @modelcontextprotocol/inspector uvx tasty-agent
License
MIT
[](https://archestra.ai/mcp-catalog/ferdousbhai__tasty-agent)tasty-agent: A TastyTrade MCP Server
A Model Context Protocol server for TastyTrade brokerage accounts. Enables LLMs to monitor portfolios, analyze positions, and execute trades.
Authentication
OAuth Setup:
- Create an OAuth app at https://my.tastytrade.com/app.html#/manage/api-access/oauth-applications
- Check all scopes, save your client ID and client secret
- Create a "New Personal OAuth Grant" in your OAuth app settings (check all scopes)
- Copy the generated refresh token
- Configure the MCP server with your credentials (see Usage section below)
MCP Tools
Account & Portfolio
get_balances()- Account balances and buying powerget_positions()- All open positions with current valuesget_net_liquidating_value_history(time_back='1y')- Portfolio value history ('1d', '1m', '3m', '6m', '1y', 'all')get_history(start_date=None)- Transaction history (format: YYYY-MM-DD, default: last 90 days)
Market Data & Research
get_quote(symbol, option_type=None, strike_price=None, expiration_date=None, timeout=10.0)- Real-time quotes for stocks and options via DXLink streamingget_greeks(symbol, option_type, strike_price, expiration_date, timeout=10.0)- Greeks (delta, gamma, theta, vega, rho) for options via DXLink streamingget_market_metrics(symbols)- IV rank, percentile, beta, liquidity for multiple symbolsmarket_status(exchanges=['Equity'])- Market hours and status ('Equity', 'CME', 'CFE', 'Smalls')search_symbols(symbol)- Search for symbols by name/tickerget_current_time_nyc()- Current time in New York timezone (market time)
Order Management
get_live_orders()- Currently active ordersplace_order(symbol, order_type, action, quantity, price, strike_price=None, expiration_date=None, time_in_force='Day', dry_run=False)- Simplified order placement for stocks and optionsdelete_order(order_id)- Cancel orders by ID
Watchlist Management
get_watchlists(watchlist_type='private', name=None)- Get watchlists ('public'/'private', all if name=None)manage_private_watchlist(action, symbol, instrument_type, name='main')- Add/remove symbols from private watchlistsdelete_private_watchlist(name)- Delete private watchlist
MCP Client Configuration
Add to your MCP client configuration (e.g., claude_desktop_config.json):
{
"mcpServers": {
"tastytrade": {
"command": "uvx",
"args": ["tasty-agent"],
"env": {
"TASTYTRADE_CLIENT_SECRET": "your_client_secret",
"TASTYTRADE_REFRESH_TOKEN": "your_refresh_token",
"TASTYTRADE_ACCOUNT_ID": "your_account_id"
}
}
}
}
Examples
"Get my account balances and current positions"
"Get real-time quote for SPY"
"Get quote for TQQQ C option with strike 100 expiring 2026-01-16"
"Get Greeks (delta, gamma, theta, vega, rho) for AAPL P option with strike 150 expiring 2024-12-20"
"Place dry-run order: buy 100 AAPL shares at $150"
"Place order: buy 17 TQQQ C contracts at $8.55, strike 100, expiring 2026-01-16"
"Cancel order 12345"
"Get my private watchlists"
"Add TSLA to my main watchlist"
"Remove AAPL from my tech watchlist"
Development
Testing with client.py
For interactive testing during development:
# Install dev dependencies
uv sync --group dev
# Set up environment variables in .env file:
# TASTYTRADE_CLIENT_SECRET=your_secret
# TASTYTRADE_REFRESH_TOKEN=your_token
# TASTYTRADE_ACCOUNT_ID=your_account_id (optional)
# OPENAI_API_KEY=your_openai_key
# Run the interactive client
uv run client.py
The client provides a chat interface to test MCP tools directly. Example commands:
- "Get my account balances"
- "Get quote for SPY"
- "Place dry-run order: buy 100 AAPL at $150"
Debug with MCP inspector
npx @modelcontextprotocol/inspector uvx tasty-agent
License
MIT