这是一个用于TastyTrade经纪账户的模型上下文协议(MCP)服务器。它使大型语言模型能够监控投资组合、分析仓位并执行交易。该服务器具有自动化的IV分析提示功能,并内置了速率限制(每秒2次请求),以防止API错误。
OAuth设置:
get_balances() - 获取账户余额和购买力。get_positions() - 获取所有当前价值的开放仓位。get_net_liquidating_value_history(time_back='1y') - 获取投资组合价值的历史记录('1d', '1m', '3m', '6m', '1y', 'all')。get_transaction_history(days=90, underlying_symbol=None, transaction_type=None) - 获取所有交易:包括交易和现金流(默认:最后90天,交易类型:'Trade' 或 'Money Movement')。get_order_history(days=7, underlying_symbol=None) - 获取订单历史,包括已成交、已取消和被拒绝的订单(默认:最后7天)。get_quotes(instruments, timeout=10.0) - 通过DXLink流式传输获取多个股票和/或期权的实时报价。get_greeks(options, timeout=10.0) - 通过DXLink流式传输获取多个期权的希腊字母(delta, gamma, theta, vega, rho)。get_market_metrics(symbols) - 获取多个符号的IV排名、百分位数、贝塔值和流动性。market_status(exchanges=['Equity']) - 获取市场时间及状态('Equity', 'CME', 'CFE', 'Smalls')。search_symbols(symbol) - 根据名称/代码搜索符号。get_current_time_nyc() - 获取纽约时区的当前时间(市场时间)。get_live_orders() - 获取当前活跃的订单。place_order(legs, price=None, time_in_force='Day', dry_run=False) - 下单多腿订单,自动从市场报价中发现价格。
replace_order(order_id, price) - 修改现有订单的价格(对于复杂更改,请取消并重新下单)。delete_order(order_id) - 取消订单。get_watchlists(watchlist_type='private', name=None) - 获取关注列表('public'/'private',如果name=None则获取全部)。manage_private_watchlist(action, symbols, name='main') - 向私人关注列表添加或移除多个符号。delete_private_watchlist(name) - 删除私人关注列表。在您的MCP客户端配置中添加(例如,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"
}
}
}
}
"获取我的账户余额和当前仓位"
"获取SPY和AAPL的实时报价"
"获取TQQQ C期权,行权价100,到期日2026-01-16的报价"
"获取AAPL P期权,行权价150,到期日2024-12-20的希腊字母"
"以自动定价购买100股AAPL"
"以150美元购买100股AAPL"
"开仓购买17份TQQQ看涨期权,行权价100,到期日2026-01-16"
"下单价差:开仓购买AAPL 150C,开仓卖出AAPL 155C,两者到期日均为2024-12-20"
"平仓我的AAPL仓位:卖出10份AAPL看涨期权"
"修改订单12345的价格为10.05美元"
"取消订单12345"
"获取我一月份的交易历史"
"获取我的私人关注列表"
"向我的科技关注列表添加TSLA和NVDA"
"从我的科技关注列表移除AAPL"
运行自动化交易策略:
# 一次性运行带指令
uv run background.py "检查我的投资组合并根据需要进行再平衡"
# 每小时运行一次
uv run background.py "监控SPY并在显著变动时发出警报" --hourly
# 每天运行一次
uv run background.py "生成每日投资组合摘要" --daily
# 自定义周期(秒)
uv run background.py "扫描覆盖看涨期权的机会" --period 1800 # 每30分钟
# 安排开始时间(纽约时区)
uv run background.py "执行早晨交易策略" --schedule "9:30am" --hourly
# 市场开盘简写(9:30am)
uv run background.py "逢低买入策略" --market-open --hourly
在开发过程中进行交互式测试:
# 在.env文件中设置环境变量:
# TASTYTRADE_CLIENT_SECRET=your_secret
# TASTYTRADE_REFRESH_TOKEN=your_token
# TASTYTRADE_ACCOUNT_ID=your_account_id (默认为第一个账户)
# OPENAI_API_KEY=your_openai_key (您可以提供由pydantic-ai支持的其他提供商)
# MODEL_IDENTIFIER=model_provider:model_name (默认为openai:gpt-5-mini)
# 运行交互式客户端
uv run chat.py
客户端提供了一个聊天界面,可以直接测试MCP工具。示例命令:
npx @modelcontextprotocol/inspector uvx tasty-agent
MIT