Questrade MCP Server
Um servidor não oficial para integração com a API Questrade, fornecendo acesso a contas de negociação, dados de mercado e informações de portfólio.
Documentação
Questrade MCP Server
Um servidor não oficial do Model Context Protocol (MCP) para integração com a API da Questrade, fornecendo acesso a contas de negociação, dados de mercado e informações de portfólio.
⚠️ Aviso: Esta é uma integração não oficial, construída pela comunidade, e não é afiliada, endossada ou suportada pela Questrade Inc. Use por sua conta e risco.
Recursos
- 🔐 Autenticação: Gerenciamento de tokens OAuth 2.0 com renovação automática
- 📊 Dados de Conta: Acesse contas, posições, saldos e histórico de pedidos
- 📈 Dados de Mercado: Cotações em tempo real, busca de símbolos e candles históricos
- 🛡️ Tratamento de Erros: Tratamento abrangente de erros e registro de logs
- 🔧 TypeScript: Suporte completo a TypeScript com definições de tipos adequadas
Instalação
Opção 1: Instalar via npm (Recomendado)
npm install -g questrade-mcp-server
Opção 2: Clonar e Compilar
-
Clone este repositório
-
Instale as dependências:
npm install -
Copie o modelo de ambiente:
cp .env.example .env -
Configure suas credenciais da API Questrade em
.env:QUESTRADE_API_URL=https://api01.iq.questrade.com QUESTRADE_REFRESH_TOKEN=your_refresh_token_here # QUESTRADE_TOKEN_DIR=/path/to/custom/directory
Obtendo Credenciais da API Questrade
Para informações detalhadas sobre a autorização da API da Questrade, consulte a documentação oficial da API.
Passo 1: Gerar Token de API
-
Faça login na sua conta Questrade ou navegue diretamente para https://apphub.questrade.com/UI/UserApps.aspx
-
No canto superior direito, selecione "API centre" no menu suspenso sob seu nome de login

-
Clique em "Activate API" e concorde com o acordo de acesso à API
-
Clique em "Generate new token" para autorização manual

-
Copie o refresh token fornecido

Passo 2: Configurar o Ambiente
-
Copie seu refresh token para
.env:QUESTRADE_REFRESH_TOKEN=your_refresh_token_here -
O servidor MCP automaticamente irá:
- Usar seu refresh token para obter um access token
- Descobrir a URL correta do servidor da API
- Gerenciar a renovação do token quando necessário
- Persistir novos tokens em
~/.questrade-mcp/tokens.json(ou no diretório temporário do sistema como alternativa)
Importante: Refresh tokens são de uso único. O servidor tentará persistir novos refresh tokens em
~/.questrade-mcp/tokens.json(configurável via variável de ambienteQUESTRADE_TOKEN_DIR), mas se um token expirar ou for usado por outro processo, você precisará gerar um novo manualmente seguindo os passos acima.
Passo 3: Testar sua Configuração
Verifique se seu token funciona corretamente:
npm run test-connection
Nota: Se você receber um erro "'tsx' is not recognized", o script de teste compilará automaticamente o projeto primeiro e usará Node.js em vez disso.
Uso
Desenvolvimento
npm run dev
Produção
npm run build
npm start
Adicionando ao Claude Desktop
-
Encontre seu arquivo de configuração do Claude Desktop:
- Windows:
%APPDATA%\Claude\claude_desktop_config.json - macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
- Windows:
-
Adicione a configuração do servidor MCP:
Configuração rápida (Recomendado)
{ "mcpServers": { "questrade": { "command": "npx", "args": ["questrade-mcp-server"], "env": { "QUESTRADE_REFRESH_TOKEN": "your_refresh_token_here" } } } }Build de desenvolvimento local
{ "mcpServers": { "questrade": { "command": "node", "args": ["/path/to/your/project/dist/index.js"], "env": { "QUESTRADE_REFRESH_TOKEN": "your_refresh_token_here" } } } } -
Se estiver usando o build local, atualize o caminho para corresponder à localização real do seu projeto
-
Reinicie o Claude Desktop
-
Teste a conexão pedindo ao Claude para mostrar suas contas Questrade
Para instruções detalhadas de configuração, consulte claude-desktop-config.md.
Ferramentas Disponíveis
Gerenciamento de Contas
get_accounts- Obter todas as contas Questradeget_positions- Obter posições de uma conta específicaget_balances- Obter saldos de uma conta específicaget_orders- Obter histórico de pedidos de uma conta
Dados de Mercado
search_symbols- Buscar símbolos por prefixoget_symbol- Obter informações detalhadas do símbologet_quotes- Obter cotações em tempo real para símbolosget_candles- Obter dados históricos de preços
Autenticação
refresh_token- Renovar o access token da API
Prompts Integrados
O servidor MCP inclui prompts úteis para tarefas comuns de análise de negociação:
Resumo do Portfólio
Prompt: portfolio_summary
- Obtenha uma análise abrangente do portfólio com saldos de conta, posições e desempenho
- Opcional: Especifique
accountNumber(usa a primeira conta se não for fornecido)
Análise de Ações
Prompt: stock_analysis
- Analise uma ação específica com cotações atuais, informações do símbolo e desempenho recente
- Obrigatório:
symbol(ex.: "AAPL", "TSLA", "MSFT")
Oportunidades de Negociação
Prompt: trading_opportunities
- Identifique possíveis oportunidades de negociação com base nas posições atuais e dados de mercado
- Opcional:
accountNumber(usa a primeira conta se não for fornecido) - Opcional:
riskLevel("conservative", "moderate" ou "aggressive")
Exemplo de Uso
Basta pedir ao Claude:
- "Use o prompt portfolio_summary para analisar minha conta de negociação"
- "Analise a ação AAPL usando o prompt stock_analysis"
- "Mostre-me oportunidades de negociação com nível de risco conservador"
Exemplos de Ferramentas
Obter Contas
{
"name": "get_accounts"
}
Obter Posições
{
"name": "get_positions",
"arguments": {
"accountNumber": "12345678"
}
}
Buscar Símbolos
{
"name": "search_symbols",
"arguments": {
"prefix": "AAPL",
"offset": 0
}
}
Obter Cotações
{
"name": "get_quotes",
"arguments": {
"symbolIds": [8049, 9291]
}
}
Configuração
O servidor usa variáveis de ambiente para configuração:
QUESTRADE_API_URL: URL base para a API Questrade (padrão: https://api01.iq.questrade.com)QUESTRADE_REFRESH_TOKEN: Seu refresh token da APIQUESTRADE_TOKEN_DIR: Diretório personalizado para armazenamento de tokens (padrão:~/.questrade-mcp)
Tratamento de Erros
O servidor inclui tratamento abrangente de erros para:
- Tokens inválidos ou expirados (renovação automática)
- Parâmetros obrigatórios ausentes
- Limites de taxa da API e erros de rede
- Números de conta ou IDs de símbolo inválidos
Notas de Segurança
- Nunca envie seu arquivo
.envpara o controle de versão - Access tokens expiram após 7 dias
- Refresh tokens são usados automaticamente para obter novos access tokens
- Esta é uma ferramenta não oficial - certifique-se de cumprir os termos de serviço da API da Questrade
- Sempre verifique as decisões de negociação de forma independente antes de executar negociações
Desenvolvimento
Estrutura do Projeto
src/
├── index.ts # Main MCP server implementation
├── questrade-client.ts # Questrade API client
└── types.ts # TypeScript type definitions
Compilação
npm run build
Limpeza
npm run clean
Licença
MIT