Questrade MCP Server
Un servidor no oficial para integrarse con la API de Questrade, que proporciona acceso a cuentas de trading, datos de mercado e información de cartera.
Documentación
Questrade MCP Server
Un servidor no oficial del Model Context Protocol (MCP) para integrarse con la API de Questrade, que proporciona acceso a cuentas de trading, datos de mercado e información de cartera.
⚠️ Aviso: Esta es una integración no oficial creada por la comunidad y no está afiliada, respaldada ni soportada por Questrade Inc. Úsala bajo tu propio riesgo.
Características
- 🔐 Autenticación: Gestión de tokens OAuth 2.0 con renovación automática
- 📊 Datos de cuenta: Acceso a cuentas, posiciones, saldos e historial de órdenes
- 📈 Datos de mercado: Cotizaciones en tiempo real, búsqueda de símbolos y velas históricas
- 🛡️ Manejo de errores: Manejo integral de errores y registro
- 🔧 TypeScript: Soporte completo de TypeScript con definiciones de tipos adecuadas
Instalación
Opción 1: Instalar desde npm (Recomendado)
npm install -g questrade-mcp-server
Opción 2: Clonar y compilar
-
Clona este repositorio
-
Instala las dependencias:
npm install -
Copia la plantilla de entorno:
cp .env.example .env -
Configura tus credenciales de la API de Questrade en
.env:QUESTRADE_API_URL=https://api01.iq.questrade.com QUESTRADE_REFRESH_TOKEN=your_refresh_token_here # QUESTRADE_TOKEN_DIR=/path/to/custom/directory
Obtener credenciales de la API de Questrade
Para obtener información detallada sobre la autorización de la API de Questrade, consulta la documentación oficial de la API.
Paso 1: Generar token de API
-
Inicia sesión en tu cuenta de Questrade o navega directamente a https://apphub.questrade.com/UI/UserApps.aspx
-
En la esquina superior derecha, selecciona "API centre" en el menú desplegable bajo tu nombre de usuario

-
Haz clic en "Activate API" y acepta el acuerdo de acceso a la API
-
Haz clic en "Generate new token" para la autorización manual

-
Copia el refresh token proporcionado

