{"id":26570880,"url":"https://github.com/ferdousbhai/tasty-agent","last_synced_at":"2026-04-10T09:02:52.361Z","repository":{"id":270300511,"uuid":"885122598","full_name":"ferdousbhai/tasty-agent","owner":"ferdousbhai","description":"Let Claude manage your tastytrade portfolio.","archived":false,"fork":false,"pushed_at":"2026-04-09T05:52:25.000Z","size":754,"stargazers_count":61,"open_issues_count":0,"forks_count":23,"subscribers_count":5,"default_branch":"main","last_synced_at":"2026-04-09T07:36:04.205Z","etag":null,"topics":["finance","investing","options","stocks","tastytrade","trading"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ferdousbhai.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-11-08T01:59:37.000Z","updated_at":"2026-04-09T05:52:34.000Z","dependencies_parsed_at":null,"dependency_job_id":"851f1b25-932e-44a2-8167-a4ff34ecd8b8","html_url":"https://github.com/ferdousbhai/tasty-agent","commit_stats":null,"previous_names":["ferdousbhai/tasty-agent"],"tags_count":26,"template":false,"template_full_name":null,"purl":"pkg:github/ferdousbhai/tasty-agent","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ferdousbhai%2Ftasty-agent","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ferdousbhai%2Ftasty-agent/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ferdousbhai%2Ftasty-agent/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ferdousbhai%2Ftasty-agent/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ferdousbhai","download_url":"https://codeload.github.com/ferdousbhai/tasty-agent/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ferdousbhai%2Ftasty-agent/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31635969,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-10T07:40:12.752Z","status":"ssl_error","status_checked_at":"2026-04-10T07:40:11.664Z","response_time":98,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["finance","investing","options","stocks","tastytrade","trading"],"created_at":"2025-03-22T22:19:20.662Z","updated_at":"2026-04-10T09:02:52.316Z","avatar_url":"https://github.com/ferdousbhai.png","language":"Python","funding_links":[],"categories":["Finance","Finance \u0026 Market Data Mcp Servers","MCP 服务器精选列表","Legend","پیاده‌سازی‌های سرور","📦 Other","MCP Servers","APIs and HTTP Requests","Uncategorized","Table of Contents","Server Implementations"],"sub_categories":["Trading \u0026 Exchanges","💰 金融与加密货币","💰 \u003ca name=\"finance--fintech\"\u003e\u003c/a\u003eFinance \u0026 Fintech","💰 \u003ca name=\"finance--fintech\"\u003e\u003c/a\u003eمالی و فین‌تک","💰Finance \u0026 Fintech","Uncategorized","Finance"],"readme":"# tasty-agent: A TastyTrade MCP Server\n[![Trust Score](https://archestra.ai/mcp-catalog/api/badge/quality/ferdousbhai/tasty-agent)](https://archestra.ai/mcp-catalog/ferdousbhai__tasty-agent)\n\nA Model Context Protocol server for TastyTrade brokerage accounts. Enables LLMs to monitor portfolios, analyze positions, and execute trades. Features automated IV analysis prompts and built-in rate limiting (2 requests/second) to prevent API errors.\n\n## Authentication\n\n**OAuth Setup**:\n1. Create an OAuth app at https://my.tastytrade.com/app.html#/manage/api-access/oauth-applications\n2. Check all scopes, save your client ID and client secret\n3. Create a \"New Personal OAuth Grant\" in your OAuth app settings (check all scopes)\n4. Copy the generated refresh token\n5. Configure the MCP server with your credentials (see Usage section below)\n\n## MCP Tools\n\n### Account \u0026 Portfolio\n- **`account_overview(include=[\"balances\",\"positions\"])`** - Account balances (including net liquidating value) and open positions.\n\n### Market Data \u0026 Research\n- **`get_quotes(instruments, timeout=10.0)`** - Real-time quotes for stocks, options, futures, and indices via DXLink streaming\n- **`get_greeks(options, timeout=10.0)`** - Greeks (delta, gamma, theta, vega, rho) for options via DXLink streaming\n- **`get_gex(symbol, expiration_date, timeout=60.0)`** - Gamma Exposure analysis: net GEX, gamma regime, flip level, call/put walls, and top strikes\n- **`get_market_metrics(symbols)`** - IV rank, percentile, beta, liquidity for multiple symbols\n- **`market_status(exchanges=['Equity'])`** - Market hours, status, holidays, and current NYC time ('Equity', 'CME', 'CFE', 'Smalls')\n- **`search_symbols(symbol, max_results=20)`** - Search for symbols by name/ticker\n\n### History\n- **`get_history(type, days=None, underlying_symbol=None, transaction_type=None, page_offset=0, max_results=50)`** - Transaction history (`type=\"transactions\"`, default 90 days) or order history (`type=\"orders\"`, default 7 days). Paginated — use `page_offset` and `max_results` for large result sets. Filter transactions by `\"Trade\"` or `\"Money Movement\"`.\n\n### Order Management\n- **`manage_order(action, ...)`** - Unified order management:\n  - `action=\"list\"` - Get all live orders\n  - `action=\"place\"` - Place multi-leg orders with automatic mid-price discovery. Supports `Day`, `GTC`, `GTD`, `Ext`, `Ext Overnight`, `GTC Ext`, `GTC Ext Overnight`, and `IOC` time-in-force.\n  - `action=\"replace\"` - Modify existing order price\n  - `action=\"cancel\"` - Cancel an order\n\n### Watchlist Management\n- **`watchlist(action, ...)`** - Unified watchlist management:\n  - `action=\"list\"` - Get public or private watchlists\n  - `action=\"add\"` - Add symbols to a watchlist (creates if doesn't exist)\n  - `action=\"remove\"` - Remove symbols from a watchlist\n  - `action=\"delete\"` - Delete a watchlist\n\n### MCP Prompts\n- **IV Rank Analysis** - Automated prompt to analyze IV rank extremes across positions and watchlists for entry/exit opportunities\n\n## Usage\n\n### Local (stdio)\n\nAdd to your MCP client configuration (e.g., `claude_desktop_config.json`):\n```json\n{\n  \"mcpServers\": {\n    \"tastytrade\": {\n      \"command\": \"uvx\",\n      \"args\": [\"tasty-agent\"],\n      \"env\": {\n        \"TASTYTRADE_CLIENT_SECRET\": \"your_client_secret\",\n        \"TASTYTRADE_REFRESH_TOKEN\": \"your_refresh_token\",\n        \"TASTYTRADE_ACCOUNT_ID\": \"your_account_id\"\n      }\n    }\n  }\n}\n```\n\n### Remote (Modal)\n\nDeploy as a remote MCP server on [Modal](https://modal.com) with proxy auth:\n\n```bash\npip install modal \u0026\u0026 modal setup\n\n# Create secrets\nmodal secret create tasty-agent-secrets \\\n  TASTYTRADE_CLIENT_SECRET=your_secret \\\n  TASTYTRADE_REFRESH_TOKEN=your_token\n\n# Create a proxy auth token at https://modal.com/settings/proxy-auth-tokens\n\n# Update MODAL_HOST in examples/modal_deploy.py with your workspace name\n\n# Deploy\nmodal deploy examples/modal_deploy.py\n```\n\nClients authenticate with `Modal-Key` and `Modal-Secret` headers. See [`examples/modal_deploy.py`](examples/modal_deploy.py).\n\n### Programmatic (Python client)\n\nConnect to a remote tasty-agent and call tools directly:\n\n```bash\n# List all tools\nuv run examples/mcp_client.py\n\n# Call a tool\nuv run examples/mcp_client.py market_status\nuv run examples/mcp_client.py get_market_metrics '{\"symbols\": [\"AAPL\", \"SPY\"]}'\n```\n\nSee [`examples/mcp_client.py`](examples/mcp_client.py) for the full client code.\n\n## Examples\n\n```\n\"Get my account balances and current positions\"\n\"What's my net liquidating value?\"\n\"Get real-time quotes for SPY and AAPL\"\n\"Get quotes for TQQQ C option with strike 100 expiring 2026-01-16\"\n\"Get Greeks for AAPL P option with strike 150 expiring 2024-12-20\"\n\"Show GEX analysis for SPY options expiring 2026-04-03\"\n\"Buy 100 AAPL shares\" (auto-pricing)\n\"Buy 100 AAPL at $150\"\n\"Buy to open 17 TQQQ calls, strike 100, exp 2026-01-16\"\n\"Place a call spread: buy to open AAPL 150C and sell to open AAPL 155C, both exp 2024-12-20\"\n\"Modify order 12345 to price $10.05\"\n\"Cancel order 12345\"\n\"Show my live orders\"\n\"Get my trading history from January\"\n\"Get my order history for SPY\"\n\"Get my private watchlists\"\n\"Add TSLA and NVDA to my tech watchlist\"\n```\n\n## Development\n\n```bash\n# Run tests\nuv run pytest\n\n# Interactive chat client (requires .env with credentials + OPENAI_API_KEY)\nuv run examples/chat.py\n\n# Background trading bot\nuv run examples/background.py \"Check portfolio and rebalance\" --hourly\n\n# Debug with MCP inspector\nnpx @modelcontextprotocol/inspector uvx tasty-agent\n```\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fferdousbhai%2Ftasty-agent","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fferdousbhai%2Ftasty-agent","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fferdousbhai%2Ftasty-agent/lists"}