LigueLead

Envie SMS, SMS Flash e chamadas de voz no Brasil via API LigueLead. CPaaS brasileiro com preços em BRL e pagamentos via PIX.

Documentação

📱 Servidor MCP LigueLead

Servidor MCP para envio de SMS, SMS Flash, chamadas de voz e RCS no Brasil através da API LigueLead. Permite que Claude, Cursor, Windsurf e qualquer agente de IA compatível com MCP enviem comunicações reais — sem código, sem configuração complexa.

🇧🇷 CPaaS Brasileiro · Preço em BRL · Pagamento via PIX · Suporte em PT-BR

npm version License: MIT


Ferramentas disponíveis

FerramentaDescrição
send_smsEnvia campanha de SMS ou SMS Flash para números de telefone brasileiros
list_voice_uploadsLista todos os arquivos de áudio de voz enviados
get_voice_uploadObtém detalhes de um envio de voz específico
upload_voice_audioEnvia áudio MP3/WAV para campanhas de voz
send_voice_messageEnvia uma campanha de voz para uma lista de telefones
list_rcs_agentsLista agentes RCS (marcas remetentes) e seu status de revisão
create_rcs_template_textCria um template RCS de texto simples
create_rcs_template_mediaCria um template RCS com imagem/vídeo
create_rcs_template_cardCria um template RCS de rich card com botões
create_rcs_template_carouselCria um template RCS de carrossel (2-10 cards)
send_rcsEnvia uma campanha RCS (baseada em template ou texto livre)

Início rápido

Opção 1: npx (recomendado)

Sem necessidade de instalação — basta adicionar à configuração do seu cliente MCP:

{
  "mcpServers": {
    "liguelead": {
      "command": "npx",
      "args": ["-y", "@liguelead/mcp-server"],
      "env": {
        "LIGUELEAD_API_TOKEN": "your-token",
        "LIGUELEAD_APP_ID": "your-app-id",
        "TRANSPORT": "stdio"
      }
    }
  }
}

Opção 2: Clonar e compilar

git clone https://github.com/liguelead/mcp.git
cd mcp
npm install
cp .env.example .env  # Edit with your credentials
npm run build
npm start

O servidor inicia em http://localhost:3000 por padrão.

Obtendo suas credenciais

  1. Acesse areadocliente.liguelead.app.br
  2. Navegue até Integrações → API Token
  3. Crie um App e copie o API Token e o App ID

Transportes

TransporteCaso de usoVariável de ambiente
HTTP Streamable (padrão)Servidor remoto, qualquer cliente MCPTRANSPORT=http
stdioLocal — Claude Desktop / Claude Code / CursorTRANSPORT=stdio

Configuração do cliente

Claude Desktop (stdio)

Edite claude_desktop_config.json:

{
  "mcpServers": {
    "liguelead": {
      "command": "npx",
      "args": ["-y", "@liguelead/mcp-server"],
      "env": {
        "LIGUELEAD_API_TOKEN": "your-token",
        "LIGUELEAD_APP_ID": "your-app-id",
        "TRANSPORT": "stdio"
      }
    }
  }
}

Claude Code

claude mcp add -s user liguelead \
  -e LIGUELEAD_API_TOKEN=your-token \
  -e LIGUELEAD_APP_ID=your-app-id \
  -e TRANSPORT=stdio \
  -- npx -y @liguelead/mcp-server

Cursor / Windsurf

Adicione às suas configurações MCP a mesma configuração do Claude Desktop acima.

Servidor HTTP remoto

Qualquer cliente MCP que suporte HTTP Streamable pode conectar via:

POST https://your-server.com/mcp

As credenciais permanecem no servidor — o cliente não precisa delas.

Ponte mcp-remote

Para clientes que não suportam HTTP nativamente (ex.: Claude Desktop conectando a um servidor remoto):

{
  "mcpServers": {
    "liguelead": {
      "command": "npx",
      "args": ["mcp-remote", "https://your-server.com/mcp"]
    }
  }
}

Implantação

Docker

docker build -t liguelead-mcp .
docker run -d -p 3000:3000 \
  -e LIGUELEAD_API_TOKEN=your-token \
  -e LIGUELEAD_APP_ID=your-app-id \
  liguelead-mcp

Railway / Render

  1. Conecte o repositório Git
  2. Defina as variáveis de ambiente: LIGUELEAD_API_TOKEN, LIGUELEAD_APP_ID
  3. Comando de build: npm install && npm run build
  4. Comando de início: npm start

Segurança de credenciais

CenárioOnde as credenciais ficam
stdio (local)Variáveis de ambiente na configuração do cliente
HTTP (remoto)Variáveis de ambiente no servidor
DockerFlags -e ou segredos do orquestrador
CI/CDSegredos do provedor (GitHub Actions, etc.)

⚠️ As credenciais NUNCA são commitadas no código. O arquivo .env está em .gitignore.

