Delta Exchange MCP

Servidor MCP oficial para Delta Exchange India: datos de mercado en vivo para todos, además de lecturas de tu propia cuenta y operaciones con una clave API.

Documentación

Delta Exchange

delta-exchange-mcp

Pregunta sobre Delta Exchange India en lenguaje natural: precios en vivo, cadenas de opciones, tus propias posiciones, desde Claude o tu editor.

Estado: Beta Versión de PyPI

Descargar para Claude Desktop Añadir a Cursor Instalar en VS Code

Claude Code Codex Windsurf Zed

Servidor MCP (Model Context Protocol) oficial para Delta Exchange India: datos de mercado para todos, y tu propia cuenta — tanto lecturas como trading en vivo — con una clave API. Lo que la clave puede hacer es lo que el asistente puede hacer.

[!NOTE] Beta. Funcional y usado internamente, pero la superficie de herramientas y la configuración pueden cambiar. Por favor abre un issue para errores, herramientas faltantes o detalles sin pulir — los reportes tempranos moldean directamente lo que se publica después.

Úsalo — sin configuración

Pulsa Descargar para Claude Desktop arriba y haz doble clic en el archivo. Claude Desktop muestra un formulario y luego instala el servidor — sin archivo de configuración y sin necesidad de instalar uv o Python primero: la aplicación descarga ambos por sí misma. A diferencia de los botones de Cursor y VS Code, este es una descarga de archivo en lugar de un enlace que configura tu editor; los paquetes solo son leídos por Claude Desktop, Claude Code y MCP para Windows.

El formulario tiene tres campos:

  • Entorno — con qué exchange hablar: india_prod para el real, o india_testnet para el sitio de práctica en demo.delta.exchange.
  • Clave API y secreto API — complétalos para que el asistente acceda a tu propia cuenta. Créalos en Cuenta → Claves API. Elige el permiso Read Data, que permite ver pero no operar. La documentación actual de Delta no establece si Read Data por sí solo es suficiente para lecturas de cuenta. Dejar los campos vacíos te da solo datos de mercado, a menos que ya hayas puesto una clave en el archivo compartido, en cuyo caso se usa esa.

[!WARNING] Una clave con el permiso Trading puede colocar órdenes reales sin límite de tamaño, dimensionadas en contratos en lugar de monedas, desde el momento en que se guarda. No hay modo separado, ni reinicio ni paso de confirmación. Dale al servidor una clave Read Data a menos que dejar que un asistente opere tu cuenta sea exactamente lo que quieres.

Claude Desktop — configuración JSON manual (también cómo fijar una versión específica)

Abre Configuración → Desarrollador → Editar configuración, o edita directamente en:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "delta-exchange-mcp": {
      "command": "uvx",
      "args": ["delta-exchange-mcp"]
    }
  }
}

Sal y relanza Claude Desktop para que los cambios surtan efecto.

Conéctalo a tu editor

Requisito previo: uv instalado en tu máquina. Verificación rápida:

uvx delta-exchange-mcp --help

El servidor ejecuta solo stdio local: tu cliente MCP lo lanza como subproceso y tus claves API nunca salen de tu máquina — viven en un archivo que todos los clientes leen, no en la configuración de cada cliente. Consulta Añade tu clave API. uvx resuelve la última versión publicada desde PyPI en cada lanzamiento. Para fijar una versión específica, usa uvx "delta-exchange-mcp==0.4.2". Fija 0.4.2 o más reciente: las versiones anteriores no arrancan en una instalación nueva (consulta Solución de problemas).

Cursor y VS Code se instalan con un clic desde los botones de arriba; cualquier otro cliente requiere una línea de comando o un bloque de configuración corto — todo cubierto por cliente en Instalar en tu cliente MCP.

Qué puedes preguntar

What's the current BTCUSD mark price and 24h range?
Show the options chain for BTC expiring this Friday.
What positions do I have open and what's my total unrealized PnL?
List my fills from the last 24 hours grouped by symbol.
How much USDT do I have free vs blocked in margin?

El asistente elige la herramienta correcta según la pregunta — nunca nombras una herramienta. Un exchange real, textualmente de una sesión de Claude Desktop contra la API en vivo:

precios de eth, usa delta-exchange

ETHUSD Perpetuo (Delta Exchange): $1,856.25 (último) — baja 3.15% en 24h (rango 24h: $1,847.25 – $1,936.25). Índice spot: $1,857.19. Precio de marca: $1,856.07. Tasa de financiación: −0.284%. Interés abierto: ~$54.2M.

