nadanada_me
Um servidor MCP público que dá acesso a agentes de IA a números de telefone reais de operadoras do Reino Unido para verificação por SMS. Agentes podem alugar números descartáveis ou por período, pagar faturas Lightning e ler SMS recebidos, tudo por meio de chamadas de ferramentas MCP padrão, sem necessidade de autenticação.
Documentação
Servidor MCP de Telefone
Adaptador MCP autônomo para lnvpn-web-app/app/api/v2/phone/*.
Este serviço é apenas aditivo: ele não altera rotas ou comportamentos existentes da API de telefone.
O Que Ele Expõe
Ferramentas mapeadas 1:1 para sua API existente:
phone.purchase.start->POST /api/v2/phone/purchasephone.purchase.complete->POST /api/v2/phone/completephone.renew.start->POST /api/v2/phone/renewphone.renew.complete->POST /api/v2/phone/renew/completephone.numbers.list->GET /api/v2/phone/numbersphone.messages.list->GET /api/v2/phone/messages/{phoneNumber}
Modelo de Segurança
Por padrão, o servidor executa no modo hmac (MCP_AUTH_MODE=hmac).
Cada requisição para /mcp deve incluir:
X-Client-IdX-Timestamp(ms Unix)X-Nonce(UUID recomendado)X-Body-SHA256(hex sha256 do corpo JSON estável)X-Signature(v1=<hex_hmac>)
String canônica de assinatura:
{METHOD}\n{PATH}\n{X-Timestamp}\n{X-Nonce}\n{X-Body-SHA256}
Assinatura:
hex(HMAC_SHA256(canonical, client_secret))
Controles:
- proteção contra desvio de timestamp (
HMAC_ALLOWED_SKEW_MS) - proteção contra replay de nonce de uso único (Redis recomendado)
- limite de taxa por cliente
- lista de ferramentas permitidas por cliente
Se você quiser um endpoint totalmente aberto, defina MCP_AUTH_MODE=open.
No modo aberto, a autenticação do cliente MCP é desabilitada e as requisições são aceitas sem cabeçalhos HMAC.
Configuração
Crie um arquivo .env na raiz do projeto e defina valores reais.
O servidor carrega automaticamente .env na inicialização.
Variáveis importantes:
MCP_AUTH_MODE:hmacouopenMCP_CLIENTS_JSON: obrigatório no modohmac
Formato de MCP_CLIENTS_JSON:
{
"agentA": {
"secret": "replace-with-long-random-secret",
"allowedTools": [
"phone.purchase.start",
"phone.purchase.complete",
"phone.renew.start",
"phone.renew.complete",
"phone.numbers.list",
"phone.messages.list"
],
"rateLimitPerMinute": 120
}
}
Execução
npm install
npm run dev
Build + produção:
npm run build
npm run start
Implantação
- Modelo de configuração PM2:
ecosystem.config.cjs - Modelo Nginx:
nginx.phone-mcp.conf.example
Edge sugerido:
Cloudflare -> Nginx -> phone-mcp (PM2) -> existing phone API