Webhook

Configuração

  1. Acesse areadocliente.liguelead.app.br
  2. Navegue até Integrações → API Token → Webhook URL
  3. Insira a URL do seu endpoint HTTPS público
  4. Salve

Uma única URL recebe notificações de todos os canais (SMS, SMS Flash, Voz, RCS).

Consultar webhooks recebidos

curl http://localhost:3000/webhooks

Retorna:

{
  "total": 42,
  "webhooks": [...]
}

⚠️ CRÍTICO: A LigueLead NÃO tenta novamente webhooks com falha. Se o seu endpoint estiver fora do ar, o webhook é perdido permanentemente.

Formato de número de telefone

Números de telefone brasileiros são aceitos em três formatos:

FormatoExemploDígitos
Nacional (recomendado)1199999999911
Internacional+551199999999914 caracteres
DDI sem +551199999999913

Limites de SMS

ParteCaracteresCréditos
1ª parteaté 1601 crédito
Partes adicionaisa cada 152 caracteres1 crédito cada
Máximo total1.600 caracteres~11 créditos

🚫 SMS Flash NÃO permite URLs no conteúdo da mensagem.

Limites de chamadas de voz

  • Formatos suportados: MP3 e WAV (sem AAC/M4A)
  • Tamanho máximo do arquivo: 50 MB (recomendado: 5–10 MB)
  • Cobrança: Até 30s = 1 crédito; acima de 30s = 2 créditos
  • Janela de discagem: 08:00–21:44 (America/Sao_Paulo). Solicitações após 21:45 são enfileiradas até 08:00.

Templates e limites de RCS

As campanhas RCS são construídas a partir de um template registrado via uma das ferramentas create_rcs_template_*, e depois enviadas com send_rcs usando o template_id retornado (ou como mensagem livre, sem template).

Tipo de templateFerramentaObservações
Textocreate_rcs_template_textTexto simples, sem mídia/botões
Mídiacreate_rcs_template_mediaImagem ou vídeo curto (media_url ou media_file, mutuamente exclusivos)
Rich cardcreate_rcs_template_cardMídia opcional + 1-4 botões (reply, open_url, dial_call)
Carrosselcreate_rcs_template_carousel2-10 rich cards; todos os cards devem declarar o mesmo número/tipo/ordem de botões
  • body máx. 1.600 caracteres; suporta placeholders de variável {{N}}, substituíveis via default_variables (template) ou template_variables (no envio)
  • media_file aceita um data URI base64, máx. 5 MB decodificado
  • fallback_message (máx. 306 caracteres) é o SMS enviado se a entrega RCS falhar
  • send_rcs livre message é limitado a 306 caracteres (mutuamente exclusivo com template_id) — reutilizado como fallback de SMS
  • Operação assíncrona — retorna 202 quando enfileirado; o status de entrega chega via webhook configurado

Limites de taxa

LimiteValor
Solicitações por minuto600.000
Solicitações simultâneas10.000
Destinatários por solicitação10.000

Estrutura do projeto

liguelead-mcp/
├── src/
│   ├── index.ts          # Entry point — HTTP or stdio
│   ├── config.ts          # Env var validation (Zod) + .env loader
│   ├── lib/
│   │   ├── api-client.ts  # HTTP client for LigueLead API
│   │   ├── validators.ts  # Phone/RCS schemas (Zod)
│   │   └── webhook.ts     # Webhook handler + GET /webhooks
│   └── tools/
│       ├── sms.ts         # Tool: send_sms
│       ├── voice.ts       # Tools: voice (list/get/upload/send)
│       └── rcs.ts         # Tools: RCS (templates + send_rcs)
├── skill/                  # Claude Code Skill
│   └── SKILL.md
├── .env.example
├── Dockerfile
├── LICENSE
├── package.json
├── server.json
├── glama.json
└── README.md

Solução de problemas

ProblemaSolução
LIGUELEAD_API_TOKEN is requiredConfigure .env ou variáveis de ambiente
401 UnauthorizedVerifique api-token e app-id no painel da LigueLead
429 Too Many RequestsLimite de taxa excedido — aguarde a reinicialização
Upload rejeitadoApenas MP3 e WAV são aceitos (sem AAC/M4A)
Build desatualizadorm -rf dist && npm run build

Licença

MIT



🇧🇷 Documentação em Português

Servidor MCP LigueLead

Servidor MCP para a API da LigueLead — SMS, SMS Flash, Campanhas de Voz e RCS no Brasil.

Permite que Claude, Cursor, Windsurf e qualquer agente de IA compatível com MCP enviem comunicações reais — sem código, sem configuração complexa.

CPaaS Brasileiro · Preço em BRL · Pagamento via PIX · Suporte em PT-BR

Início rápido

Opção 1: npx (recomendado)

