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
Related MCP server: BSC MCP Server
Requisitos
Python 3.8+
Paquete
mcpcon herramientas CLI (mcp[cli])biblioteca
requestspara API RESTBiblioteca
websocketspara transmisiones WebSocketuvicornpara 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()
get_server_time() : obtiene la hora actual del servidor de Binance
Ejemplo:
get_server_time()
Datos de mercado
get_price(símbolo) : obtiene el precio actual de un par comercial
Ejemplo:
get_price(symbol="BTCUSDT")
get_order_book(símbolo, profundidad=10) : Obtener el libro de pedidos actual
Ejemplo:
get_order_book(symbol="ETHUSDT", depth=5)
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"
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)
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)
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)
get_aggregate_trades(símbolo, límite=20) : Obtener operaciones comprimidas/agregadas
Ejemplo:
get_aggregate_trades(symbol="ETHUSDT", limit=30)
get_24hr_ticker(símbolo) : Obtener estadísticas de cambio de precios de 24 horas
Ejemplo:
get_24hr_ticker(symbol="BNBUSDT")
get_all_24hr_tickers() : Obtener estadísticas de 24 horas para todos los símbolos
Ejemplo:
get_all_24hr_tickers()
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")
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")
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")
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")
get_average_price(símbolo) : Obtener el precio promedio actual (promedio ponderado de 5 minutos)
Ejemplo:
get_average_price(symbol="BTCUSDT")
get_book_ticker(símbolo) : Obtenga los mejores precios de oferta/demanda y cantidades
Ejemplo:
get_book_ticker(symbol="ETHBTC")
get_all_book_tickers() : Obtener la mejor oferta/demanda para todos los símbolos
Ejemplo:
get_all_book_tickers()
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")
subscribe_to_kline_stream(símbolo, intervalo="1m") : Suscribirse a actualizaciones de velas japonesas/kline
Ejemplo:
subscribe_to_kline_stream(symbol="BTCUSDT", interval="5m")
subscribe_to_ticker_stream(símbolo) : Suscríbase a actualizaciones de ticker las 24 horas
Ejemplo:
subscribe_to_ticker_stream(symbol="ETHUSDT")
subscribe_to_book_ticker_stream(símbolo) : Suscríbase a las mejores actualizaciones de oferta/demanda
Ejemplo:
subscribe_to_book_ticker_stream(symbol="BNBUSDT")
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)
list_active_subscriptions() : enumera todas las suscripciones de WebSocket activas
Ejemplo:
list_active_subscriptions()
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")
unsubscribe_from_stream(stream_name) : Cancelar la suscripción a una transmisión
Ejemplo:
unsubscribe_from_stream(stream_name="btcusdt@kline_1m")
cleanup_all_streams() : cierra todas las conexiones WebSocket y limpia los recursos
Ejemplo:
cleanup_all_streams()
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.pypara incluir la autenticaciónCrear 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