Capacidades

Lo que el servidor puede hacer lo decide completamente tu clave API — tres niveles, cada uno un superconjunto estricto del anterior:

NivelTú establecesDesbloquea
Datos de mercadonadaPrecios, libros de órdenes, cadenas de opciones, velas, historial de financiación / OI, índices
Cuenta, solo lecturauna clave API — consulta Añade tu clave APITus posiciones, órdenes, ejecuciones, saldos, estadísticas de trading, preferencias
Tradinguna clave con permiso TradingColocar / editar / cancelar órdenes, brackets, apalancamiento, margen, cerrar todo

Una clave sin su secreto correspondiente se ignora y permaneces en datos de mercado — los dos siempre se usan juntos.

Trading

Los permisos de la clave son la única puerta. No hay modo que configurar ni reinicio que hacer: guarda una clave con permiso Trading y las herramientas de órdenes están ahí. Guarda una clave Read Data y siguen listadas, pero Delta rechaza cada orden que el asistente envía — que es el límite que realmente se mantiene, porque se aplica en el lado de Delta en lugar de aquí.

[!WARNING] Lo que esto no hará: limitar el nocional o el tamaño de posición, pedirte confirmación antes de enviar, ensayar una orden sin enviarla, mantener un registro local de lo que envió, convertir entre contratos y monedas, o juzgar si una orden tiene sentido. close_all_positions no toma argumentos y cierra toda tu cuenta. Esas son tu responsabilidad. Prueba DELTA_MCP_ENV=india_testnet primero.

Para mantener a un asistente fuera de tus órdenes, dale una clave Read Data. Para dejar que opere, dale una con permiso Trading — y ten en cuenta que Delta requiere una entrada de lista blanca de IP en tales claves.

Lo único que no ha cambiado: a diferencia de las lecturas GET, las mutaciones nunca se reintentan automáticamente en un timeout o un límite de tasa. Un fallo se muestra, no se reenvía silenciosamente, porque reenviar una orden puede colocarla dos veces.

Delta verifica el permiso para cada endpoint. Una respuesta UnauthorizedApiAccess significa que la clave no puede acceder a ese endpoint; no significa que la clave sea inválida.

Añade tu clave API

Puede que no necesites una. Los datos de mercado funcionan sin clave alguna, así que si solo quieres precios, cadenas de opciones o historial de financiación, omite esta sección por completo.

Para que un asistente lea tu propia cuenta, la clave va en un archivo, una vez — no en la configuración de cada cliente:

~/.delta-exchange-mcp/config.env

Cada cliente MCP en tu máquina lo lee, así que una clave configurada aquí funciona en Claude Desktop, Cursor, Claude Code y todo lo demás al mismo tiempo. El servidor crea el archivo la primera vez que se ejecuta, con instrucciones dentro, e imprime la ruta en su línea de inicio. Se crea solo para el propietario (0600).

Tres formas de completarlo. Elige una — todas escriben el mismo archivo.

En la conversación, sin salir de ella. Pide a tu asistente que conecte mi cuenta de Delta y aparece un pequeño formulario en línea:

Connect my Delta Exchange account

Pregunta tres cosas: en qué sitio se creó la clave (delta.exchange o el sitio de práctica en demo.delta.exchange), luego la clave y el secreto. Lo que el asistente puede hacer se deriva de los permisos de la propia clave. Verifica la clave contra Delta antes de guardar, y una vez que la guarda se reemplaza a sí mismo con la cuenta que conectó, para que puedas ver cuál tienes.

Lo que escribes en ese formulario va directamente al archivo. No es parte de la conversación y el asistente no puede leerlo, porque el formulario se ejecuta en su propio marco en lugar de en el chat. Esto requiere un cliente que renderice formularios en el chat — Claude Desktop y la aplicación de escritorio de Codex lo hacen hoy; si no aparece nada, el tuyo no lo hace, y el asistente te lo dirá y te señalará una de las otras dos formas.

[!IMPORTANT] Enviar tu clave al asistente como un mensaje de chat ordinario no es lo mismo. Un mensaje está en el contexto del asistente y se almacena en la conversación. El formulario existe precisamente para que no lo esté. Si un asistente ofrece tomar la clave de esa manera, recházalo.

