ai.dxpert/uns-tools

Offline listing — machine-checked

Does this exact package start offline and answer an MCP tools list?

Acquired @dxpert/[email protected]; tarball sha256 f5ebd78dfb9768c17701adb2f8ed8a8f447ecf62dda7950ef09de4fccd6e68ae.

Review

Machine-checked ·

Run UTC
Reviewed
Published
Updated

Observations · Limitations · Evidence

What we ran

Acquisition lock records install_scripts_ignored=true; runtime command in argv.json.

What we saw

The server started offline in an isolated container (runtime/inspect.json).

Limits

Runtime isolation evidence: runtime/inspect.json. Scope: initialize and tools/list (mcp/report.json). Network-attempt tracing and credential tests are outside this scope. Later versions require a new run.

developer-tools · mcp · Upstream source · Upstream documentation

Offline listing on Linux x86_64, image sha256:7393e97480d151dd97b8020ffd45a440f6fbe34b1128595c87b1df3e50d0ef2b, Claude Code Outside this listing scope. binary none: no Claude binary ran, model Outside this listing scope., UTC 2026-10-17T12:23:42.134840Z, tree b33c35e267ef6b3bb98bc5ef4ae30f1cfa44d7c52ce55ecfcc35caa393323d4e. No claim for macOS, Windows, WSL, Alpine/musl, or ARM64.

Scope: tested alone.

No browser or computer-use tools. Pin this exact version; the stamp does not follow updates.

