Skip to main content
Glama
ariadng

metatrader-mcp-server

Versión de PyPI Python 3.10+ Licencia: MIT

Deja que los asistentes de IA operen por ti usando lenguaje natural

Servidor MCP de MetaTrader


📑 Tabla de contenidos


Related MCP server: Financial Datasets MCP Server

🌟 ¿Qué es esto?

MetaTrader MCP Server es un puente que conecta asistentes de IA (como Claude, ChatGPT) con la plataforma de trading MetaTrader 5. En lugar de hacer clic en botones, simplemente puedes decirle a tu asistente de IA qué hacer:

"Muéstrame el saldo de mi cuenta" "Compra 0.01 lotes de EUR/USD" "Cierra todas las posiciones rentables"

La IA entiende tu solicitud y la ejecuta en MetaTrader 5 automáticamente.

Cómo funciona

You → AI Assistant → MCP Server → MetaTrader 5 → Your Trades

✨ Características

  • 🗣️ Trading en lenguaje natural - Habla con la IA en inglés sencillo para ejecutar operaciones

  • 🤖 Soporte multi-IA - Funciona con Claude Desktop, ChatGPT (vía Open WebUI) y más

  • 📊 Acceso total al mercado - Obtén precios en tiempo real, datos históricos e información de símbolos

  • 💼 Control total de la cuenta - Revisa saldo, capital, margen y estadísticas de trading

  • ⚡ Gestión de órdenes - Coloca, modifica y cierra órdenes con comandos sencillos

  • 🔒 Seguro - Todas las credenciales permanecen en tu máquina

  • 🌐 Interfaces flexibles - Úsalo como servidor MCP, API REST o flujo WebSocket

  • 📖 Bien documentado - Guías y ejemplos completos

🎯 ¿Para quién es esto?

  • Traders que desean automatizar sus operaciones usando IA

  • Desarrolladores que construyen bots de trading o herramientas de análisis

  • Analistas que necesitan acceso rápido a datos de mercado

  • Cualquiera interesado en combinar la IA con los mercados financieros

Por favor, lee esto con atención:

Operar con instrumentos financieros implica un riesgo significativo de pérdida. Este software se proporciona tal cual, y los desarrolladores no aceptan ninguna responsabilidad por pérdidas, ganancias o consecuencias derivadas del uso de este software.

Al usar este software, reconoces que:

  • Entiendes los riesgos del trading financiero

  • Eres responsable de todas las operaciones ejecutadas a través de este sistema

  • No harás responsables a los desarrolladores por ningún resultado

  • Estás usando este software bajo tu propio riesgo

Esto no es asesoramiento financiero. Opera siempre de forma responsable.


📋 Requisitos previos

Antes de comenzar, asegúrate de tener:

  1. Python 3.10 o superior - Descárgalo aquí

  2. Terminal MetaTrader 5 - Descárgalo aquí

  3. Cuenta de trading MT5 - Credenciales de cuenta demo o real

    • Número de inicio de sesión

    • Contraseña

    • Nombre del servidor (ej. "MetaQuotes-Demo")

🚀 Inicio rápido

Paso 1: Instalar el paquete

Abre tu terminal o símbolo del sistema y ejecuta:

pip install metatrader-mcp-server

Paso 2: Habilitar el trading algorítmico

  1. Abre MetaTrader 5

  2. Ve a HerramientasOpciones

  3. Haz clic en la pestaña Asesores expertos

  4. Marca la casilla Permitir trading algorítmico

  5. Haz clic en Aceptar

Paso 3: Elige tu interfaz

Elige una según cómo quieras usarlo:

Opción A: Usar con Claude Desktop (STDIO local)

  1. Encuentra tu archivo de configuración de Claude Desktop:

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

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

  2. Abre el archivo y añade esta configuración:

{
  "mcpServers": {
    "metatrader": {
      "command": "metatrader-mcp-server",
      "args": [
        "--login",     "YOUR_MT5_LOGIN",
        "--password",  "YOUR_MT5_PASSWORD",
        "--server",    "YOUR_MT5_SERVER",
        "--transport", "stdio"
      ]
    }
  }
}

Opcional: Especificar ruta personalizada de la terminal MT5

Si tu terminal MT5 está instalada en una ubicación no estándar, añade el argumento --path:

{
  "mcpServers": {
    "metatrader": {
      "command": "metatrader-mcp-server",
      "args": [
        "--login",     "YOUR_MT5_LOGIN",
        "--password",  "YOUR_MT5_PASSWORD",
        "--server",    "YOUR_MT5_SERVER",
        "--transport", "stdio",
        "--path",      "C:\\Program Files\\MetaTrader 5\\terminal64.exe"
      ]
    }
  }
}
  1. Reemplaza YOUR_MT5_LOGIN, YOUR_MT5_PASSWORD y YOUR_MT5_SERVER con tus credenciales reales

  2. Reinicia Claude Desktop

  3. ¡Empieza a chatear! Prueba: "¿Cuál es el saldo de mi cuenta?"

Opción B: Usar con Open WebUI (Para ChatGPT y otros LLMs)

  1. Inicia el servidor HTTP:

metatrader-http-server --login YOUR_LOGIN --password YOUR_PASSWORD --server YOUR_SERVER --host 0.0.0.0 --port 8000

Opcional: Especificar ruta personalizada de la terminal MT5

Si tu terminal MT5 está instalada en una ubicación no estándar, añade el argumento --path:

metatrader-http-server --login YOUR_LOGIN --password YOUR_PASSWORD --server YOUR_SERVER --path "C:\Program Files\MetaTrader 5\terminal64.exe" --host 0.0.0.0 --port 8000
  1. Abre tu navegador en http://localhost:8000/docs para ver la documentación de la API

  2. En Open WebUI:

    • Ve a ConfiguraciónHerramientas

    • Haz clic en Añadir servidor de herramientas

    • Introduce http://localhost:8000

    • Guarda

  3. ¡Ahora puedes usar herramientas de trading en tus chats de Open WebUI!

Opción C: Cotizaciones en tiempo real vía WebSocket

Transmite datos de ticks en vivo (bid, ask, spread, volumen) a través de WebSocket para paneles, bots o monitoreo:

metatrader-quote-server --login YOUR_LOGIN --password YOUR_PASSWORD --server YOUR_SERVER

Conéctate con cualquier cliente WebSocket:

websocat ws://localhost:8765

Recibirás un mensaje connected seguido de actualizaciones continuas de ticks en formato JSON. Consulta Servidor de cotizaciones WebSocket para obtener todos los detalles.

Opción D: Servidor MCP remoto (SSE)

Ejecuta el servidor MCP en un VPS de Windows (donde está instalado MT5) y conéctate a él de forma remota desde Claude Desktop o Claude Code.

Lado del servidor (en el VPS de Windows):

metatrader-mcp-server --login YOUR_LOGIN --password YOUR_PASSWORD --server YOUR_SERVER

Esto inicia el servidor SSE en 0.0.0.0:8080 por defecto. Personaliza con --host y --port:

metatrader-mcp-server --login YOUR_LOGIN --password YOUR_PASSWORD --server YOUR_SERVER --host 127.0.0.1 --port 9000

Lado del cliente (configuración de Claude Desktop en tu máquina local):

{
  "mcpServers": {
    "metatrader": {
      "url": "http://VPS_IP:8080/sse"
    }
  }
}

Reemplaza VPS_IP con la dirección IP de tu servidor.

Advertencia de seguridad: El protocolo MCP no incluye autenticación. Al exponer el servidor SSE a través de una red, usa un firewall para restringir el acceso por IP, colócalo detrás de un proxy inverso con autenticación o usa un túnel SSH.


🤖 Habilidad de asistente de trading (Claude Code / Claude Desktop)

Se incluye una habilidad de Asistente de terminal de trading preconstruida en el directorio claude-skill/. Proporciona a Claude conocimiento estructurado sobre las 32 herramientas de trading, formato de salida y experiencia en el dominio de MetaTrader 5.

Instalación para Claude Code

Opción 1: Enlace simbólico (recomendado)

Crea un enlace simbólico desde el directorio estándar de habilidades de Claude Code a claude-skill/:

cd metatrader-mcp-server
mkdir -p .claude
ln -s ../claude-skill .claude/skills

La habilidad será descubierta automáticamente y estará disponible como /trading.

Opción 2: Copiar

Copia los archivos de la habilidad en el directorio de habilidades de Claude Code:

cd metatrader-mcp-server
mkdir -p .claude/skills
cp -r claude-skill/trading .claude/skills/trading

