Skip to main content
Glama
akinabudu

ctrader-mcp-server

by akinabudu

Servidor MCP de cTrader

Un servidor independiente del Protocolo de Contexto de Modelo (MCP) que permite a los asistentes de IA interactuar con la plataforma de trading cTrader.

🚀 ¿Qué es esto?

Este servidor MCP permite a asistentes de IA como Claude ejecutar operaciones, analizar mercados y gestionar posiciones en cTrader a través de conversaciones en lenguaje natural.

Ejemplos de conversaciones:

  • "Muéstrame el saldo de mi cuenta" → Obtiene saldo, capital, posiciones

  • "Compra 0.01 lotes de EURUSD con stop en 1.08" → Realiza una operación

  • "Calcula el RSI para GBPUSD" → Analiza indicadores técnicos

  • "Cierra todas las posiciones con pérdidas" → Gestiona el riesgo

✨ Características

Operaciones de Trading

  • Órdenes de mercado - Ejecución inmediata al precio actual

  • Órdenes limitadas - Orden a un nivel de precio específico

  • Órdenes stop - Órdenes de stop-loss o stop-entry

  • Gestión de posiciones - Cierre total o parcial de posiciones

  • Gestión de órdenes - Cancelación de órdenes pendientes

Datos de mercado y análisis

  • Datos históricos - Velas OHLCV (9 marcos temporales: M1, M5, M15, M30, H1, H4, D1, W1, MN1)

  • Indicadores técnicos - RSI, MACD, EMA, SMA, Bandas de Bollinger, ATR, Estocástico

  • Ticks en tiempo real - Suscripción a feeds de precios en vivo

  • Búsqueda de símbolos - Exploración de más de 100 instrumentos de trading

Información de la cuenta

  • Estado de la cuenta - Saldo, capital, margen, margen libre

  • Seguimiento de posiciones - Todas las posiciones abiertas con P&L

  • Seguimiento de órdenes - Todas las órdenes pendientes

  • Análisis de P&L - Desglose detallado de ganancias/pérdidas

🎯 Herramientas disponibles (14 en total)

Herramienta

Descripción

get_account_status

Ver saldo, capital, margen y P&L

get_positions

Listar todas las posiciones abiertas con detalles

get_pending_orders

Mostrar todas las órdenes limitadas/stop pendientes

get_position_pnl

Obtener desglose detallado de P&L

create_market_order

Ejecutar operación al precio de mercado actual

create_limit_order

Colocar orden a un precio específico

create_stop_order

Colocar orden stop-loss o stop-entry

close_position

Cerrar posición total o parcialmente

cancel_order

Cancelar una orden pendiente

list_symbols

Explorar instrumentos de trading disponibles

get_historical_data

Obtener datos de velas OHLCV

get_indicator

Calcular indicadores técnicos

subscribe_to_ticks

Suscribirse a actualizaciones de precios en tiempo real

unsubscribe_from_ticks

Cancelar suscripción a actualizaciones de precios

📋 Requisitos previos

  • Python 3.10 o superior

  • Una cuenta de cTrader (demo o real)

  • Credenciales de la API de cTrader

🔧 Instalación

1. Obtener credenciales de la API de cTrader

  1. Visita https://help.ctrader.com/open-api/creating-new-app/

  2. Crea una aplicación para obtener:

    • CLIENT_ID

    • CLIENT_SECRET

  3. Genera un token de acceso:

    • ACCESS_TOKEN

  4. Encuentra tu ID de cuenta en cTrader:

    • ACCOUNT_ID

2. Instalar el servidor

# Clone or download this repository
cd ctrader-mcp-server

# Run installation script
./install.sh

3. Configurar credenciales

Crea un archivo .env en la raíz del proyecto:

CLIENT_ID=your_client_id_here
CLIENT_SECRET=your_client_secret_here
ACCESS_TOKEN=your_access_token_here
ACCOUNT_ID=your_account_id_here
HOST=demo

Importante: ¡Usa HOST=demo para pruebas!

4. Probar el servidor

# Activate virtual environment
source venv/bin/activate

# Run tests
python test_server.py

Deberías ver:

✓ Bot initialized and authenticated
✓ Account status retrieved
✓ Found X EUR symbols
...
All Tests Completed Successfully! ✓

🤖 Configurar el asistente de IA

Claude Desktop

  1. Encuentra tu archivo de configuración:

    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

    • Windows: %APPDATA%\Claude\claude_desktop_config.json

    • Linux: ~/.config/Claude/claude_desktop_config.json

  2. Añade esta configuración:

{
  "mcpServers": {
    "ctrader": {
      "command": "/absolute/path/to/ctrader-mcp-server/venv/bin/python",
      "args": [
        "/absolute/path/to/ctrader-mcp-server/server.py"
      ],
      "cwd": "/absolute/path/to/ctrader-mcp-server"
    }
  }
}
  1. Reinicia Claude Desktop

Otros clientes MCP

Este servidor implementa el protocolo estándar MCP y debería funcionar con cualquier cliente compatible con MCP.

💬 Ejemplos de conversaciones

Una vez configurado, puedes interactuar de forma natural:

Consultar cuenta:

Tú: "¿Cuánto dinero tengo en mi cuenta de cTrader?"

IA: "Tu cuenta tiene un saldo de $10,000, un capital de $10,250, con 3 posiciones abiertas que generan un P&L total de +$250."

