Bybit MCP Server

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 integration with Ollama's LLM server, allowing interactive chat with Ollama models while using the Bybit tools to access cryptocurrency data.

Servidor MCP de Bybit

Un servidor de Protocolo de Contexto de Modelo (MCP) que proporciona acceso de solo lectura a la API de intercambio de criptomonedas de Bybit.

ESTE ES UN SOFTWARE DE CALIDAD ALPHA. ¡ÚSELO BAJO SU PROPIA RESPONSABILIDAD!

Use solo una clave API de solo lectura con este servidor. No confiaría mi código a su "dinero" y usted tampoco debería hacerlo.

Started integrated server Chatting with llama-3.2-11b-instruct:Q8_0 (Ctrl+C to exit) Tools are available - ask about cryptocurrency data! You: Whats the current spot price for USDT/BTC? Assistant: <tool>get_ticker</tool> <arguments> { "category": "spot", "symbol": "BTCUSDT" } </arguments> Tool result: { "timestamp": "2024-12-14T12:32:30.628Z", "meta": { "requestId": "ad5177bc-93d1-49ed-80a1-dd95b3ec970b" }, "symbol": "BTCUSDT", "category": "spot", "lastPrice": "101368.71", "price24hPcnt": "0.0107", "highPrice24h": "102661.3", "lowPrice24h": "99683.96", "prevPrice24h": "100292.67", "volume24h": "22543.911683", "turnover24h": "2285318788.68303381", "bid1Price": "101366.07", "bid1Size": "0.136049", "ask1Price": "101366.08", "ask1Size": "0.648039", "usdIndexPrice": "101365.707576" } Processing result... The current spot price for USDT/BTC is $101,368.71.

Características

Este servidor MCP proporciona las siguientes herramientas para interactuar con la API de Bybit:

  • get_ticker : Obtenga información del ticker en tiempo real para un par comercial
  • get_orderbook : Obtener datos del libro de órdenes (profundidad del mercado) para un par comercial
  • get_kline : obtiene datos de líneas k/velas para un par comercial
  • get_market_info : Obtenga información detallada del mercado para los pares comerciales
  • get_trades : Obtener transacciones recientes para un par comercial
  • get_instrument_info : Obtenga información detallada del instrumento para un par comercial específico
  • get_wallet_balance : Obtener información del saldo de la billetera del usuario autenticado
  • get_positions : Obtener información de las posiciones actuales del usuario autenticado
  • get_order_history : Obtener el historial de pedidos del usuario autenticado

Requisitos e instalación

  1. Node.js (versión 20+)
  2. pnpm ( npm i -g pnpm )
  3. Si desea ejecutar el cliente Ollama como se muestra en el inicio rápido a continuación, necesitará tener Ollama instalado y en ejecución, así como también el modelo de su elección.
pnpm i

Inicio rápido

Para instalar paquetes, compile todo e inicie el cliente interactivo:

pnpm i

Copie el archivo .env.example a .env y complete sus datos.

cp .env.example .env code .env

Servidor MCP (solamente)

pnpm serve

Servidor MCP y cliente Ollama

Instalar los paquetes de cliente necesarios:

(cd client && pnpm i)

Copie el archivo .env.example del cliente a .env y complete sus datos.

cp client/.env.example client/.env code client/.env

Luego, para iniciar el cliente y el servidor con un solo comando:

pnpm start

Configuración

Variables de entorno

El servidor requiere que las credenciales de la API de Bybit se configuren como variables de entorno:

  • BYBIT_API_KEY : Su clave API de Bybit (obligatoria)
  • BYBIT_API_SECRET : Su secreto de API de Bybit (obligatorio) - IMPORTANTE: ¡Cree solo una clave API de solo lectura!
  • BYBIT_USE_TESTNET : Establézcalo en "verdadero" para usar la red de prueba en lugar de la red principal (opcional, el valor predeterminado es falso)
  • DEBUG : Establezca en "verdadero" para habilitar el registro de depuración (opcional, el valor predeterminado es falso)