En una terminal, que muestra un * por cada carácter que escribes o pegas y verifica que la clave funcione antes de guardar nada:

uvx delta-exchange-mcp login

A mano, si prefieres. Abre el archivo y completa las tres líneas que ya están esperando allí — NAME=value simple, sin puntuación que equivocar:

DELTA_API_KEY=your-key-here
DELTA_API_SECRET=your-secret-here
DELTA_MCP_ENV=india_prod

Las rutas de terminal y manual normalmente requieren reiniciar tu cliente MCP después; preguntar por el estado de la conexión también puede hacer que un servidor en ejecución reconcilie cambios externos seguros. El formulario en el chat normalmente no necesita ninguna: mueve atómicamente las llamadas de mercado y cuenta al entorno y clave guardados, registra las herramientas de cuenta allí, y le dice al cliente que su lista de herramientas cambió — así que la configuración inicial, los cambios de entorno y la rotación de claves se vuelven utilizables en la misma conversación, incluidas las herramientas de trading — siguen a la clave, así que guardar una que lleva permiso Trading las trae en la misma sesión.

Si tu cliente tiene su propio lugar para poner credenciales — el formulario del paquete de Claude Desktop, los avatares de VS Code, los campos de la aplicación de escritorio de Codex — esos siguen funcionando y tienen prioridad sobre este archivo.

Obteniendo la clave en sí

  1. Créala en delta.exchange/app/account/manageapikeys (testnet: demo.delta.exchange).
  2. Tanto api_key como api_secret se muestran una sola vez en la creación. Guarda el secreto inmediatamente; no se puede rederivar.
  3. El permiso Read Data es lo que impide que un asistente coloque órdenes. Una clave con permiso Trading puede colocarlas tan pronto como se guarda. La documentación actual de Delta no establece si Read Data por sí solo cubre cada lectura de cuenta.
  4. Delta puede rechazar una solicitud cuando su IP de origen no está en la lista blanca de la clave. El error nombra la IP que Delta recibió, para que puedas actualizar la clave en la gestión de API.
  5. Coincide el entorno: una clave de delta.exchange funciona solo con india_prod, una de demo.delta.exchange solo con india_testnet. Mezclarlos devuelve InvalidApiKey.

El formulario en el chat y login verifican el par de credenciales contra el endpoint de identidad de la cuenta y se niegan a guardar una clave que Delta rechaza. Ambos también escriben DELTA_MCP_ENV junto a la clave, para que el entorno permanezca con el par de credenciales.

Referencia de configuración

Cada ajuste se lee primero de tu cliente MCP, luego de ~/.delta-exchange-mcp/config.env. Un valor que tu cliente establece siempre gana; dejarlo vacío allí significa "no respondido" y cae al archivo.

VarPredeterminado¿Archivo compartido?Propósito
DELTA_MCP_ENVindia_prodsíindia_prod, india_testnet o india_devnet.
DELTA_API_KEY(sin establecer)síClave API. Opcional; cuando se establece con DELTA_API_SECRET, las herramientas de cuenta y trading se registran. Lo que la clave puede hacer realmente lo deciden sus propios permisos en el lado de Delta.
DELTA_API_SECRET(sin establecer)síSecreto API que coincide con DELTA_API_KEY.
DELTA_MCP_DEBUG(sin establecer)sí1/true/yes/on escribe URLs de solicitudes HTTP y cuerpos de respuesta en un archivo de registro (consulta Depuración).
DELTA_MCP_DEBUG_FILE(automático)síSobrescribe la ruta del registro de depuración. Predeterminado: ~/.delta-exchange-mcp/logs/debug-<timestamp>-<pid>.log.
DELTA_MCP_CONFIG_FILE(automático)n/aMueve el archivo compartido en sí. Predeterminado: ~/.delta-exchange-mcp/config.env.

La clave y su secreto siempre se toman del mismo lugar. Si cualquiera está establecido en tu cliente, ambos vienen de allí; de lo contrario, ambos vienen del archivo. Eso evita emparejar una clave obsoleta de tu shell con un secreto del archivo — una combinación que nunca se emitió junta, y que falla cada llamada firmada mientras el servidor reporta las herramientas de cuenta como disponibles.

Instala en tu cliente MCP

Ninguno de los fragmentos siguientes contiene credenciales, porque no las necesitan: coloca la clave en el archivo compartido una sola vez. Establece DELTA_MCP_ENV=india_testnet allí para testnet.

