@page "/docs/mcp" @model Nalu.Web.Pages.Docs.McpModel @{ ViewData["Title"] = "MCP Server — NaLU AI Docs"; ViewData["Description"] = "Integre NaLU AI com Claude Desktop, Claude Code e qualquer cliente MCP via stdio."; }
Docs / MCP Server

MCP Server

Use os validadores NaLU como ferramentas nativas no Claude Desktop, Claude Code e qualquer cliente MCP.

O que é MCP?

Model Context Protocol (MCP) é um protocolo aberto que permite agentes de IA chamarem ferramentas externas de forma padronizada. O servidor MCP da NaLU AI roda localmente via stdio e chama a API REST da NaLU — sem expor sua chave via rede.

Pré-requisitos

Instalação

Clone ou baixe o servidor MCP e instale as dependências:

# Baixar o servidor
git clone https://git.naluai.dev/nalu-mcp.git
cd nalu-mcp

# Instalar dependências
npm install

Configurar no Claude Desktop

Edite %APPDATA%\Claude\claude_desktop_config.json (Windows) ou ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):

{
  "mcpServers": {
    "nalu": {
      "command": "node",
      "args": ["/caminho/para/nalu-mcp/index.mjs"],
      "env": {
        "NALU_API_KEY": "SUA_API_KEY"
      }
    }
  }
}

Reinicie o Claude Desktop após salvar. Os validadores aparecem automaticamente como ferramentas disponíveis.

Configurar no Claude Code (CLI)

claude mcp add nalu \
  --command node \
  --args "/caminho/para/nalu-mcp/index.mjs" \
  --env NALU_API_KEY=SUA_API_KEY

Ferramentas disponíveis

Após conectar, o agente enxerga estas ferramentas:

@foreach (var t in new[] { ("extract_name", "Extrai nome completo do diálogo", "2"), ("extract_email", "Extrai email com correção de typos", "1"), ("extract_yes_no", "Detecta sim/não em linguagem natural", "2"), ("extract_birthdate", "Extrai data de nascimento, calcula idade", "2"), ("extract_postal_code", "Código postal internacional (exceto Brasil)", "1"), ("extract_company_name", "Extrai nome de empresa (LTDA, S/A, LLC...)", "2"), ("detect_handoff", "Detecta intenção de falar com humano", "2"), ("detect_cancel_intent", "Classifica intenção de cancelamento", "2"), ("analyze_reply", "Analisa contexto conversacional completo", "5"), ("extract_cpf", "Extrai e valida CPF (mod 11)", "1"), ("extract_cnpj", "Extrai e valida CNPJ (mod 11)", "1"), ("extract_cep", "Extrai CEP e retorna endereço completo", "3"), ("extract_phone_br", "Extrai telefone brasileiro com DDD", "1"), ("extract_plate_br", "Extrai placa Mercosul ou formato antigo", "1"), }) { }
Ferramenta Descrição Créditos
@t.Item1 @t.Item2 @t.Item3 cr

Parâmetros das ferramentas

Todos os validadores (exceto analyze_reply) recebem:

Parâmetro Tipo Descrição
agent_inputstring *Mensagem do agente
user_inputstring *Resposta do usuário
languagestringIdioma (padrão: pt-BR)

analyze_reply usa agent_message e user_reply no lugar.

Exemplo de uso

Prompt para o Claude:

"O usuário disse 'meu cpf é 111.444.777-35'. Use extract_cpf para extrair e validar."

Claude chama automaticamente:

extract_cpf({
  "agent_input": "Qual o seu CPF?",
  "user_input":  "meu cpf é 111.444.777-35"
})

Retorno:

{
  "obtained": true,
  "extracted_value": "111.444.777-35",
  "confidence": "high",
  "certain": true
}