Instalación para Claude Desktop

Para Claude Desktop, copia la habilidad al directorio global de habilidades de Claude:

# macOS
mkdir -p ~/Library/Application\ Support/Claude/skills
cp -r claude-skill/trading ~/Library/Application\ Support/Claude/skills/trading

# Windows
mkdir "%APPDATA%\Claude\skills"
xcopy /E claude-skill\trading "%APPDATA%\Claude\skills\trading\"

Qué hace la habilidad

  • Ejecución directa: Ejecuta operaciones inmediatamente cuando se solicita, sin necesidad de confirmación adicional

  • Flujos de trabajo: Sabe cómo encadenar herramientas para operaciones complejas (ej. colocar orden de mercado y luego establecer SL/TP)

  • Formato: Presenta datos de cuenta, posiciones, órdenes y precios en tablas limpias estilo terminal

  • Conocimiento del dominio: Entiende tipos de órdenes de MT5, marcos temporales, formatos de símbolos y modos de llenado

Uso

Una vez instalada, invócala con /trading o simplemente haz preguntas relacionadas con el trading de forma natural:

/trading
> Show me my account dashboard
> Buy 0.1 lots of EURUSD with SL at 1.0800
> Close all profitable positions
> Show me GBPUSD H4 candles

📡 Servidor de cotizaciones WebSocket

El servidor de cotizaciones WebSocket transmite datos de ticks en tiempo real desde MetaTrader 5 a cualquier cliente WebSocket. Es ideal para paneles en vivo, interfaces de trading algorítmico y monitoreo en tiempo real.

Iniciar el servidor

metatrader-quote-server --login YOUR_LOGIN --password YOUR_PASSWORD --server YOUR_SERVER

El servidor se inicia en ws://0.0.0.0:8765 por defecto.

Personalización

metatrader-quote-server \
  --login YOUR_LOGIN \
  --password YOUR_PASSWORD \
  --server YOUR_SERVER \
  --host 127.0.0.1 \
  --port 9000 \
  --symbols "EURUSD,GBPUSD,XAUUSD" \
  --poll-interval 200

Configuración

Bandera

Variable de entorno

Por defecto

Descripción

--host

QUOTE_HOST

0.0.0.0

Host para enlazar

--port

QUOTE_PORT

8765

Puerto para enlazar

--symbols

QUOTE_SYMBOLS

XAUUSD,USOIL,GBPUSD,USDJPY,EURUSD,BTCUSD

Símbolos separados por comas para transmitir

--poll-interval

QUOTE_POLL_INTERVAL_MS

100

Intervalo de sondeo de ticks en milisegundos

Las banderas de CLI tienen prioridad sobre las variables de entorno, que tienen prioridad sobre los valores predeterminados.

Formato de mensaje

Al conectar — el servidor envía un mensaje connected con la lista de símbolos, seguido de cualquier tick en caché:

{"type": "connected", "symbols": ["XAUUSD", "EURUSD", "GBPUSD"], "poll_interval_ms": 100}

Actualizaciones de ticks — enviadas siempre que el bid, ask o volumen cambian:

{"type": "tick", "symbol": "XAUUSD", "bid": 2345.67, "ask": 2345.89, "spread": 0.22, "volume": 1234, "time": "2026-03-14T10:30:45+00:00"}

Errores — enviados si no se puede obtener un símbolo:

{"type": "error", "symbol": "INVALID", "message": "Symbol not found or data unavailable"}

Ejemplo: Conectar con Python

import asyncio
import json
from websockets.asyncio.client import connect

async def main():
    async with connect("ws://localhost:8765") as ws:
        async for message in ws:
            tick = json.loads(message)
            if tick["type"] == "tick":
                print(f"{tick['symbol']}: {tick['bid']}/{tick['ask']} (spread: {tick['spread']})")

asyncio.run(main())

Notas de diseño

  • Detección de cambios: Solo transmite cuando el bid, ask o volumen realmente cambian, reduciendo el tráfico innecesario.

  • Conexiones tardías: Los nuevos clientes reciben ticks en caché inmediatamente al conectar, por lo que no tienen que esperar al siguiente cambio.

  • Seguridad de hilos de MT5: Todas las llamadas al SDK de MT5 se serializan a través de un ejecutor de un solo hilo para evitar problemas de acceso concurrente.

  • Múltiples clientes: Cualquier número de clientes WebSocket puede conectarse simultáneamente.


