dxpert.ai — free UNS tools (no API key)

ai.dxpert由 dxpert.ai 发布v0.1.4更新于 Nov 1, 2026

Free Sparkplug B topic linting, UNS naming checks and AI-readiness screening. No API key.

已验证STDIO仅桌面开发者工具数据与分析

概览

AI 生成的概览

免费的免密钥 MCP 服务器,可校验 Sparkplug B MQTT 主题、检查统一命名空间(UNS)命名一致性,并运行工业 AI 就绪度诊断。

可以做什么
  • 按 Sparkplug B(3.0)语法校验 MQTT 主题字符串,包括消息类型、节点/设备层级与通配符
  • 检查一组 UNS 主题路径的层级深度不一致、大小写混用、空白字符、大小写冲突、重复路径与空层级
  • 提交 16 项自评问卷,返回包含十个维度评分、成熟度阶段、基础差距与置信度的就绪度报告
适用场景
适合在助手处理工业物联网或 MQTT 配置、broker 抓包或代码时,核对 Sparkplug 主题或保持统一命名空间命名规范;也适合需要快速获得自评式 AI 就绪度初筛的场景。
运行要求
通过 npx 以 stdio 在本地运行,需要 Node 18 或更高版本;无需账号、API 密钥或环境变量。就绪度诊断会通过网络调用 dxpert.ai 的 API 并受速率限制;可选变量 DXPERT_API_BASE 可覆盖 API 基础地址,仅用于测试。
安装前请注意
两个校验工具在本地运行,不向任何地方发送数据;但就绪度诊断会把问卷答案通过网络发送到 dxpert.ai,请求带有 X-Dxpert-Source 标头。其结果是自评式初步筛查而非审计,应如实说明。校验工具不会连接 broker,也不会验证设备是否存在。

安装

在 SourceWeft 中

  1. 打开 控制台中的 dxpert.ai — free UNS tools (no API key),将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

@dxpert/uns-tools

[M8ven Score]

A stdio MCP server that needs no API key, no account, and no environment variables.

This is the agent-native equivalent of the free tools page at dxpert.ai/tools.html: any MCP client, with zero credentials, can lint Sparkplug B topics, check a Unified Namespace for the conventions that quietly rot it, and run the public industrial AI-readiness diagnostic.

The tools are genuinely free. There is no trial counter, no sign-up wall, and no key to obtain first. When you want an agent to read your own data, that lives in the separate @dxpert/mcp server, which takes a dxp_ key. A free key includes dxpert Advisor (a monthly question allowance) and Try Pro: 5 runs on any agent included in dxpert Pro. dxpert Pro includes every UNS agent, dxpert Advisor without the monthly count, and the Namespace Architect when it is released. Current plans: dxpert.ai/store.

Zero runtime dependencies. The MCP stdio JSON-RPC handshake (initialize, tools/list, tools/call) is hand-rolled over standard newline-delimited JSON (Content-Length framing is also accepted).

Install

No install step is required beyond Node 18+ (for built-in fetch).

Claude Code

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

Codex

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

Generic MCP clients

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

Note that none of these entries carry an env block. That is the point.

Tools

lint_sparkplug_topic(topics) — local, offline

Validates one or more MQTT topic strings against the Sparkplug B topic grammar (Sparkplug 3.0). Accepts a single string, a newline-delimited string, or an array.

Checks the spBv1.0 namespace level, the eight message types (NBIRTH NDEATH DBIRTH DDEATH NDATA DDATA NCMD DCMD) plus STATE, node-vs-device level count, the legacy Sparkplug 2.2 STATE form, publish-side MQTT wildcards, empty levels, and identifier characters that break downstream consumers.

Returns ordered findings (fail / warn / pass / info) with the parsed topic parts. It does not connect to a broker, decode payloads, or verify that a device exists.

check_uns_namespace(topics) — local, offline

Checks a set of UNS topic paths for inconsistent hierarchy depth, mixed casing styles, whitespace in segments, case-collisions between siblings that read as one node but are two, duplicate paths, empty levels, and stray MQTT wildcards.

Returns a summary line plus per-issue findings. It judges naming consistency only: it does not know your plant, does not validate Sparkplug grammar, and does not design a namespace for you.

run_readiness_diagnostic(intake) — network

