Jupiter Solana MCP Server

Um servidor MCP (Model Context Protocol) abrangente para interagir com o Jupiter Protocol na Solana. Oferece trocas de tokens, busca, gerenciamento de portfólio e diagnósticos inteligentes de erros.

Documentação

Jupiter MCP Server

Um servidor MCP (Model Context Protocol) abrangente para interagir com o Jupiter Protocol na Solana. Oferece trocas de tokens, busca, gerenciamento de portfólio e diagnósticos inteligentes de erros.

License Node.js Status Jupiter API

🚀 Recursos

  • Troca de Tokens: Execute trocas via a Ultra API da Jupiter com gerenciamento inteligente de slippage e taxas
  • Busca de Tokens: Encontre tokens por símbolo, nome ou endereço de mint com dados detalhados de mercado
  • Gerenciamento de Portfólio: Visualize saldos e participações de tokens na sua carteira
  • Diagnósticos Inteligentes: Detecção inteligente de erros com orientação útil ao usuário
  • Verificação de Taxas em SOL: Validação automática de SOL suficiente para taxas de transação
  • Suporte Multilíngue: Localização completa em inglês para usuários internacionais

📋 Pré-requisitos

  • Node.js: Versão 18 ou superior (para suporte nativo a fetch)
  • Chave da API Jupiter: Obtenha sua chave de API gratuita no Jupiter Portal
  • Carteira Solana: Uma chave privada (codificada em base58) para assinar transações
  • Endpoint RPC: Acesso a um nó RPC da Solana (ex.: https://api.mainnet-beta.solana.com)

📦 Instalação

  1. Clone o Repositório:

    git clone https://github.com/pipedude/jupiter-mcp.git
    cd jupiter-mcp
    
  2. Instale as Dependências:

    npm install
    
  3. Configuração do Ambiente: Copie o arquivo de ambiente de exemplo e configure suas definições:

    cp .env.example .env
    
  4. Configure as Variáveis de Ambiente: Edite o arquivo .env com suas credenciais:

    SOLANA_RPC_URL=https://api.mainnet-beta.solana.com
    PRIVATE_KEY=your_base58_encoded_private_key_here
    JUPITER_API_KEY=your_jupiter_api_key_here
    
  5. Configuração do Cliente: Adicione à configuração do seu cliente MCP:

    {
      "mcpServers": {
        "Jupiter-MCP": {
          "command": "node",
          "args": ["path/to/jupiter-mcp/index.js"],
          "env": {
            "SOLANA_RPC_URL": "https://api.mainnet-beta.solana.com",
            "PRIVATE_KEY": "your_base58_encoded_private_key_here",
            "JUPITER_API_KEY": "your_jupiter_api_key_here"
          }
        }
      }
    }
    

🛠️ Ferramentas Disponíveis

1. search-token

Busque tokens por símbolo, nome ou endereço de mint com informações detalhadas de mercado.

Entradas:

  • query: Símbolo do token (SOL, USDC), nome (Solana) ou endereço de mint

Retorna: Dados abrangentes do token, incluindo:

  • Preço e variação percentual em 24h
  • Volume de negociação e métricas de liquidez
  • Auditoria de segurança (status da autoridade de mint/freeze)
  • Pontuação orgânica e status de verificação
  • Número de detentores e capitalização de mercado

2. get-balances

Obtenha saldos de tokens para qualquer endereço de carteira com identificação automática de tokens.

Entradas:

  • walletAddress (opcional): Carteira a verificar (padrão: carteira configurada)
  • mints (opcional): Mints de tokens específicos a verificar

Retorna: Visão geral completa do portfólio, incluindo SOL e todos os tokens SPL com valores amigáveis à interface.

3. get-ultra-order

Obtenha ordens de troca otimizadas da Ultra API da Jupiter, combinando roteamento DEX e RFQ.

Entradas:

  • inputMint: Endereço de mint do token de entrada
  • outputMint: Endereço de mint do token de saída
  • amount: Valor de entrada como string (ex.: "1.23")
  • slippageBps: Tolerância de slippage em pontos-base (ex.: 50 para 0,5%)

Retorna: Ordem de troca com requestId, transaction, valores e taxas de câmbio calculadas.

4. execute-ultra-order

Execute transações de troca com tratamento inteligente de erros e monitoramento de status.

Entradas:

  • requestId: ID da ordem de get-ultra-order
  • transaction: Transação codificada em Base64

Retorna: Resultados da execução com assinatura da transação, links do Solscan e status detalhado.

Recursos Inteligentes:

  • ✅ Verificação prévia do saldo de SOL
  • 🔄 Consulta automática de status da transação (até 2 minutos)
  • 🧠 Análise inteligente de erros com sugestões úteis
  • 🔗 Links diretos para transações no Solscan

💡 Exemplos de Uso

1. Buscar Tokens

{
  "tool": "search-token",
  "arguments": {
    "query": "BONK"
  }
}

Resposta: Informações detalhadas do token, incluindo preço, volume, auditoria de segurança e número de detentores.

2. Verificar Saldos do Portfólio

{
  "tool": "get-balances",
  "arguments": {}
}

Resposta: Visão geral completa da carteira com saldos de SOL e de todos os tokens SPL em formato amigável.

3. Executar Troca de Tokens

Etapa 1 - Obter Cotação:

{
  "tool": "get-ultra-order",
  "arguments": {
    "inputMint": "So11111111111111111111111111111111111111112",
    "outputMint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", 
    "amount": "0.1",
    "slippageBps": 50
  }
}

Etapa 2 - Executar a Troca:

{
  "tool": "execute-ultra-order", 
  "arguments": {
    "requestId": "uuid-from-step-1",
    "transaction": "base64-encoded-transaction-from-step-1"
  }
}

🛡️ Tratamento de Erros

O servidor oferece detecção inteligente de erros e mensagens amigáveis ao usuário:

  • SOL Insuficiente: "❌ SOL insuficiente para taxas de transação. Adicione 0,01 SOL (~US$ 1,25) à sua carteira"
  • Problemas de Slippage: "⚠️ Tolerância de slippage excedida. Tente aumentar o slippage ou tente novamente mais tarde"
  • Problemas de Rede: "🔄 Tempo esgotado na determinação do status da transação. Você pode tentar novamente com a mesma ordem"

🔧 Solução de Problemas

Problemas Comuns

"HTTP 401: Não autorizado"

  • Verifique seu JUPITER_API_KEY nas variáveis de ambiente
  • Verifique sua chave de API no Jupiter Portal

"SOL insuficiente para taxas de transação"

  • Garanta que a carteira tenha pelo menos 0,01 SOL para taxas de transação
  • Verifique o saldo de SOL usando a ferramenta get-balances

"Falha na conexão com o RPC"

  • Verifique se seu SOLANA_RPC_URL está acessível
  • Tente usar um endpoint RPC diferente (Helius, QuickNode, etc.)

📝 Licença

Este projeto está licenciado sob a Licença MIT. Consulte o arquivo LICENSE para obter detalhes.

🤝 Contribuição

  1. Faça um fork do repositório
  2. Crie sua branch de recurso (git checkout -b feature/amazing-feature)
  3. Faça commit das suas alterações (git commit -m 'Add amazing feature')
  4. Envie para a branch (git push origin feature/amazing-feature)
  5. Abra um Pull Request

📞 Suporte