Full record
name
ai.dxpert/uns-tools
slug
offline-mcp-0c847d39045aabddbd46386a
type
mcp
category
developer-tools
example
false
evidence state
offline_listing
stamp
Offline listing — machine-checked
summary
Acquired @dxpert/[email protected]; tarball sha256 f5ebd78dfb9768c17701adb2f8ed8a8f447ecf62dda7950ef09de4fccd6e68ae.
outcome
The server started offline in an isolated container (runtime/inspect.json).
rule results
["It answered tools/list with 3 tools named [\"lint_sparkplug_topic\", \"check_uns_namespace\", \"run_readiness_diagnostic\"]."]
task
Does this exact package start offline and answer an MCP tools list?
setup
Acquisition lock records install_scripts_ignored=true; runtime command in argv.json.
limitations
Runtime isolation evidence: runtime/inspect.json. Scope: initialize and tools/list (mcp/report.json). Network-attempt tracing and credential tests are outside this scope. Later versions require a new run.
source url
https://www.npmjs.com/package/@dxpert/uns-tools
documentation url
https://www.npmjs.com/package/@dxpert/uns-tools
tree sha256
b33c35e267ef6b3bb98bc5ef4ae30f1cfa44d7c52ce55ecfcc35caa393323d4e
image digest
sha256:7393e97480d151dd97b8020ffd45a440f6fbe34b1128595c87b1df3e50d0ef2b
file sha256
{".docker/buildx/.buildNodeID":"fc86f13f9cfd2d69609f25a983b7afde1d7dc1e40a328bfc1a678bba1082fe2e",".docker/buildx/.lock":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",".docker/buildx/activity/default":"2e727cd659a5a21a40833474ce208f6e34fd01790bdd20c523e1502fe2e52bc5",".docker/buildx/refs/default/default/enwg2ep9xlfe8x1uxz3c3ibjh":"1a454d3652664e9abeda38d022cc7513e5b5ee96deb0fc26e3c50478a9171064",".dockerignore":"99a18f8ea8514c4bcd448371d1bc1b8b4d877d6606e7c5b3d2a9dd52b32aa8d0","Containerfile":"d849cf10a7e9b70fecc5fcdc6333dd493aed8767d236893e675cfa4662520c54","image.id":"81e9843fdf0f984b46e583e70eee1d4489ee5d72a0f63f32abe64e206695ab7b","installed/node_modules/.package-lock.json":"7a7ef0ccdaabdd9fbcdd98b43820343f78e486bfd3ac2fc50601a36c728040be","installed/node_modules/@dxpert/uns-tools/LICENSE":"f8c126575277cb7af98da3bf4dc9f393384591d5db45cd75800570316f06571b","installed/node_modules/@dxpert/uns-tools/README.md":"4a4a4842f8718a1f0b65e54f7f8128df3a93e9dbe31dd2e2a77abccb2bb62186","installed/node_modules/@dxpert/uns-tools/bin/uns-tools-mcp.js":"47af2252354cfb75af49cbc336bf3a680ba7b429bf40ffaed6aa4b8bc94792f2","installed/node_modules/@dxpert/uns-tools/package.json":"fced387223ae1ec4ccc38a75d521b1cb228be2c4d941147bd0abb36b8a898c19","installed/node_modules/@dxpert/uns-tools/src/server.js":"898fcd8299e476f23a68e27c3bf24d498f75f2077510d29002257d5759e1c0b3","installed/node_modules/@dxpert/uns-tools/src/sparkplug-topic-lint.js":"123329c266d24263532b5a40ab7708befed545e74602b2c5401af02c45d2331d","installed/node_modules/@dxpert/uns-tools/src/uns-naming-check.js":"c3eef6ef09285a4edf7734e7bb2da7d70d68de2471c8e297bdf1a81f4f6077d8","installed/package-lock.json":"4645ec95c6119e13f728726c66b54c4f660768055637149b56510b8cd5a71c29","installed/package.json":"d0c816ee3a7d7d0ef6c29c66e4d368b5b128915181511d5ae7d1fbee34ffe99d","npmrc-global":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","npmrc-user":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","packs/dxpert-uns-tools-0.1.2.tgz":"f5ebd78dfb9768c17701adb2f8ed8a8f447ecf62dda7950ef09de4fccd6e68ae"}
lockfiles
["installed/package-lock.json"]
tools list hashes
["4231e453d21fcef0d9459a1ddf8aafc4d1fc03dabcde6929640e0d1c385a021a"]
utc date
2026-10-17T12:23:42.134840Z
source date
2026-10-16
discovered date
2026-10-16
retested date
2026-10-17
reviewed date
2026-10-17
published date
2026-10-17
modified date
2026-10-17
reviewer
Machine-checked
harness version
toolwitness harness at commit 5a286f05b93bfbf27b15f403e41e3a1525edc32f
claude code version
Outside this listing scope.
model id
Outside this listing scope.
scanner version
none
rulepack version
none
agents
[]
commands
["docker run -i --name toolwitness-999b5f1512cf4ebdaec856c2e4b721cd --pull=never --network none --read-only --cap-drop=all --security-opt=no-new-privileges --user=65532:65532 --memory=512m --memory-swap=512m --pids-limit=64 --cpus=1 --ulimit=nofile=256:256 --ulimit=fsize=16777216:16777216 --tmpfs=/tmp:rw,nosuid,nodev,noexec,size=64m,mode=1777 --env=HOME=/tmp --workdir=/tmp --entrypoint node sha256:7393e97480d151dd97b8020ffd45a440f6fbe34b1128595c87b1df3e50d0ef2b /installed/node_modules/@dxpert/uns-tools/bin/uns-tools-mcp.js"]
prompt list
["Outside this listing scope."]
history
["2026-10-17T12:23:42.134840Z: offline initialize and tools/list"]
application
{"applicationCategory":"DeveloperApplication","name":"@dxpert/uns-tools","softwareVersion":"0.1.2"}
review input
{"claims":[{"field":"summary","id":"acquired","sources":["LOCK.json"],"text":"Acquired @dxpert/[email protected]; tarball sha256 f5ebd78dfb9768c17701adb2f8ed8a8f447ecf62dda7950ef09de4fccd6e68ae."},{"field":"outcome","id":"started","sources":["runtime/inspect.json","LOCK.json","argv.json","mcp/report.json","mcp/stdout.bin"],"text":"The server started offline in an isolated container (runtime/inspect.json)."},{"field":"rule_results.0","id":"listed","sources":["mcp/report.json","mcp/stdout.bin"],"text":"It answered tools/list with 3 tools named [\"lint_sparkplug_topic\", \"check_uns_namespace\", \"run_readiness_diagnostic\"]."}],"evidence_sha256":{"LOCK.json":"b23961413068e49bd530154d4241900999c5ed2db662140d1b8b3f7952d7932d","argv.json":"8c8b8e1d2bb537eb0d3c842335c404bd48966a63b5b8571f9f7fd39464a5dc87","complete.json":"63c70b344779060834e23be23546dd5a762c0ae30dbf20b870a5e08b9e3417f0","component-record.json":"01fbe3446a71bd7a621fbdb2993ebd637037579f045275353fec95c1fddd4b7d","fixture.json":"ca3d163bab055381827226140568f3bef7eaac187cebd76878e0b63e9e442356","harness/acquire.py":"67fe8484cb7028040f6b494de3702b02fcd544986a6bf738d14001b8ae2ae9cb","harness/auto_witness.py":"b693353f11922463baf0884fe8680e083e2807e1ba7bb6026f6453db6aaf8b0a","harness/mcp_driver.py":"b5996ec8e534b797c976dc83e44af0b52f64895fec5e72a4f9b32cb2f63cbbf7","harness/record.py":"d34b444b8f6ccf5f79fae86dd02c2fc223f11e026cffa8090007ac5f9be85c82","harness/runtime_proof.py":"b9f8d2405611de5894c6287631c30ade8e8e5013a547923fbd3034c76b0d2a71","identity.json":"cdf02a580aefd98ed5bcea480d7890c4aee2361d4367f7aa74bc281e1032a003","manifest.json":"5ca82efac5d96e95580ecc25c6475e037a58abbcdcd6b988ecf0ab77358db185","mcp/report.json":"2da3a969c97b0a856952af0b50600cd4b965629fc3e98fa32e26c0fcc8058904","mcp/stderr.bin":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","mcp/stdin.bin":"9ced9858b21f60691df654e649f586e91cfcaf60ed887c79c3df92f599166df6","mcp/stdout.bin":"dba6da7ff4313d8b4f9d06f8296d9ccb4290efe57fdb8392ede65ffa17f943b1","runtime/inspect.json":"337766d5456ec630174260e9ec279b65c87bb41673703b2c7654a93a1cf70698"},"identity_artifact":"identity.json"}
review
{"codex":"42b831fee800831b85bdc53bdd88a3cd35c282329573fef0d281f89fd1142511","date":"2026-10-17","gates":"9c00286fca04a3130ccb92b2f899e5ce7aee5589a6c8f23d39834b47159bbdaf","grok":"3cd22f669e6143b975d54caa0ac84341dd7dec4010203adf8905480cabfa66ea","kind":"machine-checked","reviewed_sha256":"0c15063c7abf65604ab530f69301a7ea69cabe6b9d699eba8afb6a144cc4e086","summary":"Deterministic gates passed; Codex confirmed all outcome claims; Grok reported no standing refutation."}

Downloadable evidence

transcript

Download complete transcript

stdin:
{"id":1,"jsonrpc":"2.0","method":"initialize","params":{"capabilities":{},"clientInfo":{"name":"toolwitness","version":"s772-v0"},"protocolVersion":"2025-11-25"}}
{"jsonrpc":"2.0","method":"notifications/initialized"}
{"id":2,"jsonrpc":"2.0","method":"tools/list","params":{}}

stdout:
{"jsonrpc":"2.0","id":1,"result":{"protocolVersion":"2025-11-25","capabilities":{"tools":{}},"serverInfo":{"name":"@dxpert/uns-tools","version":"0.1.2"}}}
{"jsonrpc":"2.0","id":2,"result":{"tools":[{"name":"lint_sparkplug_topic","description":"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.","inputSchema":{"type":"object","additionalProperties":false,"properties":{"topics":{"description":"One topic string, or an array of topic strings. A single string containing newlines is also accepted and split per line.","oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"},"minItems":1}]}},"required":["topics"]}},{"name":"check_uns_namespace","description":"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 

Excerpt shown; complete evidence is in the download.

sinkhole log

Download complete sinkhole log

Scope: runtime isolation evidence in runtime/inspect.json.

canary log

Download complete canary log

Outside this listing scope.

scanner output

Download complete scanner output

Outside this listing scope.

normalized text

Download complete normalized text

{"calls": [], "exit_before_cleanup": null, "initialize": {"capabilities": {"tools": {}}, "protocolVersion": "2025-11-25", "serverInfo": {"name": "@dxpert/uns-tools", "version": "0.1.2"}}, "list_change_notifications": 0, "monotonic_seconds": 0.20195368400891311, "outcome": "listed tools offline", "started_utc": "2026-10-17T12:23:42.134840Z", "status": "completed", "tools": [{"description": "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.", "inputSchema": {"additionalProperties": false, "properties": {"topics": {"description": "One topic string, or an array of topic strings. A single string containing newlines is also accepted and split per line.", "oneOf": [{"type": "string"}, {"items": {"type": "string"}, "minItems": 1, "type": "array"}]}}, "required": ["topics"], "type": "object"}, "name": "lint_sparkplug_topic"}, {"description": "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 st

Excerpt shown; complete evidence is in the download.

Download full record JSON

Disclaimer

This record shows that this exact package version started offline in an isolated container and answered an MCP tools list (runtime/inspect.json, mcp/report.json). Scope: initialize and tools/list. It is not a security or quality verdict. Later versions are outside this record.

Template placeholders refer to the snapshot metadata above.

Page updated