Token导航 LogoToken导航TokenDH.com
Tastytrade MCP logo
金融服务stdio官方级别未说明来源级核验

Tastytrade MCP

MCP Server

@modelcontextprotocol/inspector

一个连接TastyTrade经纪账户并暴露72种交易工具的MCP服务器,支持实时市场数据、报价和期权希腊值。

工具数

72

提示词数

0

GitHub Stars

1

资源数

0
PythonClaude市场分析Claude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

cmike444

提供方

cmike444

最后核验

2026/5/17 20:20

运行时

Node.js

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

npx @modelcontextprotocol/inspector node build/index.js

详细介绍

TastyTrade MCP服务器

适用于 ChatGPT桌面, 克劳德桌面版,或任何兼容MCP的客户端——本地和云中。

______________________________________________________________________

特性

  • 72个MCP工具 涵盖整个TastTrade API
  • 自动身份验证 使用存储的TastyTrade凭据(客户端机密+刷新令牌)
  • OAuth 2.1授权服务器 用于ChatGPT和远程MCP客户端(PKCE、动态客户端注册)
  • 实时市场数据 通过DXLink(报价、蜡烛、希腊选项)
  • 双重运输:stdio(本地)和流式HTTP(云)
  • 承载令牌安全 用于云部署

______________________________________________________________________

先决条件

  • 20或更晚
  • 具有API访问权限的TastTrade帐户(客户端机密和刷新令牌)

______________________________________________________________________

安装

git clone 
cd tastytrade-mcp-server
npm install
npm run build

______________________________________________________________________

用法

选项1:本地(stdio)

直接运行服务器,并通过stdio连接MCP客户端。

node build/index.js

ChatGPT桌面

将此添加到您的ChatGPT桌面MCP配置中:

{
  "mcpServers": {
    "tastytrade": {
      "command": "node",
      "args": ["/absolute/path/to/build/index.js"]
    }
  }
}

克劳德桌面版

添加到您的Claude桌面配置(claude_desktop_config.json):

{
  "mcpServers": {
    "tastytrade": {
      "command": "node",
      "args": ["/absolute/path/to/build/index.js"]
    }
  }
}

MCP检查员(用于测试)

npx @modelcontextprotocol/inspector node build/index.js

选项2:云(流式HTTP)

将服务器作为web服务运行,以便MCP客户端可以远程连接。

MCP_TRANSPORT=http MCP_BEARER_TOKEN=your-secret-token node build/index.js

服务器在端口5000上启动(可通过配置 PORT 有人)。

  • MCP端点: https://your-server-url/mcp
  • 健康检查: https://your-server-url/health

将您的MCP客户端连接到 /mcp 端点,并将承载令牌包含在 Authorization 头球

Authorization: Bearer your-secret-token

______________________________________________________________________

环境变量

变量必填默认描述
MCP_TRANSPORT没有stdio运输方式: stdio (本地)或 http (云)
MCP_BEARER_TOKEN用于保护HTTP端点的云-秘密令牌
TASTYTRADE_CLIENT_SECRET-TastyTrade OAuth客户端密钥(启动时自动加载)
TASTYTRADE_REFRESH_TOKEN-TastyTrade OAuth刷新令牌(启动时自动加载)
TASTYTRADE_SANDBOX没有false设置为 true 使用TastyTrade的沙盒/测试环境
PORT没有5000HTTP服务器端口(仅限云模式)
TOOL_DISCOVERY_MODE没有false启用动态工具发现模式(见下文)

______________________________________________________________________

动态刀具发现模式

默认情况下,所有工具在启动时都会注册,并在每次调用时向LLM广播(每个请求约12000-15000个模式开销令牌)。对于对令牌敏感的部署,您可以启用 动态工具发现 模式,将初始模式开销减少到约200-500个令牌。

启用发现模式

TOOL_DISCOVERY_MODE=true node build/index.js

启用后,启动时只显示三个轻量级元工具:

元工具描述
list_tool_categories返回顶级工具类别(账户、订单、市场数据、工具、观察名单、风险、授权),并计算每个类别中的工具数量
search_tools对所有工具名称和描述进行关键字搜索——返回具有一句话摘要的匹配工具
get_tool_details按名称返回特定工具的完整输入模式和注释

完整的工具模式存储在内部注册表中,但 不广播 在最初的背景下,LLM。该模型根据需要发现和获取模式。

交互流程示例

User: What's the current price of AAPL?

Model → list_tool_categories()
← "Market Data (7 tools), Account (9 tools), ..."

Model → search_tools("quote price real-time")
← "get_quote [Market Data]: Get real-time quote data for one or more symbols using DXLink..."

Model → get_tool_details("get_quote")
← Full JSON schema with parameters (symbols, timeoutMs)

Model → get_quote(symbols=["AAPL"])
← { bid: 174.20, ask: 174.22, last: 174.21, ... }

