Delta Exchange MCP
Servidor MCP oficial da Delta Exchange India: dados de mercado em tempo real para todos, além de leituras da sua própria conta e negociação com uma chave de API.
Documentação
delta-exchange-mcp
Pergunte sobre a Delta Exchange India em inglês simples — preços ao vivo, cadeias de opções, suas próprias posições — a partir do Claude ou do seu editor.
Servidor MCP (Model Context Protocol) oficial para Delta Exchange India: dados de mercado para todos, e sua própria conta — leituras e negociações ao vivo — com uma chave de API. O que a chave tem permissão para fazer é o que o assistente pode fazer.
[!NOTE] Beta. Funcional e usado internamente, mas a superfície de ferramentas e a configuração ainda podem mudar. Por favor, abra uma issue para bugs, ferramentas ausentes ou arestas — relatos iniciais moldam diretamente o que será lançado em seguida.
Use — sem configuração
Clique em Baixar para Claude Desktop acima e clique duas vezes no arquivo. O Claude Desktop mostra um
formulário e instala o servidor — sem arquivo de configuração e sem necessidade de instalar uv ou Python
primeiro: o aplicativo baixa ambos. Diferente dos botões do Cursor e do VS Code, este é um
download de arquivo em vez de um link que configura seu editor; os pacotes são lidos apenas pelo Claude
Desktop, Claude Code e MCP para Windows.
O formulário tem três campos:
- Ambiente — com qual exchange falar:
india_prodpara a real, ouindia_testnetpara o site de prática em demo.delta.exchange. - Chave de API e Segredo de API — preencha-os para permitir que o assistente acesse sua própria conta. Crie-os em Conta → Chaves de API. Escolha a permissão Ler Dados, que permite visualizar mas não negociar. A documentação atual da Delta não estabelece se apenas Ler Dados é suficiente para leituras de conta. Deixar os campos vazios fornece apenas dados de mercado, a menos que você já tenha colocado uma chave no arquivo compartilhado, caso em que essa será usada.
[!WARNING] Uma chave com a permissão Negociação pode colocar ordens reais sem limite de tamanho, dimensionadas em contratos em vez de moedas, a partir do momento em que é salva. Não há modo separado, nem reinicialização ou etapa de confirmação. Dê ao servidor uma chave de Ler Dados a menos que permitir que um assistente negocie sua conta seja exatamente o que você deseja.
Claude Desktop — configuração JSON manual (também como fixar uma versão específica)
Abra Configurações → Desenvolvedor → Editar configuração, ou edite diretamente em:
- 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"]
}
}
}
Saia e reinicie o Claude Desktop para que as alterações tenham efeito.
Conecte ao seu editor
Pré-requisito: uv instalado
na sua máquina. Verificação rápida:
uvx delta-exchange-mcp --help
O servidor roda apenas em stdio local: seu cliente MCP o inicia como um subprocesso, e suas
chaves de API nunca saem da sua máquina — elas ficam em um arquivo que todos os clientes leem, não em
cada configuração de cliente. Veja Adicionar sua chave de API. uvx resolve a versão
publicada mais recente do PyPI a cada inicialização. Para fixar uma versão específica, use uvx "delta-exchange-mcp==0.4.2". Fixe 0.4.2
ou mais recente: versões anteriores não iniciam em uma instalação nova (veja
Solução de problemas).
Cursor e VS Code instalam com um clique nos botões acima; qualquer outro cliente usa um comando de linha única ou um pequeno bloco de configuração — tudo coberto por cliente em Instalar no seu cliente MCP.
O que você pode perguntar
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?
O assistente escolhe a ferramenta certa com base na pergunta — você nunca nomeia uma ferramenta. Uma exchange real, verbatim de uma sessão do Claude Desktop contra a API ao vivo:
preços de eth, use delta-exchange
ETHUSD Perpétuo (Delta Exchange): $1.856,25 (último) — queda de 3,15% em 24h (faixa de 24h: $1.847,25 – $1.936,25). Índice spot: $1.857,19. Preço de marcação: $1.856,07. Taxa de funding: −0,284%. Juros em aberto: ~$54,2M.
Capacidades
O que o servidor pode fazer é decidido inteiramente pela sua chave de API — três níveis, cada um um superconjunto estrito do anterior:
| Nível | Você define | Desbloqueia |
|---|---|---|
| Dados de mercado | nada | Preços, livros de ofertas, cadeias de opções, candles, histórico de funding / OI, índices |
| Conta, somente leitura | uma chave de API — veja Adicionar sua chave de API | Suas posições, ordens, execuções, saldos, estatísticas de negociação, preferências |
| Negociação | uma chave com permissão Negociação | Colocar / editar / cancelar ordens, brackets, alavancagem, margem, fechar tudo |
Uma chave sem o segredo correspondente é ignorada e você permanece em dados de mercado — os dois são sempre usados juntos.
Negociação
As permissões da chave são o único portão. Não há modo para definir nem reinicialização a fazer: salve uma chave com permissão de Negociação e as ferramentas de ordem estarão lá. Salve uma chave de Ler Dados e elas ainda estarão listadas, mas a Delta rejeita toda ordem que o assistente envia — que é o limite que realmente se sustenta, porque é aplicado no lado da Delta, não aqui.
[!WARNING] O que isso não fará: limitar o valor nocional ou o tamanho da posição, pedir confirmação antes de enviar, ensaiar uma ordem sem enviá-la, manter um registro local do que enviou, converter entre contratos e moedas, ou julgar se uma ordem faz sentido.
close_all_positionsnão aceita argumentos e fecha toda a sua conta. Essas são suas responsabilidades. TenteDELTA_MCP_ENV=india_testnetprimeiro.
Para manter um assistente longe das suas ordens, dê a ele uma chave de Ler Dados. Para deixá-lo negociar, dê uma com permissão de Negociação — e observe que a Delta exige uma entrada de whitelist de IP em tais chaves.
A única coisa que não mudou: diferente de leituras GET, mutações nunca são reenviadas automaticamente em timeout ou limite de taxa. Uma falha é exibida, não reenviada silenciosamente, porque reenviar uma ordem pode colocá-la duas vezes.
A Delta verifica a permissão para cada endpoint. Uma resposta UnauthorizedApiAccess significa que a
chave não pode acessar aquele endpoint; não significa que a chave é inválida.
Adicionar sua chave de API
Você pode não precisar de uma. Dados de mercado funcionam sem nenhuma chave, então se você só quer preços, cadeias de opções ou histórico de funding, pule esta seção inteiramente.
Para permitir que um assistente leia sua própria conta, a chave vai em um arquivo, uma vez — não em cada configuração de cliente:
~/.delta-exchange-mcp/config.env
Todo cliente MCP na sua máquina o lê, então uma chave definida aqui funciona no Claude Desktop,
Cursor, Claude Code e tudo mais ao mesmo tempo. O servidor cria o arquivo na primeira
execução, com instruções dentro, e imprime o caminho na linha de inicialização.
Ele é criado somente para o proprietário (0600).
Três maneiras de preenchê-lo. Escolha uma — todas escrevem o mesmo arquivo.
Na conversa, sem sair dela. Peça ao seu assistente para conectar minha conta Delta e um pequeno formulário aparece inline:
Connect my Delta Exchange account
Ele pergunta três coisas: em qual site a chave foi criada (delta.exchange ou o site de prática em demo.delta.exchange), depois a chave e o segredo. O que o assistente pode fazer segue das permissões da própria chave. Ele verifica a chave contra a Delta antes de salvar, e uma vez que salva, substitui a si mesmo pela conta que conectou, para que você veja qual obteve.
O que você digita nesse formulário vai direto para o arquivo. Não faz parte da conversa e o assistente não pode lê-lo, porque o formulário roda em seu próprio frame em vez de no chat. Isso requer um cliente que renderize formulários no chat — Claude Desktop e o aplicativo desktop do Codex fazem isso hoje; se nada aparecer, o seu não faz, e o assistente dirá isso e apontará para uma das outras duas maneiras.
[!IMPORTANT] Enviar sua chave ao assistente como uma mensagem de chat comum não é a mesma coisa. Uma mensagem está no contexto do assistente e é armazenada na conversa. O formulário existe precisamente para que não seja. Se um assistente se oferecer para receber a chave dessa forma, recuse.
Em um terminal, que mostra um * para cada caractere que você digita ou cola e verifica se a chave
funciona antes de salvar qualquer coisa:
uvx delta-exchange-mcp login
Manualmente, se preferir. Abra o arquivo e preencha as três linhas já esperando
lá — NAME=value simples, sem pontuação para errar:
DELTA_API_KEY=your-key-here
DELTA_API_SECRET=your-secret-here
DELTA_MCP_ENV=india_prod
As rotas de terminal e manual normalmente exigem reiniciar seu cliente MCP depois; perguntar pelo status da conexão também pode fazer um servidor em execução reconciliar alterações externas seguras. O formulário no chat geralmente não precisa de nenhum dos dois: ele move atomicamente chamadas de mercado e conta para o ambiente e chave salvos, registra as ferramentas de conta lá, e informa ao cliente que sua lista de ferramentas mudou — então configuração inicial, mudanças de ambiente e rotação de chave se tornam utilizáveis na mesma conversa, incluindo as ferramentas de negociação — elas seguem a chave, então salvar uma que carrega permissão de Negociação as traz na mesma sessão.
Se seu cliente tem seu próprio lugar para colocar credenciais — o formulário do pacote Claude Desktop, os prompts do VS Code, os campos do aplicativo desktop do Codex — esses ainda funcionam e têm precedência sobre este arquivo.
Obtendo a chave em si
- Crie-a em delta.exchange/app/account/manageapikeys (testnet: demo.delta.exchange).
- Tanto
api_keyquantoapi_secretsão mostrados uma vez na criação. Salve o segredo imediatamente; ele não pode ser rederivado. - A permissão Ler Dados é o que impede um assistente de colocar ordens. Uma chave com permissão de Negociação pode colocá-las assim que é salva. A documentação atual da Delta não estabelece se apenas Ler Dados cobre toda leitura de conta.
- A Delta pode rejeitar uma solicitação quando seu IP de origem não está na whitelist da chave. O erro nomeia o IP que a Delta recebeu, para que você possa atualizar a chave no gerenciamento de API.
- Combine o ambiente: uma chave de delta.exchange funciona apenas com
india_prod, uma de demo.delta.exchange apenas comindia_testnet. Misturá-los retornaInvalidApiKey.
O formulário no chat e login verificam o par de credenciais contra o endpoint de identidade da conta
e recusam salvar uma chave que a Delta rejeita. Ambos também escrevem DELTA_MCP_ENV junto com a
chave, para que o ambiente permaneça com o par de credenciais.
Referência de configurações
Cada configuração é lida primeiro do seu cliente MCP, depois de ~/.delta-exchange-mcp/config.env.
Um valor que seu cliente define sempre vence; deixá-lo vazio lá significa "não respondido" e cai
para o arquivo.
| Var | Padrão | Arquivo compartilhado? | Propósito |
|---|---|---|---|
DELTA_MCP_ENV | india_prod | sim | india_prod, india_testnet ou india_devnet. |
DELTA_API_KEY | (não definido) | sim | Chave de API. Opcional; quando definida com DELTA_API_SECRET, as ferramentas de conta e negociação são registradas. O que a chave pode realmente fazer é decidido por suas próprias permissões no lado da Delta. |
DELTA_API_SECRET | (não definido) | sim | Segredo de API correspondente a DELTA_API_KEY. |
DELTA_MCP_DEBUG | (não definido) | sim | 1/true/yes/on escreve URLs de solicitações HTTP e corpos de resposta em um arquivo de log (veja Depuração). |
DELTA_MCP_DEBUG_FILE | (automático) | sim | Substitui o caminho do log de depuração. Padrão: ~/.delta-exchange-mcp/logs/debug-<timestamp>-<pid>.log. |
DELTA_MCP_CONFIG_FILE | (automático) | n/a | Move o próprio arquivo compartilhado. Padrão: ~/.delta-exchange-mcp/config.env. |
A chave e seu segredo são sempre tomados do mesmo lugar. Se qualquer um estiver definido no seu cliente, ambos vêm de lá; caso contrário, ambos vêm do arquivo. Isso impede combinar uma chave desatualizada do seu shell com um segredo do arquivo — uma combinação que nunca foi emitida juntos, e que falha em toda chamada assinada enquanto o servidor reporta as ferramentas de conta como disponíveis.
Instalar no seu cliente MCP
Nenhum dos trechos abaixo carrega credenciais, porque não precisa — coloque a chave em
o arquivo compartilhado uma única vez. Defina DELTA_MCP_ENV=india_testnet lá
para testnet.
Deixe seu agente de codificação configurar
Copie isto no Claude Code, Codex, Cursor ou qualquer agente que possa editar arquivos na sua máquina. O chat do Claude Desktop não é um deles — ele não tem acesso ao seu sistema de arquivos, então use o pacote Download para Claude Desktop no topo desta 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
A entrada que ele escreve não contém credenciais e não precisa de nenhuma — o servidor sobe com dados de mercado e funciona no momento em que você reinicia. Sua chave vai em o arquivo compartilhado em vez disso, e é por isso que o agente nunca precisa tocá-la. Para configurar manualmente, siga os passos para o seu cliente abaixo.
Reinicie o aplicativo e continue na mesma conversa: peça para conectar sua conta Delta e o formulário abre lá. A reinicialização é necessária porque um cliente constrói sua lista de ferramentas quando inicia, então um servidor adicionado depois disso ainda não está conectado — que também é o motivo pelo qual um assistente solicitado a autenticar você antes de reiniciar recorrerá a um terminal em vez disso. Ele não tem mais nada a oferecer nesse ponto.
Cursor
O Cursor mostra um diálogo de aprovação e escreve a entrada ele mesmo. DELTA_API_KEY e DELTA_API_SECRET chegam vazios, então as ferramentas de dados de mercado funcionam imediatamente — preencha-os, na entrada que ele cria, para acessar sua conta. Eles estão vazios em vez de texto de espaço reservado de propósito: uma chave não vazia registra as ferramentas da conta e depois falha em cada chamada, enquanto uma vazia mantém o servidor limpo no modo de dados públicos.
Cursor — config JSON manual
Global: ~/.cursor/mcp.json (ou %USERPROFILE%\.cursor\mcp.json no Windows). Alternativa com escopo de projeto: .cursor/mcp.json na raiz do repositório.
{
"mcpServers": {
"delta-exchange-mcp": {
"command": "uvx",
"args": ["delta-exchange-mcp"]
}
}
}
Reinicie o Cursor ou abra Configurações → Ferramentas e MCP para atualizar.
VS Code (GitHub Copilot)
O VS Code solicita a chave e o segredo com a entrada mascarada, oferece o ambiente como um menu suspenso e escreve a entrada ele mesmo — nada para editar depois. Deixe ambos os campos de credenciais vazios para o modo somente dados públicos.
VS Code — config JSON manual
Adicione a .vscode/mcp.json no seu workspace. A chave de nível superior é servers e cada entrada precisa de um "type": "stdio" explícito. Declarar as credenciais como inputs significa que o VS Code as solicita uma vez e as armazena ele mesmo, então seu segredo nunca vai para um arquivo que você possa commitar — e pickString torna o ambiente um menu suspenso em vez de texto livre que você pode errar ao digitar:
{
"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}"
}
}
}
}
O bloco env é o que faz esses prompts acontecerem — o VS Code só pergunta por uma entrada que
algo referencia, então sem ele as três declarações acima são inertes e você nunca
é solicitado a fornecer uma chave.
Deixe ambos os prompts vazios para o modo somente dados públicos. Uma chave inserida aqui é passada pelo VS Code em cada inicialização e tem precedência sobre o arquivo compartilhado, então o formulário no chat não pode substituí-la — limpe esses prompts primeiro se quiser gerenciar a chave lá em vez disso.
Claude Code
claude mcp add delta-exchange-mcp \
--scope user -- uvx delta-exchange-mcp
--scope user torna o servidor disponível em todos os projetos. Verifique com claude mcp list.
Codex
codex mcp add delta-exchange-mcp -- uvx delta-exchange-mcp
Verifique com codex mcp list.
OpenClaw
openclaw mcp add delta-exchange-mcp \
--command uvx \
--arg delta-exchange-mcp
Repita --arg uma vez por valor. Escreve em ~/.openclaw/openclaw.json, onde os servidores MCP ficam
sob mcp.servers em vez de uma chave mcpServers de nível superior.
Codex — config TOML, ou o formulário do aplicativo desktop
Escreva ~/.codex/config.toml manualmente:
[mcp_servers.delta-exchange-mcp]
command = "uvx"
args = ["delta-exchange-mcp"]
Aplicativo desktop: vá para Plugins → MCPs → Conectar a um MCP personalizado, deixe Tipo como STDIO e preencha:
| Campo | Valor |
|---|---|
| Nome | delta-exchange-mcp |
| Comando para iniciar | uvx (uvx.exe no Windows) |
| Argumentos | delta-exchange-mcp |
| Variáveis de ambiente | deixe vazio |
Deixe os outros campos vazios e reinicie o aplicativo.
Windsurf
Config JSON
Adicione a ~/.codeium/windsurf/mcp_config.json (macOS / Linux) ou %USERPROFILE%\.codeium\windsurf\mcp_config.json (Windows). Rota pela interface: Configurações → Cascade → Plugins (servidores MCP) → Gerenciar Plugins → Ver config bruta.
{
"mcpServers": {
"delta-exchange-mcp": {
"command": "uvx",
"args": ["delta-exchange-mcp"]
}
}
}
Zed
Config JSON
Adicione a ~/.config/zed/settings.json (nível de usuário) ou .zed/settings.json (nível de projeto). O Zed
chama a chave de nível superior de context_servers em vez de mcpServers; a entrada em si tem a
forma usual:
{
"context_servers": {
"delta-exchange-mcp": {
"command": "uvx",
"args": ["delta-exchange-mcp"]
}
}
}
Google Antigravity
Config JSON
Adicione a ~/.gemini/config/mcp_config.json — observe o diretório .gemini, que o Antigravity
compartilha em vez de usar um próprio. No IDE, você pode acessar o mesmo arquivo sem
digitar um caminho: o menu ... no topo do painel do agente → Servidores MCP → Gerenciar Servidores
MCP → Ver config bruta. No CLI, digite /mcp.
{
"mcpServers": {
"delta-exchange-mcp": {
"command": "uvx",
"args": ["delta-exchange-mcp"]
}
}
}
Prefira esse arquivo global em vez de um local ao projeto: um mcp_config.json no nível do projeto
é relatado como lido e depois silenciosamente ignorado. Reabra o painel MCP após editar para que o
servidor realmente seja iniciado, e verifique se as credenciais realmente chegaram — há relatos de valores env
não alcançando o processo, caso em que as ferramentas de dados de mercado funcionam, mas as ferramentas de conta
permanecem ausentes.
Segurança
- Sua chave é o limite. O servidor não aplica nenhuma barreira própria: uma chave com permissão de Negociação pode colocar ordens assim que é salva, e uma chave de Leitura de Dados não pode, porque a Delta a rejeita. Escolha a permissão que você realmente deseja.
- Permissão da chave de API. A Delta verifica a permissão para cada endpoint. Uma
resposta
UnauthorizedApiAccesssignifica que a chave não pode acessar o endpoint solicitado; isso não prova que a chave é inválida. A documentação atual da Delta não estabelece se apenas Leitura de Dados é suficiente para leituras de conta. - Sem ensaio, sem confirmação, sem limites. Ordens saem como enviadas. Não há execução simulada, nenhum registro local do que foi enviado e nenhum limite de nocional ou tamanho.
- Sem novas tentativas silenciosas. Mutações nunca são repetidas automaticamente em timeout ou limite de taxa; uma falha é exibida em vez de reenviada, porque reenviar uma ordem pode colocá-la duas vezes.
- Somente stdio local. Chaves por usuário nunca saem da sua máquina; nenhum endpoint hospedado compartilhado.
- Leia o código. É um MCP de ferramenta financeira; trate-o como tal.
Atualização
uvx armazena em cache o pacote resolvido, então um novo lançamento no PyPI não é
captado automaticamente. Para mover para a versão mais recente:
-
Se sua config fixa uma versão (
uvx "delta-exchange-mcp==0.4.2"), aumente a fixação para a nova versão, ou remova-a para flutuar para a mais recente. -
Atualize o cache
uvxpara que ele busque a nova compilação:uvx --refresh delta-exchange-mcp --help -
Recarregue o servidor para que seu cliente reinicie o processo — no Claude Code, execute
/mcpe reconectedelta-exchange-mcp, ou reinicie o cliente. Outros clientes: reinicie o aplicativo.
Novas ferramentas aparecem apenas após a reinicialização. A notificação MCP list_changed atualiza a lista de ferramentas de um servidor já em execução; ela não troca a versão do pacote subjacente, que sempre requer uma reinicialização.
Solução de problemas
O formulário de chave não aparece no chat
Você pediu ao assistente para conectar sua conta, e ele respondeu com um caminho de arquivo e um comando em vez de mostrar um formulário.
Esse é o fallback pretendido, não uma falha: renderizar um formulário inline é uma parte opcional do MCP que apenas alguns clientes implementam, e o servidor não pode saber antecipadamente quais fazem — o Claude Desktop, por exemplo, renderiza esses formulários sem anunciar que pode. Então o servidor sempre retorna instruções funcionais junto com o formulário, e em um cliente que não mostra nada, você vê apenas as instruções.
Use uma das outras duas maneiras: uvx delta-exchange-mcp login, ou abra
~/.delta-exchange-mcp/config.env e preencha as três linhas. Ambas escrevem o mesmo arquivo
que o formulário escreveria.
O formulário salvou minha chave, mas o assistente ainda não consegue ver minha conta
O formulário diz que salvou e nomeia uma configuração que seu cliente define em sua própria configuração.
Essa é a falha inteira, dita claramente: um valor na entrada MCP do seu cliente — ou nos campos que ele pediu para você preencher ao instalá-lo — é lido antes do arquivo compartilhado e tem precedência sobre ele. Então o formulário verificou sua chave, salvou-a corretamente, e o servidor continua assinando com o que seu cliente passa em vez disso. Reiniciar não ajuda, porque o cliente passa seu próprio valor novamente toda vez que inicia.
Limpe esses campos da entrada desse cliente e reinicie-o. Qual configuração está com problema é
nomeada na mensagem que o formulário mostra. uvx delta-exchange-mcp login executa a mesma verificação e
avisa no stderr, embora lá relate o que seu shell está definindo, já que esse é o
ambiente que ele pode ver.
ModuleNotFoundError: No module named 'mcp.server.fastmcp'
Seu cliente mostra o servidor como falho, e o processo escreve este traceback no stderr.
A versão 0.4.1 e todas as versões anteriores declaram mcp>=1.12.4 sem limite superior. O pacote mcp
publicou 2.0.0 em 28 de julho de 2026, e 2.0.0 removeu o módulo mcp.server.fastmcp.
uvx resolve a partir do intervalo declarado e ignora uv.lock, então uma instalação nova obtém 2.0.0
e o servidor para na importação. Instalações existentes e checkouts uv sync não são afetados.
Mova para 0.4.2 ou uma versão mais nova, que define um limite superior de mcp<2:
uvx --refresh delta-exchange-mcp --help
Para permanecer em uma versão mais antiga, defina o limite você mesmo:
uvx --with "mcp<2" "delta-exchange-mcp==0.4.1"
Adicione o mesmo argumento --with à config do seu cliente MCP se você fixar uma versão mais antiga lá:
"delta-exchange-mcp": {
"command": "uvx",
"args": ["--with", "mcp<2", "delta-exchange-mcp==0.4.1"]
}
Depuração / relatando um bug
Para capturar exatamente o que o servidor envia e recebe — útil quando uma ferramenta retorna
algo inesperado — defina DELTA_MCP_DEBUG=1 na config do seu cliente MCP:
"delta-exchange-mcp": {
"command": "uvx",
"args": ["delta-exchange-mcp"],
"env": { "DELTA_MCP_DEBUG": "1" }
}
Ou defina uma vez para cada cliente adicionando DELTA_MCP_DEBUG=1 a
o arquivo compartilhado.
Reinicie o cliente e execute a ação novamente. Cada chamada HTTP (URL da solicitação incl. parâmetros de filtro +
corpo da resposta + status) é registrada em ~/.delta-exchange-mcp/logs/. O caminho exato é impresso
na inicialização e você também pode simplesmente perguntar ao assistente: "onde está o log de depuração?".
O log nunca contém sua chave de API, segredo ou assinaturas de solicitação — mas os corpos de resposta contêm seus dados de conta (saldos, posições, transações). Revise antes de compartilhar.
Executando um branch de desenvolvimento / não lançado
Para testar um commit, branch ou fork não lançado antes de estar no PyPI, troque uvx delta-exchange-mcp por uvx --from git+<repo-url>@<ref> delta-exchange-mcp. <ref> pode ser um branch, tag ou SHA de commit.
Verificação de sanidade via CLI:
uvx --from git+https://github.com/delta-exchange/delta-exchange-mcp.git@develop delta-exchange-mcp --help
uv armazena em cache a resolução do git, então para captar novos commits no mesmo branch:
uvx --refresh --from git+https://github.com/delta-exchange/delta-exchange-mcp.git@develop delta-exchange-mcp --help
Na config do seu cliente MCP
Substitua args em qualquer trecho acima pela forma git+. Três variações:
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 (qualquer 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 (chave 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"
]
}
}
}
Registre o servidor de desenvolvimento sob um nome separado (ex.: delta-exchange-mcp-dev) para que não colida com a instalação do PyPI. A forma git+URL reconstrói a partir do código-fonte em cada inicialização e é destinada a testar mudanças não lançadas — fique com uvx delta-exchange-mcp para uso diário.
Desenvolvimento
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)
Testando com o 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
Maintainers: veja RELEASING.md para o procedimento de release.
Roadmap
- Agora: dados públicos de mercado, acesso autenticado somente leitura à conta e negociação limitada apenas pelas permissões da própria chave de API.
Feedback e problemas
Este é o primeiro corte público e queremos melhorá-lo. Por favor, registre:
- Bugs (dados incorretos, erros de assinatura/autenticação, travamentos)
- Ferramentas ou campos ausentes que você gostaria de ver expostos
- Pontos ásperos na configuração, documentação ou mensagens de erro
- Qualquer coisa que você construiria em cima disso se um primitivo existisse
→ github.com/delta-exchange/delta-exchange-mcp/issues
Por favor, remova api_key / api_secret de quaisquer logs ou capturas de tela antes de anexar.
Licença MIT · Código-fonte · Problemas · PyPI