Sem instalação — basta adicionar à configuração do seu cliente MCP:

{
  "mcpServers": {
    "liguelead": {
      "command": "npx",
      "args": ["-y", "@liguelead/mcp-server"],
      "env": {
        "LIGUELEAD_API_TOKEN": "seu-token",
        "LIGUELEAD_APP_ID": "seu-app-id",
        "TRANSPORT": "stdio"
      }
    }
  }
}

Opção 2: Clonar e compilar

git clone https://github.com/liguelead/mcp.git
cd mcp
npm install
cp .env.example .env  # Edite com suas credenciais
npm run build
npm start

Obtendo suas credenciais

  1. Acesse areadocliente.liguelead.app.br
  2. Vá em Integrações → API Token
  3. Crie um App e copie o API Token e o App ID

Ferramentas disponíveis

FerramentaDescrição
send_smsEnvia campanha de SMS ou SMS Flash para números brasileiros
list_voice_uploadsLista todos os áudios enviados
get_voice_uploadDetalhes de um áudio específico
upload_voice_audioUpload de áudio MP3/WAV para campanhas de voz
send_voice_messageDispara campanha de voz para lista de telefones
list_rcs_agentsLista os agentes de RCS (marcas remetentes) e o status de aprovação
create_rcs_template_textCria um template de RCS somente texto
create_rcs_template_mediaCria um template de RCS com imagem/vídeo
create_rcs_template_cardCria um template de RCS com rich card e botões
create_rcs_template_carouselCria um template de RCS carrossel (2-10 cards)
send_rcsDispara uma campanha de RCS (com template ou texto livre)

Configuração por cliente MCP

Claude Desktop (stdio)

Edite claude_desktop_config.json:

{
  "mcpServers": {
    "liguelead": {
      "command": "npx",
      "args": ["-y", "@liguelead/mcp-server"],
      "env": {
        "LIGUELEAD_API_TOKEN": "seu-token",
        "LIGUELEAD_APP_ID": "seu-app-id",
        "TRANSPORT": "stdio"
      }
    }
  }
}

Claude Code

claude mcp add -s user liguelead \
  -e LIGUELEAD_API_TOKEN=seu-token \
  -e LIGUELEAD_APP_ID=seu-app-id \
  -e TRANSPORT=stdio \
  -- npx -y @liguelead/mcp-server

Formato de números de telefone

FormatoExemploDígitos
Nacional (recomendado)1199999999911
Internacional+551199999999914 caracteres
DDI sem +551199999999913

Limites de SMS

ParteCaracteresCréditos
1ª parteaté 1601 crédito
Partes adicionaisa cada 152 caracteres1 crédito cada
Máximo total1.600 caracteres~11 créditos

🚫 SMS Flash NÃO permite URLs no conteúdo da mensagem.

Limites de voz

  • Formatos suportados: MP3 e WAV (AAC e M4A não são suportados)
  • Tamanho máximo: 50 MB (recomendado: 5–10 MB)
  • Cobrança: Até 30s = 1 crédito; acima de 30s = 2 créditos
  • Janela de discagem: 08h00–21h44 (America/Sao_Paulo). Solicitações após 21h45 ficam na fila até as 08h00.

Templates e limites de RCS

Uma campanha de RCS é criada a partir de um template registrado com uma das ferramentas create_rcs_template_*, e enviada com send_rcs usando o template_id retornado (ou como mensagem livre, sem template).

Tipo de templateFerramentaObservações
Textocreate_rcs_template_textSomente texto, sem mídia/botões
Mídiacreate_rcs_template_mediaImagem ou vídeo curto (media_url ou media_file, mutuamente exclusivos)
Rich cardcreate_rcs_template_cardMídia opcional + 1-4 botões (reply, open_url, dial_call)
Carrosselcreate_rcs_template_carousel2-10 rich cards; todos os cards devem declarar o mesmo número/tipo/ordem de botões
  • body até 1.600 caracteres; suporta placeholders {{N}}, substituíveis via default_variables (template) ou template_variables (no envio)
  • media_file aceita um data URI em base64, máximo 5 MB decodificado
  • fallback_message (máx. 306 caracteres) é o SMS enviado caso a entrega via RCS falhe
  • O message livre do send_rcs é limitado a 306 caracteres (mutuamente exclusivo com template_id) — reaproveitado como fallback de SMS
  • Operação assíncrona — retorna 202 ao ser enfileirada; o status chega pelo webhook configurado

Webhook

  1. Acesse areadocliente.liguelead.app.br
  2. Vá em Integrações → API Token → Webhook URL
  3. Insira a URL HTTPS do seu endpoint
  4. Salve

Uma única URL recebe notificações de todos os canais (SMS, SMS Flash, Voz, RCS).

⚠️ CRÍTICO: A LigueLead NÃO faz retry. Se o endpoint falhar, o webhook é perdido permanentemente.