@zeugwerk/plcsense
Advanced tools
| #!/usr/bin/env node | ||
| 'use strict'; | ||
| const { spawn } = require('child_process'); | ||
| const { ensureBinary } = require('../lib/download'); | ||
| async function main() { | ||
| const argv = process.argv.slice(2); | ||
| const binary = await ensureBinary(); | ||
| // Optional env licence key → --license-key for mcp / activate flows when not already passed. | ||
| const envKey = process.env.PLCSENSE_LICENSE_KEY; | ||
| if (envKey && !argv.includes('--license-key')) { | ||
| argv.push('--license-key', envKey); | ||
| } | ||
| const child = spawn(binary, argv, { | ||
| stdio: 'inherit', | ||
| windowsHide: true, | ||
| env: process.env, | ||
| }); | ||
| child.on('error', (err) => { | ||
| console.error(`@zeugwerk/plcsense: failed to start ${binary}: ${err.message}`); | ||
| process.exit(1); | ||
| }); | ||
| child.on('exit', (code, signal) => { | ||
| if (signal) { | ||
| process.kill(process.pid, signal); | ||
| return; | ||
| } | ||
| process.exit(code == null ? 1 : code); | ||
| }); | ||
| } | ||
| main().catch((err) => { | ||
| console.error(`@zeugwerk/plcsense: ${err.message}`); | ||
| process.exit(1); | ||
| }); |
+1
-1
@@ -7,4 +7,4 @@ { | ||
| "binary": "plcsense.exe", | ||
| "sha256": "84453b12269953320266dc6d72afdd0c2881adb26115c3fe9c4dab6ccfb92693" | ||
| "sha256": "252ab7d9c7929e28c87789780083e192ffb652b86e6497c413262360cbf44009" | ||
| }} | ||
| } |
+2
-2
| { | ||
| "name": "@zeugwerk/plcsense", | ||
| "version": "1.1.14", | ||
| "description": "plcsense MCP server for TwinCAT / Structured Text. Requires PLCSENSE_TOKEN to download and a plcsense licence to use.", | ||
| "version": "1.1.15", | ||
| "description": "MCP server for read-only TwinCAT Structured Text intelligence. Lets AI agents resolve symbols, inspect project and library APIs (.library / .compiled-library), pull docs, and validate PLC projects before editing — without TwinCAT XAE. Requires PLCSENSE_TOKEN to download and a plcsense licence to use.", | ||
| "license": "UNLICENSED", | ||
@@ -6,0 +6,0 @@ "author": "Zeugwerk GmbH", |
+3
-3
@@ -5,9 +5,9 @@ { | ||
| "title": "plcsense", | ||
| "description": "TwinCAT ST intelligence for agents. Set PLCSENSE_TOKEN to download; requires a plcsense licence.", | ||
| "description": "Read-only TwinCAT ST intelligence: resolve symbols, library APIs, docs, validate PLC code.", | ||
| "websiteUrl": "https://plcsense.com", | ||
| "version": "1.1.14", | ||
| "version": "1.1.15", | ||
| "packages": [ { | ||
| "registryType": "npm", | ||
| "identifier": "@zeugwerk/plcsense", | ||
| "version": "1.1.14", | ||
| "version": "1.1.15", | ||
| "runtimeHint": "npx", | ||
@@ -14,0 +14,0 @@ "transport": {"type": "stdio"}, |
Explicitly Unlicensed Item
LicenseSomething was found which is explicitly marked as unlicensed.
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 2 instances
AI-detected potential code anomaly
Supply chain riskAI has identified unusual behaviors that may pose a security risk.
Unidentified License
LicenseSomething that seems like a license was found, but its contents could not be matched with a known license.
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Explicitly Unlicensed Item
LicenseSomething was found which is explicitly marked as unlicensed.
AI-detected potential code anomaly
Supply chain riskAI has identified unusual behaviors that may pose a security risk.
Unidentified License
LicenseSomething that seems like a license was found, but its contents could not be matched with a known license.
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
11250
12.24%8
14.29%243
15.71%10
25%4
33.33%