Paso 2: Configurar el entorno
-
Copia tu refresh token a
.env:QUESTRADE_REFRESH_TOKEN=your_refresh_token_here -
El servidor MCP automáticamente:
- Usará tu refresh token para obtener un token de acceso
- Descubrirá la URL correcta del servidor de la API
- Gestionará la renovación del token cuando sea necesario
- Guardará los nuevos tokens en
~/.questrade-mcp/tokens.json(o en el directorio temporal del sistema como alternativa)
Importante: Los refresh tokens son de un solo uso. El servidor intentará guardar los nuevos refresh tokens en
~/.questrade-mcp/tokens.json(configurable mediante la variable de entornoQUESTRADE_TOKEN_DIR), pero si un token caduca o es utilizado por otro proceso, tendrás que generar uno nuevo manualmente siguiendo los pasos anteriores.
Paso 3: Probar tu configuración
Verifica que tu token funciona correctamente:
npm run test-connection
Nota: Si recibes un error de "'tsx' is not recognized", el script de prueba compilará automáticamente el proyecto primero y usará Node.js en su lugar.
Uso
Desarrollo
npm run dev
Producción
npm run build
npm start
Añadir a Claude Desktop
-
Encuentra tu archivo de configuración de 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:
-
Añade la configuración del servidor MCP:
Configuración rápida (Recomendado)
{ "mcpServers": { "questrade": { "command": "npx", "args": ["questrade-mcp-server"], "env": { "QUESTRADE_REFRESH_TOKEN": "your_refresh_token_here" } } } }Compilación de desarrollo local
{ "mcpServers": { "questrade": { "command": "node", "args": ["/path/to/your/project/dist/index.js"], "env": { "QUESTRADE_REFRESH_TOKEN": "your_refresh_token_here" } } } } -
Si usas la compilación local, actualiza la ruta para que coincida con la ubicación real de tu proyecto
-
Reinicia Claude Desktop
-
Prueba la conexión pidiendo a Claude que muestre tus cuentas de Questrade
Para instrucciones de configuración detalladas, consulta claude-desktop-config.md.
Herramientas disponibles
Gestión de cuentas
get_accounts- Obtener todas las cuentas de Questradeget_positions- Obtener posiciones de una cuenta específicaget_balances- Obtener saldos de una cuenta específicaget_orders- Obtener historial de órdenes de una cuenta
Datos de mercado
search_symbols- Buscar símbolos por prefijoget_symbol- Obtener información detallada de un símbologet_quotes- Obtener cotizaciones en tiempo real de símbolosget_candles- Obtener datos históricos de precios
Autenticación
refresh_token- Renovar el token de acceso a la API
Prompts integrados
El servidor MCP incluye prompts útiles para tareas comunes de análisis de trading:
Resumen de cartera
Prompt: portfolio_summary
- Obtén un análisis completo de la cartera con saldos de cuentas, posiciones y rendimiento
- Opcional: Especifica
accountNumber(usa la primera cuenta si no se proporciona)
Análisis de acciones
Prompt: stock_analysis
- Analiza una acción específica con cotizaciones actuales, información del símbolo y rendimiento reciente
- Requerido:
symbol(p. ej., "AAPL", "TSLA", "MSFT")
Oportunidades de trading
Prompt: trading_opportunities
- Identifica posibles oportunidades de trading basadas en posiciones actuales y datos de mercado
- Opcional:
accountNumber(usa la primera cuenta si no se proporciona) - Opcional:
riskLevel("conservative", "moderate" o "aggressive")
Ejemplo de uso
Simplemente pide a Claude:
- "Usa el prompt portfolio_summary para analizar mi cuenta de trading"
- "Analiza la acción AAPL usando el prompt stock_analysis"
- "Muéstrame oportunidades de trading con nivel de riesgo conservador"
Ejemplos de herramientas
Obtener cuentas
{
"name": "get_accounts"
}
Obtener posiciones
{
"name": "get_positions",
"arguments": {
"accountNumber": "12345678"
}
}
Buscar símbolos
{
"name": "search_symbols",
"arguments": {
"prefix": "AAPL",
"offset": 0
}
}
Obtener cotizaciones
{
"name": "get_quotes",
"arguments": {
"symbolIds": [8049, 9291]
}
}
Configuración
El servidor utiliza variables de entorno para la configuración:
QUESTRADE_API_URL: URL base de la API de Questrade (predeterminado: https://api01.iq.questrade.com)QUESTRADE_REFRESH_TOKEN: Tu refresh token de la APIQUESTRADE_TOKEN_DIR: Directorio personalizado para el almacenamiento de tokens (predeterminado:~/.questrade-mcp)
Manejo de errores
El servidor incluye manejo integral de errores para:
- Tokens inválidos o caducados (renovación automática)
- Parámetros requeridos faltantes
- Límites de tasa de la API y errores de red
- Números de cuenta o IDs de símbolo inválidos
Notas de seguridad
- Nunca subas tu archivo
.enval control de versiones - Los tokens de acceso caducan después de 7 días
- Los refresh tokens se usan automáticamente para obtener nuevos tokens de acceso
- Esta es una herramienta no oficial: asegúrate de cumplir con los términos de servicio de la API de Questrade
- Verifica siempre las decisiones de trading de forma independiente antes de ejecutar operaciones
Desarrollo
Estructura del proyecto
src/
├── index.ts # Main MCP server implementation
├── questrade-client.ts # Questrade API client
└── types.ts # TypeScript type definitions
Compilación
npm run build
Limpieza
npm run clean
Licencia
MIT