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ável | Obrigatória | Finalidade |
|---|---|---|
DXPERT_API_BASE | Não | URL 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.