Deja que tu agente de codificación lo configure

Copia esto en Claude Code, Codex, Cursor o cualquier agente que pueda editar archivos en tu máquina. El chat de Claude Desktop no es uno de esos: no tiene acceso a tu sistema de archivos, así que usa el paquete Download for Claude Desktop en la parte superior de esta página.

Install the Delta Exchange MCP server into my MCP client: uvx delta-exchange-mcp, local
stdio, entry name delta-exchange-mcp, no env block. Leave my other servers alone, and
never ask me for my API key. Verify with `uvx delta-exchange-mcp --version` — never run
it bare, it serves stdio and won't exit. Then tell me to restart the app and stop there —
don't authenticate me first, don't send me to a terminal, and don't start a new chat. We
carry on in this one after the restart.

If you can't edit files on this machine, say so and read the README below for the
simplest path for my client — don't improvise a config for me to paste.

If you don't know where my client keeps its MCP config, read
https://raw.githubusercontent.com/delta-exchange/delta-exchange-mcp/main/README.md

La entrada que escribe no contiene credenciales y no necesita ninguna: el servidor se inicia con datos de mercado y funciona en cuanto reinicias. Tu clave va en el archivo compartido en su lugar, por eso el agente nunca tiene que tocarla. Para configurarlo manualmente, sigue los pasos para tu cliente a continuación.

Reinicia la aplicación y continúa en la misma conversación: pídele que conecte tu cuenta de Delta y el formulario se abrirá allí. El reinicio es necesario porque un cliente construye su lista de herramientas al iniciarse, por lo que un servidor agregado después aún no está conectado, que también es la razón por la que un asistente al que se le pide autenticarte antes de reiniciar recurrirá a una terminal. No tiene nada más que ofrecer en ese punto.

Cursor

Add to Cursor

Cursor muestra un diálogo de aprobación y escribe la entrada él mismo. DELTA_API_KEY y DELTA_API_SECRET llegan vacías, por lo que las herramientas de datos de mercado funcionan de inmediato: complétalas en la entrada que crea para acceder a tu cuenta. Están vacías a propósito, no con texto de marcador de posición: una clave no vacía registra las herramientas de cuenta y luego falla en cada llamada, mientras que una vacía mantiene el servidor limpiamente en modo de datos públicos.

Cursor — configuración JSON manual

Global: ~/.cursor/mcp.json (o %USERPROFILE%\.cursor\mcp.json en Windows). Alternativa a nivel de proyecto: .cursor/mcp.json en la raíz del repositorio.

{
  "mcpServers": {
    "delta-exchange-mcp": {
      "command": "uvx",
      "args": ["delta-exchange-mcp"]
    }
  }
}

Reinicia Cursor o abre Settings → Tools & MCP para actualizar.

VS Code (GitHub Copilot)

Install in VS Code Install in VS Code Insiders

VS Code solicita la clave y el secreto con la entrada enmascarada, ofrece el entorno como un menú desplegable y escribe la entrada él mismo: no hay nada que editar después. Deja ambos campos de credenciales vacíos para el modo solo de datos públicos.

VS Code — configuración JSON manual

Agrega a .vscode/mcp.json en tu espacio de trabajo. La clave de nivel superior es servers y cada entrada necesita un "type": "stdio" explícito. Declarar las credenciales como inputs significa que VS Code las solicita una vez y las almacena él mismo, por lo que tu secreto nunca termina en un archivo que podrías confirmar — y pickString convierte el entorno en un menú desplegable en lugar de texto libre que podrías escribir mal:

{
  "inputs": [
    {
      "type": "promptString",
      "id": "delta-api-key",
      "description": "Delta API key (leave empty for market data only)",
      "password": true
    },
    {
      "type": "promptString",
      "id": "delta-api-secret",
      "description": "Delta API secret (must match the key)",
      "password": true
    },
    {
      "type": "pickString",
      "id": "delta-env",
      "description": "Delta Exchange environment",
      "options": ["india_prod", "india_testnet"],
      "default": "india_prod"
    }
  ],
  "servers": {
    "delta-exchange-mcp": {
      "type": "stdio",
      "command": "uvx",
      "args": ["delta-exchange-mcp"],
      "env": {
        "DELTA_MCP_ENV": "${input:delta-env}",
        "DELTA_API_KEY": "${input:delta-api-key}",
        "DELTA_API_SECRET": "${input:delta-api-secret}"
      }
    }
  }
}

