Questrade API集成服务器

一个非官方的Questrade API集成服务器,提供交易账户管理、市场数据访问和投资组合分析功能。

  • by zachmelin
  • JavaScript
  • 本地部署
  • 6 星标
  • 更新于
在 GitHub 查看 zachmelin/QuestradeMCP

使用说明

Questrade MCP服务器

一 非官方的 模型上下文协议(MCP)服务器,用于与Questrade API集成,提供对交易账户、市场数据和投资组合信息的访问。

⚠️ 免责声明:这是一个非官方的、社区构建的集成,与Questrade股份有限公司无关、不受其认可或支持。使用风险自负。

特性

  • 🔐 认证:OAuth 2.0令牌管理,自动刷新
  • 📊 账户数据:访问帐户、头寸、余额和订单历史记录
  • 📈 市场数据:实时报价、符号搜索和历史蜡烛
  • 🛡️ 错误处理:全面的错误处理和记录
  • 🔧 TypeScript:完全支持TypeScript,具有正确的类型定义

安装

选项1:从npm安装(推荐)

npm install -g questrade-mcp-server

选项2:克隆和构建

  1. 克隆此存储库

  2. 安装依赖项:

    npm install
    
  3. 复制环境模板:

    cp .env.example .env
    
  4. 在中配置您的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令牌

  1. 登录到您的 Questrade账户 或直接导航到 https://apphub.questrade.com/UI/UserApps.aspx

  2. 在右上角,选择 “API中心” 从登录名下的下拉菜单中

  3. 点击 “激活API” 并同意API访问协议

  4. 点击 “生成新令牌” 用于手动授权

  5. 复制 刷新令牌 提供

步骤2:配置环境

  1. 将刷新令牌复制到 .env:

    QUESTRADE_REFRESH_TOKEN=your_refresh_token_here
    
  2. 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桌面

  1. 查找您的Claude Desktop配置文件:

    • 视窗: %APPDATA%\Claude\claude_desktop_config.json
    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • Linux: ~/.config/Claude/claude_desktop_config.json
  2. 添加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"
          }
        }
      }
    }
    
  3. 如果使用本地构建,请更新路径 以匹配您的实际项目位置

  4. 重新启动克劳德桌面

  5. 测试连接 让克劳德出示你的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

许可证

麻省理工学院