在同一会话中的后续回合中,模型可以跳过发现步骤并调用 get_quote 如果它已经知道对话早期的模式,则直接使用。

向后兼容

TOOL_DISCOVERY_MODE 未设置(或设置为 false),所有工具在启动时都会像以前一样注册。现有集成不受影响。

______________________________________________________________________

TastyTrade认证

服务器在启动时使用TastyTrade自动进行身份验证 TASTYTRADE_CLIENT_SECRETTASTYTRADE_REFRESH_TOKEN 环境变量。不需要手动身份验证步骤。

若要获取您的客户机密和刷新令牌,请通过TastTrade的开发者门户注册API访问。

使用 check_auth_status 用于验证连接状态或在需要时重试身份验证的工具。

______________________________________________________________________

OAuth 2.1授权服务器

对于像ChatGPT这样的远程MCP客户端,该服务器包括一个内置的OAuth 2.1授权服务器,支持:

  • PKCE (S256)用于安全授权码交换
  • 动态客户端注册 (RFC 7591)用于自动客户入职
  • 发现端点 (/.well-known/oauth-authorization-server, /.well-known/oauth-protected-resource)

OAuth流

  1. 客户端通过以下方式发现OAuth配置 /.well-known/oauth-protected-resource/.well-known/oauth-authorization-server
  2. 客户端通过以下方式动态注册 POST /oauth/register
  3. 客户端将用户重定向到 GET /oauth/authorize PKCE挑战
  4. 用户输入他们的 MCP_BEARER_TOKEN 在授权页面上
  5. 服务器使用授权码重定向回
  6. 客户端在以下位置交换访问令牌代码 POST /oauth/token 使用PKCE验证器
  7. 客户端使用访问令牌作为MCP请求的承载令牌

______________________________________________________________________

可用工具(72)

身份验证(2)

工具说明
check_auth_status检查当前身份验证状态
disconnect断开与TastyTrade的连接

账目(4)

工具说明
get_customer_accounts获取已验证客户的所有帐户
get_customer_resource获取客户资料信息
get_full_account_resource获取特定帐户的完整详细信息
get_account_status获取账户的交易状态

平衡与头寸(3)

工具说明
get_account_balances获取账户的当前余额
get_positions获取一个账户的所有头寸
get_balance_snapshots获取历史余额快照

订单(14)

工具说明
get_live_orders获取账户的实时(未结)订单
get_orders使用可选过滤功能获取订单
get_order按ID获取特定订单
create_order提交新订单
order_dry_run预览订单而不提交
cancel_order取消未结订单
replace_order替换现有订单
edit_order编辑现有订单
create_complex_order创建多腿复杂订单
cancel_complex_order取消复杂订单
reconfirm_order重新确认订单
replacement_order_dry_run预览替换订单
get_customer_live_orders获取所有账户的实时订单
get_customer_orders获取所有账户的订单

仪器(24)

工具说明
get_equity获取特定股权的详细信息
get_equity_definitions通过过滤获取股权定义
get_active_equities获取所有活跃股票
get_equity_options获取某个交易品种的股票期权
get_single_equity_option获得特定的股票期权
get_option_chain获取符号的选项链
get_nested_option_chain获取嵌套选项链
get_compact_option_chain获得紧凑的选项链
get_futures获取期货合约
get_single_future获取特定的期货合约
get_future_option_chain获取期货期权链
get_nested_future_option_chain获取嵌套期货期权链
get_future_options获取未来选项
get_single_future_option获取特定的未来选项
get_futures_products获取所有期货产品
get_single_future_product获取特定的期货产品
get_future_option_products获取未来的可选产品
get_single_future_option_product获取特定的未来选项产品
get_cryptocurrencies获取可用的加密货币
get_single_cryptocurrency获取特定的加密货币
get_warrants获取可用的认股权证
get_single_warrant获得特定的搜查令
get_quantity_decimal_precisions获取数量小数精度规则
search_symbols通过文本查询搜索符号

市场数据(7)

工具说明
get_market_metrics获取市场指标(IV排名、IV百分位数等)
get_historical_dividends获取历史股息数据
get_historical_earnings获取历史收益数据
get_quote通过DXLink获取实时报价
get_candles通过DXLink获取历史烛台数据
get_options_greeks通过DXLink获取选项希腊语(delta、gamma、theta、vega、rho)
get_api_quote_token获取DXLink API报价令牌

交易记录(3)

工具说明
get_transactions获取帐户的交易历史记录
get_transaction按ID获取特定交易
get_total_fees获取帐户的总费用

观察名单(9)

工具说明
get_all_watchlists获取所有个人观察名单
get_watchlist获取特定的观察名单
create_watchlist创建新的观察列表
replace_watchlist替换/更新观察名单
delete_watchlist删除监视列表
get_public_watchlists获取公共观察名单
get_public_watchlist获取特定的公共观察名单
get_pairs_watchlists获取配对交易观察名单
get_pairs_watchlist获取特定配对观察列表

风险与利润(6)

