remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
Integrations
Provides real-time and historical cryptocurrency market data from Binance, including current prices, order book snapshots, OHLCV candlestick data, and exchange information like trading rules and fee structures.
Servidor MCP de Binance
Un servidor de Protocolo de Contexto de Modelo (MCP) que expone los datos de intercambio de criptomonedas de Binance a agentes de Modelo de Lenguaje Grande (LLM). Este servidor permite a los LLM acceder a datos históricos y en tiempo real del mercado de Binance a través de una interfaz estandarizada.
Características
- Datos de precios en vivo : obtenga precios actuales para cualquier par comercial en Binance
- Acceso al libro de órdenes : recupere instantáneas del libro de órdenes que muestran el interés de compra/venta en diferentes niveles de precios
- Datos históricos de precios : obtenga datos de velas OHLCV (apertura, máximo, mínimo, cierre, volumen) para cualquier período de tiempo
- Transmisiones WebSocket en tiempo real : suscríbase a actualizaciones de transacciones, tickers y libros de órdenes en tiempo real a través de WebSockets
- Datos completos del mercado : acceso a operaciones, estadísticas de 24 horas, operaciones agregadas, datos de ventana móvil y más
- Información de intercambio : acceda a reglas comerciales, información de símbolos y estructuras de tarifas
- Operación de solo lectura : todos los datos se obtienen a través de la API REST pública de Binance (no se requieren claves API)
- Compatible con el estándar MCP : funciona con cualquier cliente LLM compatible con MCP
Requisitos
- Python 3.8+
- Paquete
mcp
con herramientas CLI (mcp[cli]
) - biblioteca
requests
para API REST - Biblioteca
websockets
para transmisiones WebSocket uvicorn
para servir (opcional)
Instalación
- Clonar este repositorio:
- Instalar dependencias:
Uso
Ejecutar el servidor directamente
Para ejecutar el servidor en modo independiente:
Esto iniciará el servidor MCP, que escuchará conexiones a través de STDIO.
Modo de desarrollo con MCP Inspector
Para el desarrollo y las pruebas, utilice el Inspector MCP:
Esto abre la interfaz de MCP Inspector donde puedes probar las herramientas del servidor de forma interactiva.
Instalación en Claude Desktop
Para utilizar este servidor con Claude Desktop:
- Instale las herramientas CLI de MCP si aún no lo ha hecho:
- Instalar el servidor en Claude Desktop:
- Ahora puedes acceder a los datos de Binance directamente desde tus conversaciones de Claude Desktop.
Cliente de ejemplo
Se proporciona un ejemplo de script de cliente para demostrar el uso programático:
Este script se conecta al servidor y recupera varios tipos de datos de mercado.
Herramientas disponibles
Conectividad e información básica
- ping_binance() : prueba la conectividad con el servidor API de Binance
- Ejemplo:
ping_binance()
- Ejemplo:
- get_server_time() : obtiene la hora actual del servidor de Binance
- Ejemplo:
get_server_time()
- Ejemplo:
Datos de mercado
- get_price(símbolo) : obtiene el precio actual de un par comercial
- Ejemplo:
get_price(symbol="BTCUSDT")
- Ejemplo:
- get_order_book(símbolo, profundidad=10) : Obtener el libro de pedidos actual
- Ejemplo:
get_order_book(symbol="ETHUSDT", depth=5)
- Ejemplo:
- get_historical_prices(símbolo, intervalo="1d", límite=100) : Obtener datos históricos de OHLCV
- Ejemplo:
get_historical_prices(symbol="BTCUSDT", interval="1h", limit=24)
- Intervalos válidos: "1m", "3m", "5m", "15m", "30m", "1h", "2h", "4h", "6h", "8h", "12h", "1d", "3d", "1w", "1M"
- Ejemplo:
- get_ui_klines(símbolo, intervalo="1d", límite=100) : Obtener datos de velas optimizados para la interfaz de usuario
- Ejemplo:
get_ui_klines(symbol="BTCUSDT", interval="1h", limit=24)
- Ejemplo:
- get_recent_trades(símbolo, límite=20) : obtiene las operaciones más recientes de un símbolo
- Ejemplo:
get_recent_trades(symbol="BTCUSDT", limit=50)
- Ejemplo:
- get_historical_trades(símbolo, límite=20, desde_id=Ninguno) : Obtener operaciones más antiguas para un símbolo
- Ejemplo:
get_historical_trades(symbol="BTCUSDT", limit=100, from_id=12345)
- Ejemplo:
- get_aggregate_trades(símbolo, límite=20) : Obtener operaciones comprimidas/agregadas
- Ejemplo:
get_aggregate_trades(symbol="ETHUSDT", limit=30)
- Ejemplo:
- get_24hr_ticker(símbolo) : Obtener estadísticas de cambio de precios de 24 horas
- Ejemplo:
get_24hr_ticker(symbol="BNBUSDT")
- Ejemplo:
- get_all_24hr_tickers() : Obtener estadísticas de 24 horas para todos los símbolos
- Ejemplo:
get_all_24hr_tickers()
- Ejemplo:
- get_trading_day_ticker(símbolo, tipo="FULL") : Obtener estadísticas de cambio de precio del día de negociación
- Ejemplo:
get_trading_day_ticker(symbol="BTCUSDT", type="FULL")
- Ejemplo:
- get_all_trading_day_tickers(type="FULL") : Obtener estadísticas del día de negociación para todos los símbolos
- Ejemplo:
get_all_trading_day_tickers(type="MINI")
- Ejemplo:
- get_rolling_window_ticker(símbolo, tamaño_de_ventana="1d", tipo="COMPLETO") : Obtener estadísticas de precios de ventanas móviles
- Ejemplo:
get_rolling_window_ticker(symbol="BTCUSDT", window_size="4h")
- Ejemplo:
- get_all_rolling_window_tickers(window_size="1d", type="FULL") : Obtener estadísticas de ventanas móviles para todos los símbolos
- Ejemplo:
get_all_rolling_window_tickers(window_size="4h", type="MINI")
- Ejemplo:
- get_average_price(símbolo) : Obtener el precio promedio actual (promedio ponderado de 5 minutos)
- Ejemplo:
get_average_price(symbol="BTCUSDT")
- Ejemplo:
- get_book_ticker(símbolo) : Obtenga los mejores precios de oferta/demanda y cantidades
- Ejemplo:
get_book_ticker(symbol="ETHBTC")
- Ejemplo:
- get_all_book_tickers() : Obtener la mejor oferta/demanda para todos los símbolos
- Ejemplo:
get_all_book_tickers()
- Ejemplo:
Información del mercado
- get_exchange_info() : Obtenga información completa sobre el intercambio, incluidas las reglas comerciales y la lista de símbolos
- get_trading_fees() : Obtiene las tarifas comerciales predeterminadas (nota: para fines de demostración, devuelve las tarifas públicas predeterminadas)
Flujos de WebSocket
- subscribe_to_trade_stream(símbolo) : Suscríbase a eventos comerciales en tiempo real
- Ejemplo:
subscribe_to_trade_stream(symbol="BTCUSDT")
- Ejemplo:
- subscribe_to_kline_stream(símbolo, intervalo="1m") : Suscribirse a actualizaciones de velas japonesas/kline
- Ejemplo:
subscribe_to_kline_stream(symbol="BTCUSDT", interval="5m")
- Ejemplo:
- subscribe_to_ticker_stream(símbolo) : Suscríbase a actualizaciones de ticker las 24 horas
- Ejemplo:
subscribe_to_ticker_stream(symbol="ETHUSDT")
- Ejemplo:
- subscribe_to_book_ticker_stream(símbolo) : Suscríbase a las mejores actualizaciones de oferta/demanda
- Ejemplo:
subscribe_to_book_ticker_stream(symbol="BNBUSDT")
- Ejemplo:
- subscribe_to_depth_stream(símbolo, niveles=10) : Suscribirse a las actualizaciones del libro de pedidos
- Ejemplo:
subscribe_to_depth_stream(symbol="BTCUSDT", levels=5)
- Ejemplo:
- list_active_subscriptions() : enumera todas las suscripciones de WebSocket activas
- Ejemplo:
list_active_subscriptions()
- Ejemplo:
- get_latest_stream_data(stream_name) : obtiene los datos más recientes de una transmisión
- Ejemplo:
get_latest_stream_data(stream_name="btcusdt@trade")
- Ejemplo:
- unsubscribe_from_stream(stream_name) : Cancelar la suscripción a una transmisión
- Ejemplo:
unsubscribe_from_stream(stream_name="btcusdt@kline_1m")
- Ejemplo:
- cleanup_all_streams() : cierra todas las conexiones WebSocket y limpia los recursos
- Ejemplo:
cleanup_all_streams()
- Ejemplo:
Estructura del proyecto
Ejemplos
Conectividad básica
Obtención de datos actuales del mercado
Trabajar con flujos de WebSocket
Estado de implementación
Para obtener una descripción detallada de los puntos finales de API implementados y planificados, consulte el documento Estado de implementación de API .
Ampliación del servidor
Agregar nuevas herramientas
Para agregar nuevas herramientas, cree funciones apropiadas en el módulo API de Binance y luego regístrelas como herramientas MCP en uno de los módulos de comando.
Compatibilidad con puntos finales de API privados
Para admitir llamadas API autenticadas:
- Modificar
binance_api.py
para incluir la autenticación - Crear módulos de comando adicionales para operaciones comerciales
- Registra los nuevos comandos en
server.py
Solución de problemas
- Problemas de conexión : asegúrese de que el servidor esté en ejecución antes de intentar conectarse con un cliente
- Limitación de velocidad : Binance puede limitar la velocidad de las llamadas API excesivas; considere implementar almacenamiento en caché para implementaciones de alto tráfico
- Estabilidad de WebSocket : las conexiones WebSocket pueden desconectarse después de 24 horas (límite de Binance); el servidor intentará reconectarse automáticamente
- Formato de datos : Diferentes símbolos o intervalos pueden devolver datos en formatos ligeramente diferentes
Licencia
Este proyecto está licenciado bajo la licencia MIT: consulte el archivo de LICENCIA para obtener más detalles.
Expresiones de gratitud
- Binance por proporcionar una API pública integral
- El proyecto MCP para estandarizar las interacciones de las herramientas LLM
This server cannot be installed
Un servidor de protocolo de contexto de modelo que expone los datos de intercambio de criptomonedas de Binance a los LLM, lo que permite a los agentes acceder a precios en tiempo real, libros de pedidos y datos históricos del mercado sin necesidad de claves API.