From 6d95c4698d1b1d5fc8431eeaff07d22718c15102 Mon Sep 17 00:00:00 2001 From: Karstein Phobic Nyvold Kvistad Date: Fri, 12 Jun 2026 12:52:57 +0200 Subject: [PATCH] docs+chore: README online-tools table for phase 1, bump to 0.11.0 --- README.md | 16 ++++++++++++++-- package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index b872743..b02d0fc 100644 --- a/README.md +++ b/README.md @@ -344,7 +344,7 @@ Requires SSH key auth + passwordless sudo for `/usr/bin/strings` on the PLC. If ## MCP Tools -48 tools across the categories below. Tools marked **NEW** were added in this fork; tools marked **FIXED** existed upstream but were broken before this fork. +60 tools across the categories below. Tools marked **NEW** were added in this fork; tools marked **FIXED** existed upstream but were broken before this fork. ### Management Tools @@ -392,6 +392,18 @@ Requires SSH key auth + passwordless sudo for `/usr/bin/strings` on the PLC. If | `write_variable` | Write/force a variable value on the running PLC | | `download_to_device` | Download compiled application to PLC (attempts online change first, 120s timeout); same `deviceUser`/`devicePassword` credential-injection support as `connect_to_device` so the Device User Login dialog can be suppressed on every download too. Runs `verify_device_reachable` as a pre-flight | | `start_stop_application` | Start or stop the PLC application | +| `reset_application` | **NEW** — Reset the online application: `warm` (keep retains), `cold` (clear retains), `origin` (erase application from device — destructive) | +| `read_variables` | **NEW** — Bulk read: current values of many expressions in one call (`read_values`) | +| `write_variables` | **NEW** — Bulk write: stage many expression/value pairs, commit in one `write_prepared_values` batch (same-cycle landing) | +| `force_variables` | **NEW** — Force expression/value pairs (pinned against task writes until unforced) | +| `unforce_variables` | **NEW** — Unforce specific expressions (optionally restoring pre-force values) or ALL forced values | +| `list_forced_variables` | **NEW** — List all forced + prepared expressions on the online application | +| `create_boot_application` | **NEW** — Create a boot application on the connected device, or write an offline `.app` file | +| `source_download` | **NEW** — Store the project source archive on the PLC (compact or full) | +| `source_upload` | **NEW** — Retrieve the source archive stored on the PLC into a local `.prj` | +| `plc_file_list` | **NEW** — List a directory on the PLC filesystem (kind/name/size/mtime) | +| `plc_file_transfer` | **NEW** — Copy a single file to (`to_plc`) or from (`from_plc`) the PLC filesystem | +| `plc_file_delete` | **NEW** — Delete a file or directory on the PLC filesystem (destructive) | | `restart_runtime_ssh` | **NEW** — SSH into a Linux PLC and restart `codesyscontrol` via password-fed `sudo -S`. After issuing `systemctl restart`, polls `ss -tln` for the runtime port (default 11740) until it actually comes up — works around `systemctl is-active` reporting "active" after the binary has died from license-demo expiry. Defaults match the codesys-pi.local Pi | ### Device Network / Access Management (**NEW**) @@ -536,7 +548,7 @@ npm run test:watch ``` src/ bin.ts CLI entry point - server.ts MCP tool/resource registration (48 tools, 3 resources) + server.ts MCP tool/resource registration (60 tools, 3 resources) launcher.ts CODESYS process management ipc.ts File-based IPC transport headless.ts Headless fallback executor diff --git a/package-lock.json b/package-lock.json index 4a4ed6d..af3cbe1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "codesys-mcp-sp21-plus", - "version": "0.10.3", + "version": "0.11.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "codesys-mcp-sp21-plus", - "version": "0.10.3", + "version": "0.11.0", "license": "MIT", "dependencies": { "@modelcontextprotocol/sdk": "^1.26.0", diff --git a/package.json b/package.json index b90ba73..3b44bbb 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "codesys-mcp-sp21-plus", - "version": "0.10.3", + "version": "0.11.0", "description": "Codesys-MCP-SP21+ -- fork of luke-harriman/Codesys-MCP carrying CODESYS V3.5 SP22 Patch 1 fixes (and forward-compat with later SPs): script-engine API drift, online/runtime tool auto-login, dual-SHA release classifier, set_pou_code omitted-decl wipe fix, add_library managed-overload, etc. MCP server for CODESYS with persistent UI instance and file-based IPC.", "main": "dist/server.js", "bin": {