Questrade MCP服务器
](https://badge.fury.io/js/questrade-mcp-server) 
一 非官方的 模型上下文协议(MCP)服务器,用于与Questrade API集成,提供对交易账户、市场数据和投资组合信息的访问。
⚠️ 免责声明:这是一个非官方的、社区构建的集成,与Questrade股份有限公司无关、不受其认可或支持。使用风险自负。
特性
- 🔐 认证:OAuth 2.0令牌管理,自动刷新
- 📊 账户数据:访问帐户、头寸、余额和订单历史记录
- 📈 市场数据:实时报价、符号搜索和历史蜡烛
- 🛡️ 错误处理:全面的错误处理和记录
- 🔧 TypeScript:完全支持TypeScript,具有正确的类型定义
安装
选项1:从npm安装(推荐)
npm install -g questrade-mcp-server选项2:克隆和构建
- 克隆此存储库
- 安装依赖项:
npm install- 复制环境模板:
cp .env.example .env- 在中配置您的Questrade API凭据
.env:
QUESTRADE_API_URL=https://api01.iq.questrade.com
QUESTRADE_REFRESH_TOKEN=your_refresh_token_here
# QUESTRADE_TOKEN_DIR=/path/to/custom/directory获取Questrade API凭据
有关Questrade API授权的详细信息,请参阅 API官方文件.
步骤1:生成API令牌
- 登录到您的 Questrade账户 或直接导航到 https://apphub.questrade.com/UI/UserApps.aspx
- 在右上角,选择 “API中心” 从登录名下的下拉菜单中
- 点击 “激活API” 并同意API访问协议
- 点击 “生成新令牌” 用于手动授权
- 复制 刷新令牌 提供
步骤2:配置环境
- 将刷新令牌复制到
.env:
QUESTRADE_REFRESH_TOKEN=your_refresh_token_here- MCP服务器将自动:
- 使用刷新令牌获取访问令牌 - 发现正确的API服务器URL - 需要时处理令牌刷新 - 将新令牌持久化 ~/.questrade-mcp/tokens.json (或系统临时目录作为回退)
重要:刷新令牌仅供一次性使用。服务器将尝试将新的刷新令牌持久化到~/.questrade-mcp/tokens.json(可通过以下方式配置QUESTRADE_TOKEN_DIR环境变量),但如果令牌过期或被另一个进程使用,您需要按照上述步骤手动生成一个新的令牌。
步骤3:测试您的设置
验证您的令牌是否正常工作:
npm run test-connection备注:如果您收到“'tsx'无法识别”错误,测试脚本将首先自动构建项目并使用Node.js。
用法
发展
npm run dev生产
npm run build
npm start添加到Claude桌面
- 查找您的Claude Desktop配置文件:
- 视窗: %APPDATA%\Claude\claude_desktop_config.json - macOS: ~/Library/Application Support/Claude/claude_desktop_config.json - Linux: ~/.config/Claude/claude_desktop_config.json
- 添加MCP服务器配置:
快速设置(推荐)
{
"mcpServers": {
"questrade": {
"command": "npx",
"args": ["questrade-mcp-server"],
"env": {
"QUESTRADE_REFRESH_TOKEN": "your_refresh_token_here"
}
}
}
}地方发展建设
{
"mcpServers": {
"questrade": {
"command": "node",
"args": ["/path/to/your/project/dist/index.js"],
"env": {
"QUESTRADE_REFRESH_TOKEN": "your_refresh_token_here"
}
}
}
}- 如果使用本地构建,请更新路径 以匹配您的实际项目位置
- 重新启动克劳德桌面
- 测试连接 让克劳德出示你的Questrade账户
有关详细的设置说明,请参阅 claude-desktop-config.md.
可用工具
账户管理
get_accounts-获取所有Questrade帐户get_positions-获取特定账户的职位get_balances-获取特定账户的余额get_orders-获取帐户的订单历史记录
市场数据
search_symbols-按前缀搜索符号get_symbol-获取详细的符号信息get_quotes-获取交易品种的实时报价get_candles-获取历史价格数据
认证
refresh_token-刷新API访问令牌
内置提示
MCP服务器包括常见交易分析任务的有用提示:
投资组合摘要
提示: portfolio_summary
- 获得全面的投资组合分析,包括账户余额、头寸和业绩
- 可选:指定
accountNumber(如果没有提供,则使用第一个帐户)
股票分析
提示: stock_analysis
- 使用当前报价、交易品种信息和近期表现分析特定股票
- 必修的:
symbol(例如,“AAPL”、“TSLA”、“MSFT”)
交易机会
提示: trading_opportunities
- 根据当前头寸和市场数据识别潜在交易机会
- 可选:
accountNumber(如果没有提供,则使用第一个帐户) - 可选:
riskLevel(“保守”、“温和”或“激进”)
示例用法
只需问克劳德:
- “使用portfolio_summary提示分析我的交易账户”
- “使用stock_analysis提示符分析AAPL股票”
- “向我展示具有保守风险水平的交易机会”
工具示例
获取帐户
{
"name": "get_accounts"
}获取职位
{
"name": "get_positions",
"arguments": {
"accountNumber": "12345678"
}
}搜索符号
{
"name": "search_symbols",
"arguments": {
"prefix": "AAPL",
"offset": 0
}
}获取报价
{
"name": "get_quotes",
"arguments": {
"symbolIds": [8049, 9291]
}
}配置
服务器使用环境变量进行配置:
QUESTRADE_API_URL:Questrade API的基本URL(默认值:https://api01.iq.questrade.com)QUESTRADE_REFRESH_TOKEN:您的API刷新令牌QUESTRADE_TOKEN_DIR:令牌存储的自定义目录(默认:~/.questrade-mcp)
错误处理
该服务器包括全面的错误处理功能,用于:
- 令牌无效或过期(自动刷新)
- 缺少必要参数
- API速率限制和网络错误
- 帐号或符号ID无效
安全说明
- 永远不要承诺你的
.env文件到版本控制 - 访问令牌在7天后过期
- 刷新令牌会自动用于获取新的访问令牌
- 这是一个非官方工具-确保您遵守Questrade的API服务条款
- 在执行交易之前,始终独立验证交易决策
发展
项目结构
src/
├── index.ts # Main MCP server implementation
├── questrade-client.ts # Questrade API client
└── types.ts # TypeScript type definitions建筑
npm run build清洁
npm run clean许可证
麻省理工学院
