https://github.com/ferdousbhai/tasty-agent
Let Claude manage your tastytrade portfolio.
https://github.com/ferdousbhai/tasty-agent
finance investing options stocks tastytrade trading
Last synced: about 1 month ago
JSON representation
Let Claude manage your tastytrade portfolio.
- Host: GitHub
- URL: https://github.com/ferdousbhai/tasty-agent
- Owner: ferdousbhai
- License: mit
- Created: 2024-11-08T01:59:37.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2025-03-03T05:46:06.000Z (2 months ago)
- Last Synced: 2025-03-03T06:28:44.490Z (2 months ago)
- Topics: finance, investing, options, stocks, tastytrade, trading
- Language: Python
- Homepage:
- Size: 219 KB
- Stars: 2
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-mcp-list - ferdousbhai/tasty-agent - agent?style=social)](https://github.com/ferdousbhai/tasty-agent): Handles trading activities on Tastytrade via the Tastyworks API. (Uncategorized / Uncategorized)
- awesome-mcp-zh - ferdousbhai/tasty-agent
- awesome-mcp-servers - ferdousbhai/tasty-agent - Tastyworks API integration to handle trading activities on Tastytrade (Legend / 💰 <a name="finance--fintech"></a>Finance & Fintech)
- awesome-mcp-servers - TastyTrade Agent - Let Claude manage your tastytrade portfolio. (Table of Contents / Finance)
- awesome-mcp-servers - TastyTrade Agent - Let Claude manage your tastytrade portfolio. (Table of Contents / Finance)
README
# tasty-agent: A TastyTrade MCP Server
## Overview
A Model Context Protocol server for interacting with TastyTrade brokerage accounts. This server enables Large Language Models to monitor portfolios, analyze positions, and execute trades through the TastyTrade platform.
## Prerequisites
- Python 3.12
- [uv](https://docs.astral.sh/uv/) package manager
- A TastyTrade account## Installation
Install uv if you haven't already:
```bash
curl -LsSf https://astral.sh/uv/install.sh | sh
```We will use `uvx` to directly run tasty-agent:
```bash
uvx tasty-agent
```### Authentication
The server requires TastyTrade credentials. For security, these are set up via command line and stored in your system's keyring (Keychain on macOS, Windows Credential Manager on Windows, or similar secure storage on other platforms):
```bash
uvx tasty-agent setup
```### Tools
#### Portfolio Management
1. `plot_nlv_history`
- Plots account net liquidating value history over time
- Input:
- `time_back` (string): Time period to plot ('1d', '1m', '3m', '6m', '1y', 'all')
- Returns: Base64-encoded PNG image of the generated plot2. `get_account_balances`
- Get current account balances
- Returns: Formatted string with cash balance, buying power, net liquidating value, and maintenance excess
- Example response: `"Cash: $5,000.00, Buying Power: $10,000.00, NLV: $15,000.00"`3. `get_open_positions`
- Get all currently open positions
- Returns: Formatted table showing Symbol, Position Type, Quantity, Mark Price, and Current Value4. `get_transaction_history`
- Get transaction history
- Input:
- `start_date` (string, optional): Start date in YYYY-MM-DD format. Defaults to last 90 days if not provided.
- Returns: Formatted table showing Transaction Date, Transaction Type, Description, and Value#### Trade Management
1. `schedule_trade`
- Schedule a trade for execution
- Inputs:
- `action` (string): "Buy to Open" or "Sell to Close"
- `quantity` (integer): Number of shares/contracts
- `underlying_symbol` (string): The underlying stock symbol (e.g., "SPY", "AAPL")
- `strike` (float, optional): For options only - strike price
- `option_type` (string, optional): For options only - "C" for calls, "P" for puts
- `expiration_date` (string, optional): For options only - expiration date in YYYY-MM-DD format
- `dry_run` (boolean): Simulate without executing (default: False)
- Returns: Task ID and confirmation message
- Notes:
- Trades execute immediately during market hours
- Trades during market closure are automatically scheduled for next market open2. `list_scheduled_trades`
- List all pending scheduled trades
- Returns: Formatted table showing:
- Position: Order in queue
- ID: Unique task identifier
- Action: Buy to Open or Sell to Close
- Instrument: Symbol and option details if applicable
- Quantity: Number of shares/contracts
- Status: Time until execution or current status3. `remove_scheduled_trade`
- Remove a scheduled trade
- Input:
- `task_id` (string): ID of task to remove
- Returns: Confirmation message#### Market Analysis
1. `get_metrics`
- Get market metrics for specified symbols
- Input:
- `symbols` (string[]): List of stock symbols
- Returns: Formatted table showing IV Rank, IV Percentile, Beta, Liquidity Rating, and Next Earnings Date/Time (when available)2. `get_prices`
- Get current bid and ask prices
- Input:
- `symbol` (string): Stock or option symbol
- Returns: Current bid and ask prices## Usage with Claude Desktop
Add this to your `claude_desktop_config.json`:
```json
{
"mcpServers": {
"tastytrade": {
"command": "path/to/uvx/command/uvx",
"args": ["tasty-agent"]
}
}
}
```**Important**: Scheduled trades will only execute while Claude Desktop is running. When Claude Desktop is closed, the server shuts down and trades are not executed.
## Debugging
You can use the MCP inspector to debug the server:
```bash
npx @modelcontextprotocol/inspector uvx tasty-agent
```For logs, check:
- macOS: `~/Library/Logs/Claude/mcp*.log`
- Windows: `%APPDATA%\Claude\logs\mcp*.log`## Development
For local development testing:
1. Use the MCP inspector (see [Debugging](#debugging))
2. Test using Claude Desktop with this configuration:```json
{
"mcpServers": {
"tastytrade": {
"command": "path/to/uv/command/uv",
"args": [
"--directory",
"path/to/tasty-agent",
"run",
"tasty-agent"
]
}
}
}
```## License
This MCP server is licensed under the MIT License. See the LICENSE file for details.