Variables de entorno del cliente (./client/.env):

  • OLLAMA_HOST : El host del servidor Ollama (predeterminado en http://localhost:11434 )
  • DEFAULT_MODEL : El modelo predeterminado que se utilizará para el chat (el valor predeterminado es llama-3.2-11b-instruct:Q8_0)

Configuración de ajustes de MCP

Para usar este servidor con clientes MCP, debe agregarlo a su archivo de configuración de MCP. La ubicación del archivo depende del cliente:

Ejemplo de MCP - Claude Desktop

Ubicación: ~/Library/Application\ Support/Claude/claude_desktop_config.json

{ "mcpServers": { "bybit": { "command": "node", "args": ["/path/to/bybit-mcp/build/index.js"], "env": { "BYBIT_API_KEY": "your-api-key", "BYBIT_API_SECRET": "your-api-secret", "BYBIT_USE_TESTNET": "false" } } } }

Ejemplo de MCP - gomcp

Ubicación: ~/.config/gomcp/config.yaml

mcp_servers: - name: "bybit" command: "cd /path/to/bybit-mcp && pnpm run serve" arguments: [] env: BYBIT_API_KEY: "" # Add your Bybit API **READ ONLY** key here BYBIT_API_SECRET: "" # Add your Bybit API **READ ONLY** secret here BYBIT_USE_TESTNET: "true" # Set to false for production DEBUG: "false" # Optional: Set to true for debug logging

Integración de clientes

Este paquete incluye un cliente TypeScript que proporciona una interfaz de línea de comandos para interactuar con los LLM de Ollama y el servidor bybit-mcp. El cliente admite:

  • Chat interactivo con modelos de Ollama
  • Acceso directo a todas las herramientas de trading de bybit-mcp
  • Gestión automática de servidores
  • Configuración basada en el entorno
  • Registro de depuración

Para obtener documentación detallada del cliente, consulte el archivo README del cliente .

Ejecución del servidor

Producción

  1. Construir el servidor:
pnpm build
  1. Ejecutar el servidor:
node build/index.js

Desarrollo

Para el desarrollo con recompilación automática de TypeScript:

pnpm watch

Para inspeccionar el servidor MCP durante el desarrollo:

pnpm inspector

Documentación de herramientas

Obtener información del ticker

{ "name": "get_ticker", "arguments": { "symbol": "BTCUSDT", "category": "spot" // optional, defaults to "spot" } }

Obtener datos de la cartera de pedidos

{ "name": "get_orderbook", "arguments": { "symbol": "BTCUSDT", "category": "spot", // optional, defaults to "spot" "limit": 25 // optional, defaults to 25 (available: 1, 25, 50, 100, 200) } }

Obtener datos de Kline/Candlestick

{ "name": "get_kline", "arguments": { "symbol": "BTCUSDT", "category": "spot", // optional, defaults to "spot" "interval": "1", // optional, defaults to "1" (available: "1", "3", "5", "15", "30", "60", "120", "240", "360", "720", "D", "M", "W") "limit": 200 // optional, defaults to 200 (max 1000) } }

Obtenga información del mercado

{ "name": "get_market_info", "arguments": { "category": "spot", // optional, defaults to "spot" "symbol": "BTCUSDT", // optional, if not provided returns info for all symbols in the category "limit": 200 // optional, defaults to 200 (max 1000) } }

Obtener operaciones recientes

{ "name": "get_trades", "arguments": { "symbol": "BTCUSDT", "category": "spot", // optional, defaults to "spot" "limit": 200 // optional, defaults to 200 (max 1000) } }

Obtener información del instrumento

{ "name": "get_instrument_info", "arguments": { "symbol": "BTCUSDT", // required "category": "spot" // optional, defaults to "spot" } }

Devuelve información detallada sobre un instrumento comercial, incluyendo:

  • Monedas base y de cotización
  • Estado comercial
  • Filtros de tamaño de lote (cantidades de pedido mínimas y máximas)
  • Filtros de precios (tamaño del tick)
  • Configuración de apalancamiento (para futuros)
  • Detalles del contrato (para futuros)

Obtener saldo de billetera

{ "name": "get_wallet_balance", "arguments": { "accountType": "UNIFIED", // required (available: "UNIFIED", "CONTRACT", "SPOT") "coin": "BTC" // optional, if not provided returns all coins } }

Obtener posiciones

{ "name": "get_positions", "arguments": { "category": "linear", // required (available: "linear", "inverse") "symbol": "BTCUSDT", // optional "baseCoin": "BTC", // optional "settleCoin": "USDT", // optional "limit": 200 // optional, defaults to 200 } }

Obtener historial de pedidos

{ "name": "get_order_history", "arguments": { "category": "spot", // required (available: "spot", "linear", "inverse") "symbol": "BTCUSDT", // optional "baseCoin": "BTC", // optional "orderId": "1234567890", // optional "orderLinkId": "myCustomId", // optional "orderStatus": "Filled", // optional (available: "Created", "New", "Rejected", "PartiallyFilled", "PartiallyFilledCanceled", "Filled", "Cancelled", "Untriggered", "Triggered", "Deactivated") "orderFilter": "Order", // optional (available: "Order", "StopOrder") "limit": 200 // optional, defaults to 200 } }

Categorías admitidas

  • spot : Comercio al contado
  • linear : Contratos perpetuos lineales
  • inverse : Contratos perpetuos inversos

Licencia

Instituto Tecnológico de Massachusetts (MIT)

ID: ydqbfrwdg4