Realizar operación:

Tú: "Compra 0.01 lotes de EURUSD con stop loss en 1.08 y take profit en 1.10"

IA: "¡Orden ejecutada! Comprados 0.01 lotes de EURUSD a 1.09245 con stop loss en 1.08000 y take profit en 1.10000."

Analizar mercado:

Tú: "Calcula el RSI para GBPUSD en el gráfico de 15 minutos"

IA: "El RSI(14) de GBPUSD en M15 está actualmente en 65.3, lo que indica que el par se acerca a territorio de sobrecompra."

Gestionar riesgo:

Tú: "Cierra todas las posiciones que tengan pérdidas superiores a $50"

IA: "Encontré 1 posición con pérdidas superiores a $50. Cerrada la posición de GBPUSD (pérdida: -$62.50)."

📚 Documentación

🔐 Seguridad y protección

Demo vs Trading real

  • La configuración predeterminada utiliza cuentas demo

  • Establece explícitamente HOST=live en .env para trading real

  • Prueba siempre exhaustivamente en demo antes de operar en real

Gestión de riesgos

  • Todas las órdenes admiten stop-loss y take-profit

  • El cierre de posiciones puede ser total o parcial

  • El volumen se especifica en lotes (0.01 = micro lote)

Seguridad de las credenciales

  • Credenciales almacenadas en el archivo .env (nunca subidas al repositorio)

  • Las variables de entorno nunca se exponen en los registros

  • Estado de autenticación validado antes de las operaciones

🚨 Advertencias importantes

⚠️ El trading implica un riesgo significativo. Puedes perder dinero. ⚠️ Prueba siempre primero en cuentas demo ⚠️ Empieza con posiciones pequeñas al operar en real ⚠️ Usa stop loss para limitar el riesgo ⚠️ Nunca compartas tus credenciales o tokens de acceso

🛠️ Desarrollo

Estructura del proyecto

ctrader-mcp-server/
├── server.py              # Main MCP server
├── ctrader_bot.py         # cTrader API wrapper
├── test_server.py         # Testing tool
├── install.sh             # Installation script
├── requirements.txt       # Python dependencies
├── .env.example           # Environment template
├── README.md              # This file
└── docs/                  # Documentation
    ├── QUICKSTART.md
    ├── GUIDE.md
    ├── ARCHITECTURE.md
    ├── CONFIGURATION.md
    └── API.md

Ejecución de pruebas

# Basic functionality test
python test_server.py

# Run with specific account
ACCOUNT_ID=12345 python test_server.py

# Test with live account (careful!)
HOST=live python test_server.py

Añadir nuevas herramientas

Para añadir nuevas herramientas:

  1. Añade la definición de la herramienta en server.py handle_list_tools()

  2. Implementa el manejador en _execute_tool()

  3. Añade el método correspondiente a ctrader_bot.py si es necesario

  4. Actualiza la documentación

📊 Rendimiento

  • Tiempo de inicio: 5-10 segundos (autenticación + carga de símbolos)

  • Ejecución de órdenes: <100ms (órdenes de mercado)

  • Datos históricos: 1-5 segundos (100 velas)

  • Cálculo de indicadores: <1 segundo

  • Uso de memoria: ~50-100 MB

🌐 Límites de tasa

La API de cTrader impone:

  • 50 solicitudes/segundo para operaciones de trading

  • 5 solicitudes/segundo para datos históricos

El servidor respeta automáticamente estos límites.

🐛 Solución de problemas

Errores de "Bot not ready"

  • Comprueba las credenciales en el archivo .env

  • Verifica la conexión a internet

  • Asegúrate de que la cuenta de cTrader esté activa

  • Revisa los registros del servidor para errores de autenticación

Símbolo no encontrado

  • Usa la herramienta list_symbols para ver los símbolos disponibles

  • Los nombres de los símbolos distinguen entre mayúsculas y minúsculas

  • Diferentes brokers pueden tener diferentes nombres de símbolos

Orden rechazada

  • Comprueba el saldo y el margen de la cuenta

  • Verifica que el símbolo sea negociable

  • Asegúrate de que el volumen cumpla con los requisitos mínimos

  • Comprueba si el mercado está abierto

Problemas de conexión

  • Verifica que las credenciales de la API sean correctas

  • Comprueba si la cuenta está activa

  • Asegúrate de que ningún firewall bloquee el puerto 5035 (demo) o 5034 (real)

🔗 Recursos

📄 Licencia

Licencia MIT - Consulta el archivo LICENSE para más detalles

⚖️ Descargo de responsabilidad

Este software se proporciona "tal cual" sin garantía de ningún tipo. El trading implica un riesgo significativo y puedes perder dinero. Úsalo bajo tu propia responsabilidad. Prueba siempre en cuentas demo antes de operar en real.

🤝 Contribución

¡Las contribuciones son bienvenidas! Por favor:

  1. Haz un fork del repositorio

  2. Crea una rama de funcionalidad

  3. Realiza tus cambios

  4. Añade pruebas si corresponde

  5. Envía una solicitud de extracción (pull request)

📧 Soporte


Hecho con ❤️ para traders algorítmicos

¿Listo para empezar? ¡Ejecuta ./install.sh y sigue las instrucciones anteriores!

-
security - not tested
F
license - not found
-
quality - not tested

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/akinabudu/ctrader-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server