工具说明
get_margin_requirements获取账户的保证金/资本要求
estimate_margin_requirements估计订单的利润(模拟运行)
get_effective_margin_requirements获取特定交易品种的有效保证金
get_position_limit获取帐户的头寸限制
get_net_liq_history获取净清算价值历史记录
get_net_liq_value获取当前净变现价值

______________________________________________________________________

提示缓存

Anthropic和OpenAI都支持 快速缓存:当发送到模型的工具定义在连续回合之间相同时,提供者会缓存模式计算,并对后续请求收取正常费率的一小部分。使用73个工具(大约12000-15000个模式开销令牌),缓存可以通过以下方式降低每轮令牌成本 50–90% 在多回合对话中。

它如何与此服务器配合使用

此服务器的设计使工具定义始终在 相同的确定性顺序 在每次启动时:

  1. 身份验证工具
  2. 账户工具
  3. 平衡和定位工具
  4. 订购工具
  5. 仪器工具
  6. 市场数据工具
  7. 交易工具
  8. 监视列表工具
  9. 风险和利润工具

因为顺序永远不会改变,所以将工具列表转发给Anthropic或OpenAI的MCP客户端将在会话内和会话间的每个请求上发送相同的模式前缀,允许提供者从其缓存中提供模式。

验证缓存是否处于活动状态(Anthropic)

当您通过带有工具定义的Anthropic API使用Claude时,响应包括使用统计信息。查找非零 cache_read_input_tokens 字段:

{
  "usage": {
    "input_tokens": 512,
    "cache_creation_input_tokens": 0,
    "cache_read_input_tokens": 14203
  }
}

非零 cache_read_input_tokens 该值确认工具模式是从Anthropic的提示缓存中提供的。在新缓存窗口中的第一个请求上,您将看到 cache_creation_input_tokens 相反,这是缓存种子的一次性成本。

HTTP缓存控制标头

服务器设置以下内容 Cache-Control 每种响应类型的标头:

端点标题原因
/.well-known/oauth-protected-resourcepublic, max-age=3600稳定的OAuth元数据
/.well-known/oauth-authorization-serverpublic, max-age=3600稳定的OAuth元数据
POST /mcpno-store动态工具调用可能包含敏感的财务数据
GET /mcp 上海证券交易所 no-store实时服务器发送的事件流不可缓存
DELETE /mcpno-store会话拆分响应不可缓存
/healthno-store实时服务器状态

客户端要求

提示缓存由处理 客户端应用程序,不是这个服务器。当前的MCP SDK没有公开API来注入特定于提供商的 cache_control 注释(例如Anthropic的 {"type": "ephemeral"})到协议级别的工具列表中——这存在于客户端组装的LLM API请求中。要启用缓存,请执行以下操作:

  • 无烟煤API:添加 {"type": "ephemeral"} 作为 cache_control 注释到发送到Anthropic API的列表中的最后一个工具定义。此服务器中工具模式的稳定、确定性排序确保了内容哈希在每一轮都匹配。
  • OpenAI API:对于超过1024个令牌的提示,会自动进行提示缓存;不需要额外的配置。

______________________________________________________________________

在Replit上部署

此项目已配置为在Replit上作为永远在线的VM进行部署:

  1. 在“答复机密”面板中设置以下机密:

- MCP_BEARER_TOKEN - TASTYTRADE_CLIENT_SECRET - TASTYTRADE_REFRESH_TOKEN

  1. 点击 发布 部署
  2. 您的MCP端点将在 https://your-replit-url/mcp

______________________________________________________________________

项目结构

src/
  index.ts                    - Entry point (dual transport + OAuth 2.1 + bearer auth + TOOL_DISCOVERY_MODE)
  tastytrade-client.ts        - TastyTrade client wrapper (auto-authentication on startup)
  oauth-provider.ts           - Built-in OAuth 2.1 authorization server (DCR, PKCE, token management)
  auth-page.ts                - HTML authorization page rendered during OAuth flow
  tools/
    tool-registry.ts          - Internal registry of all tool definitions (used by discovery mode)
    discovery-tools.ts        - Meta-tools: list_tool_categories, search_tools, get_tool_details
    auth-tools.ts             - Authentication tools
    account-tools.ts          - Account & customer tools
    balance-position-tools.ts - Balances & positions
    order-tools.ts            - Order management
    instrument-tools.ts       - Instrument lookups
    market-data-tools.ts      - Market data (DXLink)
    transaction-tools.ts      - Transaction history
    watchlist-tools.ts        - Watchlist management
    risk-margin-tools.ts      - Margin & risk parameters

______________________________________________________________________

许可证

麻省理工学院

目录标签

目录标签

PythonClaude市场分析交易工具本地部署实时数据金融APIOAuth认证

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

oauth

运行时(runtime,运行环境)

Node.js

来源包(packageName,安装包名)

@modelcontextprotocol/inspector

工具数量(toolCount,工具数)

72

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiooauth部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP