CCXT MCP Server
Interactúa con más de 100 APIs de intercambio de criptomonedas utilizando la librería CCXT.
Documentación
Servidor MCP de CCXT
El Servidor MCP de CCXT es un servidor que permite a los modelos de IA interactuar con las APIs de intercambio de criptomonedas a través del Protocolo de Contexto de Modelo (MCP). Este servidor utiliza la biblioteca CCXT para proporcionar acceso a más de 100 intercambios de criptomonedas y sus capacidades de negociación.
🚀 Inicio Rápido
# Install the package globally
npm install -g @lazydino/ccxt-mcp
# Run with default settings
ccxt-mcp
# or run without installation
npx @lazydino/ccxt-mcp
Instalación y Uso
Instalación Global
# Install the package globally
npm install -g @lazydino/ccxt-mcp
Ejecución con npx
Puedes ejecutarlo directamente sin instalación:
# Using default settings
npx @lazydino/ccxt-mcp
# Using custom configuration file
npx @lazydino/ccxt-mcp --config /path/to/config.json
Ver ayuda:
npx @lazydino/ccxt-mcp --help
Configuración
Registro del Servidor MCP en Claude Desktop
-
Abrir la Configuración de Claude Desktop:
- Ve al menú de Configuración en la aplicación de Claude Desktop
- Encuentra la sección "Servidores MCP"
-
Agregar un Nuevo Servidor MCP:
- Haz clic en el botón "Agregar Servidor"
- Nombre del servidor:
ccxt-mcp - Comando:
npx @lazydino/ccxt-mcp - Argumentos adicionales (opcional):
--config /path/to/config.json
-
Guardar y Probar el Servidor:
- Guarda la configuración
- Prueba la conexión con el botón "Probar Conexión"
Métodos de Configuración - Dos Opciones
Opción 1: Incluir Información de Cuenta Directamente en la Configuración de Claude Desktop (Método Básico)
Este método incluye la información de cuenta de CCXT directamente en el archivo de configuración de Claude Desktop (claude_desktop_config.json):
{
"mcpServers": {
"ccxt-mcp": {
"command": "npx",
"args": ["-y", "@lazydino/ccxt-mcp"],
"mcpBearerToken": "YOUR_MCP_TOKEN",
"accounts": [
{
"name": "bybit_main",
"exchangeId": "bybit",
"apiKey": "YOUR_API_KEY",
"secret": "YOUR_SECRET_KEY",
"defaultType": "spot"
},
{
"name": "bybit_futures",
"exchangeId": "bybit",
"apiKey": "YOUR_API_KEY",
"secret": "YOUR_SECRET_KEY",
"defaultType": "swap"
}
]
}
}
}
Con este método, no necesitas un archivo de configuración separado. Toda la configuración se integra en el archivo de configuración de Claude Desktop.
Opción 2: Usar un Archivo de Configuración Separado (Método Avanzado)
Para separar la información de cuenta en un archivo de configuración separado, configura de la siguiente manera:
- Crear un Archivo de Configuración Separado (por ejemplo,
ccxt-config.json):
{
"mcpBearerToken": "YOUR_MCP_TOKEN",
"accounts": [
{
"name": "bybit_main",
"exchangeId": "bybit",
"apiKey": "YOUR_API_KEY",
"secret": "YOUR_SECRET_KEY",
"defaultType": "spot"
},
{
"name": "bybit_futures",
"exchangeId": "bybit",
"apiKey": "YOUR_API_KEY",
"secret": "YOUR_SECRET_KEY",
"defaultType": "swap"
}
]
}
Importante: El archivo de configuración debe contener un arreglo
accountsen el nivel raíz, como se muestra arriba.
Importante: Si ejecutas el servidor en modo HTTP+SSE (
--sse), establecemcpBearerTokenen el mismo archivo de configuración. Los clientes deben enviarAuthorization: Bearer <mcpBearerToken>en las solicitudes.
- Especificar la Ruta del Archivo de Configuración en la Configuración de Claude Desktop:
{
"mcpServers": {
"ccxt-mcp": {
"command": "npx",
"args": [
"-y",
"@lazydino/ccxt-mcp",
"--config",
"/path/to/ccxt-config.json"
]
}
}
}
Nota: Cuando se usa un archivo de configuración separado con la opción
--config, el servidor buscará el arregloaccountsdirectamente en la raíz del archivo JSON, no en la rutamcpServers.ccxt-mcp.accounts.
- Ejecución con Archivo de Configuración Externo desde la Línea de Comandos:
# Using custom configuration file
npx @lazydino/ccxt-mcp --config /path/to/ccxt-config.json
Puedes encontrar un archivo de configuración de ejemplo en config/ccxt-config.example.json en el repositorio.
Razones para Usar un Archivo de Configuración Separado:
- Previene problemas de referencias recursivas
- Separa información sensible como claves de API
- Configuración multi-entorno más fácil (desarrollo, pruebas, producción)
- Mejor control de versiones del archivo de configuración
Características Principales
-
Recuperación de Información de Mercado:
- Listar intercambios
- Ver información de mercado por intercambio
- Obtener información de precios para símbolos específicos
- Ver información del libro de órdenes para símbolos específicos
- Buscar datos históricos de OHLCV
-
Funciones de Negociación:
- Crear órdenes de mercado/límite
- Cancelar órdenes y verificar estado
- Ver saldos de cuenta
- Consultar historial de negociación
-
Análisis de Negociación:
- Análisis de rendimiento diario/semanal/mensual
- Cálculo de tasa de éxito (últimos 7 días, 30 días, todo el tiempo)
- Relación promedio de ganancia/pérdida (múltiplo R)
- Análisis de series máximas de pérdidas/ganancias consecutivas
- Seguimiento de variación de activos
- Métricas integrales de rendimiento
- Reconocimiento de patrones de negociación
- Cálculos de retorno basados en períodos
-
Gestión de Posiciones:
- Negociación con proporción de capital (por ejemplo, entrar con el 5% del capital de la cuenta)
- Configuración de apalancamiento en mercados de futuros (1-100x)
- Dimensionamiento dinámico de posiciones (basado en volatilidad)
- Implementación de estrategias de compra/venta dividida
-
Gestión de Riesgos:
- Configuración de stop loss basado en indicadores técnicos (por ejemplo, punto más bajo entre 10 velas en gráfico de 5 minutos)
- Stop loss/take profit basado en volatilidad (múltiplos de ATR)
- Límite máximo de pérdida permitida (diario/semanal)
- Configuración dinámica de take profit (ganancia progresiva)
Cómo Funciona
User <--> AI Model(Claude/GPT) <--> MCP Protocol <--> CCXT MCP Server <--> Cryptocurrency Exchange API
- Usuario: Solicitudes como "Dime el precio de Bitcoin" o "Compra Ethereum en mi cuenta de Binance"
- Modelo de IA: Entiende las solicitudes del usuario y determina qué herramientas/recursos MCP usar
- Protocolo MCP: Comunicación estandarizada entre la IA y el servidor MCP de CCXT
- Servidor MCP de CCXT: Se comunica con las APIs de intercambio de criptomonedas usando la biblioteca CCXT
- API de Intercambio: Proporciona datos reales y ejecuta órdenes de negociación
Uso con Modelos de IA
Cuando se registra con Claude Desktop, puedes hacer los siguientes tipos de solicitudes a los modelos de IA:
Precauciones y Prompts Recomendados
Al usar modelos de IA, considera las siguientes precauciones y usa el prompt a continuación para una negociación efectiva:
Your goal is to execute trades using the ccxt tools as much as possible
Cautions:
- Accurately identify whether it's a futures market or spot market before proceeding with trades
- If there's no instruction about percentage of capital or amount to use, always calculate and execute trades using the entire available capital
Notas:
- Los modelos de IA a veces confunden la negociación de futuros con la negociación al contado.
- Sin una guía clara sobre el tamaño del capital de negociación, la IA podría confundirse.
- Usar el prompt anterior ayuda a comunicar claramente tus intenciones de negociación.
Ejemplos Básicos de Consultas
Check and compare the current Bitcoin price on binance and coinbase.
Ejemplos Avanzados de Consultas de Negociación
Gestión de Posiciones
Open a long position on BTC/USDT futures market in my Bybit account (bybit_futures) with 5% of capital using 10x leverage.
Enter based on moving average crossover strategy and set stop loss at the lowest point among the 12 most recent 5-minute candles.
Análisis de Rendimiento
Analyze my Binance account (bybit_main) trading records for the last 7 days and show me the win rate, average profit, and maximum consecutive losses.
Análisis Detallado de Negociación
Analyze my trading performance on the bybit_futures account for BTC/USDT over the last 30 days. Calculate win rate, profit factor, and identify any patterns in my winning trades.
Show me the monthly returns for my bybit_main account over the past 90 days and identify my best and worst trading months.
Analyze my consecutive wins and losses on my bybit_futures account and tell me if I have any psychological patterns affecting my trading after losses.
Desarrollo
Compilación desde el Código Fuente
# Clone repository
git clone https://github.com/lazy-dinosaur/ccxt-mcp.git
# Navigate to project directory
cd ccxt-mcp
# Install dependencies
npm install
# Build
npm run build
Docker
Compilar y Ejecutar con Docker Compose
- Crea un archivo de configuración:
cp config/ccxt-config.example.json config/ccxt-config.json
Luego completa tus claves de API reales en config/ccxt-config.json.
También establece mcpBearerToken en ese mismo archivo de configuración.
2. Compilar la imagen:
docker compose build
- Iniciar el servidor MCP en segundo plano (modo SSE en localhost:2298):
docker compose up -d
- Verificar el endpoint de salud local:
curl -H "Authorization: Bearer YOUR_MCP_TOKEN" http://127.0.0.1:2298/healthz
Esta configuración de Compose ejecuta MCP sobre HTTP+SSE (/sse + /messages) en localhost:2298 para proxy inverso.
Configuración de Cliente MCP Remoto
Si tu cliente MCP se ejecuta en otro host, usa un proxy inverso de Nginx en esta máquina.
- Copia
ccxt-mcp.nginxa la ubicación de configuración de Nginx y actualiza las rutas de certificados:
sudo cp ccxt-mcp.nginx /etc/nginx/conf.d/ccxt-mcp.conf
- Edita
/etc/nginx/conf.d/ccxt-mcp.confy establece:
ssl_certificatessl_certificate_key- Reenvío del encabezado de autorización (ya incluido en este archivo)
- Recarga Nginx:
sudo nginx -t && sudo systemctl reload nginx
- En tu cliente MCP, configura la URL del servidor MCP a tu endpoint TLS:
- URL SSE:
https://YOUR_HOSTNAME_OR_IP:42299/sse - URL de Mensajes:
https://YOUR_HOSTNAME_OR_IP:42299/messages - Encabezado:
Authorization: Bearer YOUR_MCP_TOKEN
Puedes generar un token fuerte con:
openssl rand -hex 32
Ejemplo de configuración:
{
"mcpBearerToken": "YOUR_MCP_TOKEN",
"accounts": [
{
"name": "bybit_main",
"exchangeId": "bybit",
"apiKey": "YOUR_API_KEY",
"secret": "YOUR_SECRET_KEY"
}
]
}
Nota sobre puertos:
42298es HTTP (solo redirección)42299es HTTPS2298proviene deCCXTen un teclado de teléfono
Si tu cliente MCP acepta servidores MCP basados en comandos en lugar de configuración de URL, configura ccxt-mcp con:
- Comando:
docker - Argumentos:
[
"run",
"--rm",
"-i",
"-p",
"127.0.0.1:2298:2298",
"-v",
"/absolute/path/to/ccxt-mcp/config/ccxt-config.json:/config/ccxt-config.json:ro",
"ccxt-mcp:local",
"--sse",
"--host",
"0.0.0.0",
"--port",
"2298",
"--config",
"/config/ccxt-config.json"
]
Primero compila la imagen con docker compose build.
🤝 Contribuciones
¡Las contribuciones son bienvenidas! No dudes en enviar una Solicitud de Extracción (Pull Request).
📄 Licencia
Distribuido bajo la Licencia MIT. Consulta el archivo LICENSE para más información.
❤️ Soporte
Si encuentras útil este proyecto, ¡considera darle una ⭐️ en GitHub!