El bloque env es lo que hace que ocurran esas solicitudes: VS Code solo pregunta por una entrada que algo referencia, así que sin él, las tres declaraciones anteriores son inertes y nunca se te pide una clave.

Deja ambos campos vacíos para el modo solo de datos públicos. Una clave ingresada aquí es pasada por VS Code en cada inicio y tiene prioridad sobre el archivo compartido, por lo que el formulario en el chat no puede reemplazarla: limpia estos campos primero si quieres gestionar la clave allí en su lugar.

Claude Code

claude mcp add delta-exchange-mcp \
  --scope user -- uvx delta-exchange-mcp

--scope user hace que el servidor esté disponible en todos los proyectos. Verifica con claude mcp list.

Codex

codex mcp add delta-exchange-mcp -- uvx delta-exchange-mcp

Verifica con codex mcp list.

OpenClaw

openclaw mcp add delta-exchange-mcp \
  --command uvx \
  --arg delta-exchange-mcp

Repite --arg una vez por valor. Escribe en ~/.openclaw/openclaw.json, donde los servidores MCP viven bajo mcp.servers en lugar de una clave de nivel superior mcpServers.

Codex — configuración TOML, o el formulario de la aplicación de escritorio

Escribe ~/.codex/config.toml manualmente:

[mcp_servers.delta-exchange-mcp]
command = "uvx"
args = ["delta-exchange-mcp"]

Aplicación de escritorio: ve a Plugins → MCPs → Connect to a custom MCP, deja Type como STDIO y completa:

CampoValor
Nombredelta-exchange-mcp
Comando para lanzaruvx (uvx.exe en Windows)
Argumentosdelta-exchange-mcp
Variables de entornodejar vacío

Deja los otros campos vacíos y luego reinicia la aplicación.

Windsurf

Configuración JSON

Agrega a ~/.codeium/windsurf/mcp_config.json (macOS / Linux) o %USERPROFILE%\.codeium\windsurf\mcp_config.json (Windows). Ruta de interfaz: Settings → Cascade → Plugins (MCP servers) → Manage Plugins → View raw config.

{
  "mcpServers": {
    "delta-exchange-mcp": {
      "command": "uvx",
      "args": ["delta-exchange-mcp"]
    }
  }
}

Zed

Configuración JSON

Agrega a ~/.config/zed/settings.json (a nivel de usuario) o .zed/settings.json (a nivel de proyecto). Zed llama a la clave de nivel superior context_servers en lugar de mcpServers; la entrada en sí tiene la forma habitual:

{
  "context_servers": {
    "delta-exchange-mcp": {
      "command": "uvx",
      "args": ["delta-exchange-mcp"]
    }
  }
}

Google Antigravity

Configuración JSON

Agrega a ~/.gemini/config/mcp_config.json — nota el directorio .gemini, que Antigravity comparte en lugar de usar uno propio. En el IDE puedes llegar al mismo archivo sin escribir una ruta: el menú ... en la parte superior del panel del agente → MCP Servers → Manage MCP Servers → View raw config. En la CLI, escribe /mcp.

{
  "mcpServers": {
    "delta-exchange-mcp": {
      "command": "uvx",
      "args": ["delta-exchange-mcp"]
    }
  }
}

Prefiere ese archivo global sobre uno local al proyecto: se informa que un mcp_config.json a nivel de proyecto se lee y luego se ignora silenciosamente. Vuelve a abrir el panel de MCP después de editar para que el servidor realmente se inicie, y verifica que las credenciales realmente llegaron: hay informes de valores env que no llegan al proceso, en cuyo caso las herramientas de datos de mercado funcionan pero las herramientas de cuenta permanecen ausentes.

Seguridad

  • Tu clave es el límite. El servidor no aplica ninguna puerta propia: una clave con permiso de Trading puede colocar órdenes tan pronto como se guarda, y una clave de Read Data no puede, porque Delta la rechaza. Elige el permiso que realmente quieras.
  • Permiso de clave API. Delta verifica el permiso para cada endpoint. Una respuesta UnauthorizedApiAccess significa que la clave no puede acceder al endpoint solicitado; no prueba que la clave sea inválida. La documentación actual de Delta no establece si Read Data por sí solo es suficiente para lecturas de cuenta.
  • Sin ensayo, sin confirmación, sin límites. Las órdenes salen tal como se envían. No hay ejecución en seco, no hay registro local de lo que se envió, y no hay límite nocional o de tamaño.
  • Sin reintentos silenciosos. Las mutaciones nunca se reintentan automáticamente en un tiempo de espera o límite de velocidad; un fallo se muestra en lugar de reenviarse, porque reenviar una orden puede colocarla dos veces.
  • Solo stdio local. Las claves por usuario nunca salen de tu máquina; no hay endpoint alojado compartido.
  • Lee el código. Es un MCP de herramientas financieras; trátalo como tal.

