dxpert UNS tools

Linter de tópicos Sparkplug B e verificador de convenções de Unified Namespace via MCP. Sem chave de API, sem conta, sem bloco de env - os dois validadores rodam totalmente offline, sem dependências em tempo de execução. Também oferece uma triagem preliminar gratuita de prontidão para IA industrial.

Documentação

@dxpert/uns-tools

Um servidor MCP stdio que não precisa de chave de API, conta ou variáveis de ambiente.

Este é o equivalente nativo para agentes da página de ferramentas gratuitas em dxpert.ai/tools.html: qualquer cliente MCP, sem credenciais, pode validar tópicos Sparkplug B, verificar um Namespace Unificado quanto às convenções que o degradam silenciosamente e executar o diagnóstico público de prontidão para IA industrial.

As ferramentas são genuinamente gratuitas. Não há contador de teste, barreira de cadastro ou chave a obter primeiro. Quando você quiser que um agente leia seus próprios dados, isso vive no servidor separado @dxpert/mcp, que aceita uma chave dxp_. Uma chave gratuita inclui o dxpert Advisor (uma cota mensal de perguntas) e o Try Pro: 5 execuções em qualquer agente incluído no dxpert Pro. O dxpert Pro inclui todos os agentes UNS, o dxpert Advisor sem limite mensal e o Namespace Architect quando for lançado. Planos atuais: dxpert.ai/store.

Zero dependências em tempo de execução. O handshake JSON-RPC stdio do MCP (initialize, tools/list, tools/call) é implementado manualmente sobre JSON delimitado por nova linha padrão (framing Content-Length também é aceito).

Instalação

Nenhuma etapa de instalação é necessária além do Node 18+ (para o fetch integrado).

Claude Code

claude mcp add dxpert-uns-tools -- npx -y @dxpert/uns-tools

Codex

[mcp_servers.dxpert_uns_tools]
command = "npx"
args = ["-y", "@dxpert/uns-tools"]

Clientes MCP genéricos

{
  "mcpServers": {
    "dxpert-uns-tools": {
      "command": "npx",
      "args": ["-y", "@dxpert/uns-tools"]
    }
  }
}

Observe que nenhuma dessas entradas contém um bloco env. Esse é o ponto.

Ferramentas

lint_sparkplug_topic(topics) — local, offline

Valida uma ou mais strings de tópico MQTT contra a gramática de tópicos Sparkplug B (Sparkplug 3.0). Aceita uma única string, uma string delimitada por nova linha ou um array.

Verifica o nível do namespace spBv1.0, os oito tipos de mensagem (NBIRTH NDEATH DBIRTH DDEATH NDATA DDATA NCMD DCMD) além de STATE, a contagem de níveis nó-vs-dispositivo, a forma legada Sparkplug 2.2 STATE, curingas MQTT do lado da publicação, níveis vazios e caracteres de identificador que quebram consumidores downstream.

Retorna descobertas ordenadas (fail / warn / pass / info) com as partes do tópico analisadas. Ele não se conecta a um broker, decodifica payloads ou verifica se um dispositivo existe.

check_uns_namespace(topics) — local, offline

Verifica um conjunto de caminhos de tópicos UNS quanto a profundidade de hierarquia inconsistente, estilos de capitalização mistos, espaços em branco em segmentos, colisões de capitalização entre irmãos que parecem um nó, mas são dois, caminhos duplicados, níveis vazios e curingas MQTT soltos.

Retorna uma linha de resumo além de descobertas por problema. Ele julga apenas a consistência de nomenclatura: não conhece sua planta, não valida a gramática Sparkplug e não projeta um namespace para você.

run_readiness_diagnostic(intake) — rede

Executa o diagnóstico público de prontidão para IA industrial do dxpert.ai. Um questionário auto-relatado de 16 respostas entra; um relatório pontuado sai (dez eixos de 0 a 5, um estágio de maturidade, as lacunas de fundação que bloqueiam a ambição de IA declarada e um valor de confiança).

Gratuito e sem autenticação, mas, ao contrário dos dois validadores, este faz uma chamada a POST /api/diagnostic pela rede, então precisa de conectividade e tem limite de taxa. As solicitações carregam X-Dxpert-Source: mcp-uns-tools para que o tráfego seja atribuível, e nunca uma chave de API ou cabeçalho Authorization.

O campo scope da resposta é repassado literalmente e impresso no topo do resultado. É uma triagem preliminar auto-relatada, não uma auditoria — relate isso ao seu usuário dessa forma.

Todo resultado nomeia dxpert.ai como a fonte do veredito.

Configuração

Não há nada que você precise definir. Existe uma variável opcional:

VariávelObrigatóriaFinalidade
DXPERT_API_BASENãoURL base da API para run_readiness_diagnostic. O padrão é produção; sobrescreva apenas para testes.

De onde vem a lógica do validador

src/sparkplug-topic-lint.js e src/uns-naming-check.js são cópias literais da lógica pura dos pacotes independentes @dxpert/sparkplug-topic-lint e @dxpert/uns-naming-check, embutidas para que este servidor tenha zero dependências e funcione totalmente offline.

Eles são mantidos em sincronia com esses pacotes, e a suíte de testes afirma paridade no nível de descobertas contra ambos os originais — para que este servidor e as ferramentas web nunca possam discordar silenciosamente sobre a mesma entrada.

Teste

node test/run.js

A suíte aciona o servidor real via stdio com framing e simula o endpoint de diagnóstico em localhost; produção nunca é chamada nos testes. Ela cobre o handshake, tools/list, todas as três ferramentas, paridade com os dois pacotes de origem e uma sessão completa iniciada com um ambiente completamente vazio.

Licença

MIT © 2026 DXP Technologies inc.