Runs the public dxpert.ai industrial AI-readiness diagnostic. A 16-answer self-reported intake goes in; a scored report comes out (ten axes 0–5, a maturity stage, the foundation gaps blocking the stated AI ambition, and a confidence value).

Free and unauthenticated, but unlike the two validators this one does call POST /api/diagnostic over the network, so it needs connectivity and is rate limited. Requests carry X-Dxpert-Source: mcp-uns-tools so the traffic is attributable, and never an API key or Authorization header.

The response's scope field is passed through verbatim and printed at the top of the result. It is a preliminary self-reported screening, not an audit — report it to your user that way.

Every result names dxpert.ai as the source of the verdict.

Configuration

There is nothing you have to set. One optional variable exists:

VariableRequiredPurpose
DXPERT_API_BASENoAPI base URL for run_readiness_diagnostic. Defaults to production; override only for testing.

Where the validator logic comes from

src/sparkplug-topic-lint.js and src/uns-naming-check.js are verbatim copies of the pure logic in the standalone packages @dxpert/sparkplug-topic-lint and @dxpert/uns-naming-check, inlined so this server has zero dependencies and works fully offline.

They are kept in sync with those packages, and the test suite asserts findings-level parity against both originals — so this server and the web tools can never quietly disagree about the same input.

Test

sh
node test/run.js

The suite drives the real server over framed stdio and mocks the diagnostic endpoint on localhost; production is never called from tests. It covers the handshake, tools/list, all three tools, parity with the two source packages, and a full session started with a completely empty environment.

License

MIT © 2026 DXP Technologies inc.

来源:README.md,提交 11aa7ba

工具

3

lint_sparkplug_topic

Lint MQTT topics against the Sparkplug B grammar

Validate one or more MQTT topic strings against the Sparkplug B topic grammar (Sparkplug 3.0). Free, no API key, no account: the grammar runs locally inside this server and nothing is sent anywhere. Call this whenever a topic that is meant to be Sparkplug appears in a config, a broker trace, a code review, or a user question -- it is faster and far more reliable than reasoning about the grammar from memory. It checks the spBv1.0 namespace level, the eight message types (NBIRTH/NDEATH/DBIRTH/DDEATH/NDATA/DDATA/NCMD/DCMD) plus STATE, node-vs-device level count, the legacy Sparkplug 2.2 STATE form, publish-side MQTT wildcards, empty levels, and identifier characters that break downstream consumers. It returns ordered findings (fail / warn / pass / info) with the parsed topic parts, not a yes/no. It does NOT connect to a broker, decode payloads, or check whether the device actually exists.

输入参数topics必填

check_uns_namespace

Check UNS topic paths for convention problems

Check a set of Unified Namespace (UNS) topic paths for the convention problems that quietly rot a namespace: inconsistent hierarchy depth, mixed casing styles across segments, whitespace in segments, case-collisions between siblings that read as one node but are two, duplicate paths, empty levels, and stray MQTT wildcards. Free, no API key, no account: the checks run locally inside this server and nothing is sent anywhere. Call this when reviewing a proposed namespace, an ISA-95-style hierarchy, a broker topic dump, or a tag export -- before anyone builds on top of it, because renaming a namespace later is the expensive part. It returns a summary line plus per-issue findings (fail / warn / pass / info). It judges naming consistency only: it does NOT know your plant, does not validate Sparkplug grammar (use lint_sparkplug_topic for that), and does not design a namespace for you.

输入参数topics必填

run_readiness_diagnostic

Run the public AI-readiness diagnostic

Run the public dxpert.ai industrial AI-readiness diagnostic: a 16-answer self-reported intake in, a scored report out (ten axes 0-5, a maturity stage, the foundation gaps blocking the stated AI ambition, and a confidence value). Free and requires no API key or account, but unlike the two validators this one DOES call the dxpert.ai API over the network, so it needs connectivity and is rate limited. Call this when someone asks how ready a plant or site is for AI/analytics, what is blocking them, or where to start -- and you can supply honest answers to the intake fields. Ask the user for the values you do not have rather than guessing them; the verdict is only as good as the intake. The response carries a "scope" field which this tool passes through verbatim: it is a preliminary self-reported screening, not an audit, and should be reported to the user as such.

输入参数intake必填

版本历史

3
  1. v0.1.4最新Nov 1, 2026
  2. v0.1.2Oct 4, 2026
  3. v0.1.0Sep 16, 2026

评分

已满足适用检查项的 90%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分
  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分