Actualización

uvx almacena en caché el paquete resuelto, por lo que una nueva versión de PyPI no se recoge automáticamente. Para moverte a la última versión:

  1. Si tu configuración fija una versión (uvx "delta-exchange-mcp==0.4.2"), sube la fijación a la nueva versión, o elimínala para flotar a la última.

  2. Actualiza la caché de uvx para que obtenga la nueva compilación:

    uvx --refresh delta-exchange-mcp --help
    
  3. Recarga el servidor para que tu cliente reinicie el proceso — en Claude Code, ejecuta /mcp y reconecta delta-exchange-mcp, o reinicia el cliente. Otros clientes: reinicia la aplicación.

Las nuevas herramientas aparecen solo después del reinicio. La notificación MCP list_changed actualiza la lista de herramientas de un servidor ya en ejecución; no intercambia la versión subyacente del paquete, que siempre requiere un reinicio.

Solución de problemas

El formulario de clave no aparece en el chat

Le pediste al asistente que conecte tu cuenta, y respondió con una ruta de archivo y un comando en lugar de mostrar un formulario.

Ese es el respaldo previsto, no un fallo: renderizar un formulario en línea es una parte opcional de MCP que solo algunos clientes implementan, y el servidor no puede saber de antemano cuáles lo hacen — Claude Desktop, por ejemplo, renderiza estos formularios sin anunciar que puede. Así que el servidor siempre devuelve instrucciones funcionales junto con el formulario, y en un cliente que no muestra nada, solo ves las instrucciones.

Usa una de las otras dos formas: uvx delta-exchange-mcp login, o abre ~/.delta-exchange-mcp/config.env y completa las tres líneas. Ambas escriben el mismo archivo que habría escrito el formulario.

El formulario guardó mi clave, pero el asistente aún no puede ver mi cuenta

El formulario dice que guardó, y nombra una configuración que tu cliente establece en su propia configuración.

Ese es el fallo completo, dicho claramente: un valor en la entrada MCP de tu cliente — o en los campos que te pidió completar cuando lo instalaste — se lee antes que el archivo compartido y gana sobre él. Así que el formulario verificó tu clave, la guardó correctamente, y el servidor continúa firmando con lo que tu cliente pase en su lugar. Reiniciar no ayuda, porque el cliente pasa su propio valor de nuevo cada vez que se inicia.

Limpia esos campos de la entrada de ese cliente y luego reinícialo. Qué configuración es la culpable está nombrado en el mensaje que muestra el formulario. uvx delta-exchange-mcp login ejecuta la misma verificación y advierte en stderr, aunque allí informa lo que tu shell está configurando, ya que ese es el entorno que puede ver.

ModuleNotFoundError: No module named 'mcp.server.fastmcp'

Tu cliente muestra el servidor como fallido, y el proceso escribe este traceback en stderr.

La versión 0.4.1 y todas las versiones anteriores declaran mcp>=1.12.4 sin límite superior. El paquete mcp publicó 2.0.0 el 28 de julio de 2026, y 2.0.0 eliminó el módulo mcp.server.fastmcp. uvx resuelve desde el rango declarado e ignora uv.lock, por lo que una instalación nueva obtiene 2.0.0 y el servidor se detiene en la importación. Las instalaciones existentes y los checkouts de uv sync no se ven afectados.

Muévete a 0.4.2 o una versión más nueva, que establece un límite superior de mcp<2:

uvx --refresh delta-exchange-mcp --help

Para quedarte en una versión anterior, establece el límite tú mismo:

uvx --with "mcp<2" "delta-exchange-mcp==0.4.1"

Agrega el mismo argumento --with a tu configuración de cliente MCP si fijas una versión anterior allí:

"delta-exchange-mcp": {
  "command": "uvx",
  "args": ["--with", "mcp<2", "delta-exchange-mcp==0.4.1"]
}

Depuración / informar un error