💡 Ejemplos de uso

Con Claude Desktop

Una vez configurado, puedes chatear de forma natural:

Revisa tu cuenta:

Tú: "Muéstrame la información de mi cuenta"

Claude: Devuelve saldo, capital, margen, apalancamiento, etc.

Obtén datos de mercado:

Tú: "¿Cuál es el precio actual de EUR/USD?"

Claude: Muestra bid, ask y spread

Coloca una operación:

Tú: "Compra 0.01 lotes de GBP/USD con stop loss en 1.2500 y take profit en 1.2700"

Claude: Ejecuta la operación y confirma

Gestiona posiciones:

Tú: "Cierra todas mis posiciones perdedoras"

Claude: Cierra posiciones e informa los resultados

Analiza el historial:

Tú: "Muéstrame todas mis operaciones de la semana pasada para EUR/USD"

Claude: Devuelve el historial de operaciones como una tabla

Con API HTTP

# Get account info
curl http://localhost:8000/api/v1/account/info

# Get current price
curl "http://localhost:8000/api/v1/market/price?symbol_name=EURUSD"

# Place a market order
curl -X POST http://localhost:8000/api/v1/order/market \
  -H "Content-Type: application/json" \
  -d '{
    "symbol": "EURUSD",
    "volume": 0.01,
    "type": "BUY",
    "stop_loss": 1.0990,
    "take_profit": 1.1010
  }'

# Get all open positions
curl http://localhost:8000/api/v1/positions

# Close a specific position
curl -X DELETE http://localhost:8000/api/v1/positions/12345

Como biblioteca de Python

from metatrader_client import MT5Client

# Connect to MT5
config = {
    "login": 12345678,
    "password": "your_password",
    "server": "MetaQuotes-Demo"
}
client = MT5Client(config)
client.connect()

# Get account statistics
stats = client.account.get_trade_statistics()
print(f"Balance: ${stats['balance']}")
print(f"Equity: ${stats['equity']}")

# Get current price
price = client.market.get_symbol_price("EURUSD")
print(f"EUR/USD Bid: {price['bid']}, Ask: {price['ask']}")

# Place a market order
result = client.order.place_market_order(
    type="BUY",
    symbol="EURUSD",
    volume=0.01,
    stop_loss=1.0990,
    take_profit=1.1010
)
print(result['message'])

# Close all positions
client.order.close_all_positions()

# Disconnect
client.disconnect()

📚 Operaciones disponibles

Gestión de cuenta

  • get_account_info - Obtener saldo, capital, beneficio, nivel de margen, apalancamiento, moneda

Datos de mercado

  • get_symbols - Listar todos los símbolos de trading disponibles

  • get_symbol_price - Obtener precio bid/ask actual para un símbolo

  • get_candles_latest - Obtener velas de precio recientes (datos OHLCV)

  • get_candles_by_date - Obtener velas históricas para un rango de fechas

  • get_symbol_info - Obtener información detallada del símbolo

Ejecución de órdenes

  • place_market_order - Ejecutar órdenes instantáneas de COMPRA/VENTA

  • place_pending_order - Colocar órdenes limit/stop para ejecución futura

  • modify_position - Actualizar stop loss o take profit

  • modify_pending_order - Modificar parámetros de orden pendiente

Gestión de posiciones

  • get_all_positions - Ver todas las posiciones abiertas

  • get_positions_by_symbol - Filtrar posiciones por par de trading

  • get_positions_by_id - Obtener detalles específicos de una posición

  • close_position - Cerrar una posición específica

  • close_all_positions - Cerrar todas las posiciones abiertas

  • close_all_positions_by_symbol - Cerrar todas las posiciones para un símbolo

  • close_all_profitable_positions - Cerrar solo operaciones ganadoras

  • close_all_losing_positions - Cerrar solo operaciones perdedoras

Órdenes pendientes

  • get_all_pending_orders - Listar todas las órdenes pendientes

  • get_pending_orders_by_symbol - Filtrar órdenes pendientes por símbolo

  • cancel_pending_order - Cancelar una orden pendiente específica

  • cancel_all_pending_orders - Cancelar todas las órdenes

A
license - permissive license
-
quality - not tested
D
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Issues opened vs closed

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/ariadng/metatrader-mcp-server'

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