Para capturar exactamente lo que el servidor envía y recibe — útil cuando una herramienta devuelve algo inesperado — establece DELTA_MCP_DEBUG=1 en tu configuración de cliente MCP:

"delta-exchange-mcp": {
  "command": "uvx",
  "args": ["delta-exchange-mcp"],
  "env": { "DELTA_MCP_DEBUG": "1" }
}

O establécelo una vez para cada cliente agregando DELTA_MCP_DEBUG=1 a el archivo compartido.

Reinicia el cliente y vuelve a ejecutar la acción. Cada llamada HTTP (URL de solicitud incl. parámetros de filtro + cuerpo de respuesta + estado) se registra en ~/.delta-exchange-mcp/logs/. La ruta exacta se imprime al inicio y también puedes simplemente preguntar al asistente: "¿dónde está el registro de depuración?".

El registro nunca contiene tu clave API, secreto o firmas de solicitud — pero los cuerpos de respuesta sí contienen los datos de tu cuenta (saldos, posiciones, transacciones). Revisa antes de compartir.

Ejecutar una rama de desarrollo / no publicada

Para probar un commit, rama o fork no publicado antes de que esté en PyPI, intercambia uvx delta-exchange-mcp por uvx --from git+<repo-url>@<ref> delta-exchange-mcp. <ref> puede ser una rama, etiqueta o SHA de commit.

Verificación de cordura en CLI:

uvx --from git+https://github.com/delta-exchange/delta-exchange-mcp.git@develop delta-exchange-mcp --help

uv almacena en caché la resolución de git, por lo que para recoger nuevos commits en la misma rama:

uvx --refresh --from git+https://github.com/delta-exchange/delta-exchange-mcp.git@develop delta-exchange-mcp --help

En tu configuración de cliente MCP

Reemplaza args en cualquier fragmento anterior con la forma git+. Tres variantes:

Claude Code:

claude mcp add delta-exchange-mcp-dev \
  --scope user \
  -- uvx --from git+https://github.com/delta-exchange/delta-exchange-mcp.git@develop delta-exchange-mcp

Cursor / Windsurf / Claude Desktop (cualquier JSON mcpServers):

{
  "mcpServers": {
    "delta-exchange-mcp-dev": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/delta-exchange/delta-exchange-mcp.git@develop",
        "delta-exchange-mcp"
      ]
    }
  }
}

Zed (clave context_servers):

{
  "context_servers": {
    "delta-exchange-mcp-dev": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/delta-exchange/delta-exchange-mcp.git@develop",
        "delta-exchange-mcp"
      ]
    }
  }
}

Registra el servidor de desarrollo bajo un nombre separado (por ejemplo, delta-exchange-mcp-dev) para que no colisione con la instalación de PyPI. La forma git+URL reconstruye desde la fuente en cada inicio y está destinada a probar cambios no publicados — quédate con uvx delta-exchange-mcp para uso diario.

Desarrollo

uv sync                       # install deps
uv run pytest                 # run tests (no network, respx-mocked)
uv run ruff check src tests   # lint
uv run delta-exchange-mcp     # run server (stdio)

Pruebas con MCP Inspector

# stdio CLI mode
bash scripts/inspect.sh --cli --method tools/list
bash scripts/inspect.sh --cli --method tools/call \
  --tool-name get_ticker --tool-arg symbol=BTCUSD

# with auth
DELTA_API_KEY=... DELTA_API_SECRET=... \
  bash scripts/inspect.sh --cli --method tools/call --tool-name get_wallet_balances

# web UI
bash scripts/inspect.sh        # → http://localhost:6274

Mantenedores: consulten RELEASING.md para el procedimiento de publicación.

Hoja de ruta

  • Ahora: datos públicos de mercado, acceso autenticado de solo lectura a la cuenta y operaciones limitadas únicamente por los permisos propios de la clave API.

Comentarios y problemas

Esta es la primera versión pública y queremos mejorarla. Por favor, reporten:

  • Errores (datos incorrectos, errores de firma/autenticación, fallos)
  • Herramientas o campos faltantes que deseen que se expongan
  • Aspectos deficientes en la configuración, documentación o mensajes de error
  • Cualquier cosa que construirían sobre esto si existiera una primitiva

→ github.com/delta-exchange/delta-exchange-mcp/issues

Por favor, eliminen api_key / api_secret de cualquier registro o captura de pantalla antes de adjuntarlos.