Skip to content

ToolsEngine 0.1.4

Choose a tag to compare

@ToolsEnabled-Inc ToolsEnabled-Inc released this 13 Oct 10:20
· 38 commits to main since this release

ToolsEngine 0.1.4

A patch release of 0.1.3, the first public release of
@toolsenabled/toolsengine: a local MCP server over stdio that gives an
agent client a sandboxed headless Chromium browser, file tools inside one
workspace folder, and a reader for public web pages. It runs on Windows 10 or
11 and on Linux (64-bit) with Node.js 22.14 or newer. The browser tools drive
Google Chrome or Microsoft Edge that is already on the machine; no browser is
bundled or downloaded.

The server and its tools are unchanged from 0.1.3: 27 core tools, 19
browser.*, 4 workspace.*, 2 web.*, system.status and
capability.find. Attached-browser modes offer 26; without a browser, 8.
Four desktop.* tools for signed-in Windows apps exist only on Windows and
only when the server is started with the desktop option. This release
corrects what a new user found installing 0.1.3 from its release page: the
README's npm route, the missing verification step, the security policy
missing from the archives, and the installer's answer to a bare --version.

Source: commit 545be649e189356009c2a3fe78b9dff6df646f7d (branch main). Built on Linux with Node
v22.19.0; the archive timestamps are the commit time, 2026-10-13T09:36:50Z. Licence:
MIT.

Files in this release

File Bytes SHA-256
toolsengine-0.1.4-linux-x64.tar.gz 7927913 7c4b8a8fea54e5fa1a6a2b8794ed95536f4310588f5fb6f65de837f57273f460
toolsengine-0.1.4-windows-x64.zip 9877019 8eab155d94917d0729dde798e5152aab828bb6b617ee57e5113e43d890ac9140
toolsenabled-toolsengine-0.1.4.tgz (the npm package, 22 files) 115716 bfa22c869490018dd0728c513a0c4020b76b3b035a42368ec786dda8fd8f9a2e
SHA256SUMS the two archive hashes above, sha256sum -c format
toolsenabled-toolsengine-0.1.4.tgz.sha256 the npm package hash, same format
release-report.json the build record: commit, test counts, bundled packages, archive hashes

Each archive holds the program, the installer, SECURITY.md and the 97
third-party packages the program needs (THIRD-PARTY-NOTICES.txt lists them
with their licence texts: MIT 84, Apache-2.0 3, BSD-3-Clause 2, ISC 7,
BSD-2-Clause 1). The npm package is the same program without the dependency
tree: npm fetches the dependencies from the registry when it installs the
file. It takes the four that package.json names at their exact versions
and resolves the packages they depend on itself, so some of those can be
newer than the tested versions listed in npm-shrinkwrap.json; the
archives carry exactly the tested versions.

Install

From an archive (nothing is downloaded; the installer uses no network).
Verify first; --ignore-missing lets the check pass with only the archive
for your platform downloaded:

sha256sum -c --ignore-missing SHA256SUMS
tar -xzf toolsengine-0.1.4-linux-x64.tar.gz
cd toolsengine-0.1.4-linux-x64
./install.sh --register claude codex

On Windows: certutil -hashfile toolsengine-0.1.4-windows-x64.zip SHA256
must print the hash in the table above; then Extract All on the .zip, open
a terminal in the extracted folder and run install.cmd --register claude codex. Name only the client you use. The installer copies the program to
ToolsEngine/0.1.4 under your profile, creates a workspace folder, finds
Chrome or Edge, starts the server once to check it, and registers it with
each named client's own command. INSTALL.txt in the archive and
app/README.md (the manual) have the details and every option.

From the npm package in this release (@toolsenabled/toolsengine is not
on the npm registry yet; the README says so and shows this route):

sha256sum -c toolsenabled-toolsengine-0.1.4.tgz.sha256
npm install -g ./toolsenabled-toolsengine-0.1.4.tgz
claude mcp add --scope user toolsengine -- toolsengine --workspace /absolute/path/to/workspace --browser-channel chrome
codex mcp add toolsengine -- toolsengine --workspace /absolute/path/to/workspace --browser-channel chrome

--browser-channel msedge chooses Edge, --browser-executable PATH a
browser by path, --no-browser leaves the browser tools out. Hand-written
client configuration (JSON for Claude Code, TOML for Codex) is in
docs/clients.md in the package.

Then open a new session in the client: the tools appear under the server
name toolsengine, and system.status shows what is switched on.

Changes in 0.1.4

Compared with 0.1.3 (the full history is at the end of app/README.md):

  • The README says that @toolsenabled/toolsengine is not on the npm
    registry yet and shows the route that works: npm install -g of the
    toolsenabled-toolsengine-0.1.4.tgz file above, after checking it against
    its .sha256 file. 0.1.3's README gave npm install -g @toolsenabled/toolsengine as if the package were on the registry.
  • The README no longer says that the npm route installs the dependency
    versions listed in npm-shrinkwrap.json: npm install -g of the 0.1.4
    file with npm 10.9.3 on 2026-10-13 took 92 of the 97 packages at those
    versions and 5 at newer ones (@hono/node-server, content-disposition,
    express, ip-address, zod). The archives carry exactly the tested
    versions.
  • The README's install steps check the archive against SHA256SUMS
    before extracting it: sha256sum -c --ignore-missing SHA256SUMS on Linux
    (without --ignore-missing the check also reports the Windows archive,
    which the file lists, and exits 1), certutil -hashfile on Windows.
  • SECURITY.md, the security policy with its safe harbor, is a file of the
    npm package (22 files now) and sits at the top of each archive beside
    LICENSE and NOTICE; INSTALL.txt lists it. 0.1.3's archives were cut before
    the file was added to the repository. The README names the security and
    support contact and the policy page in place of the sentence that left
    them to "the distributor".
  • The installer answers a bare --version on the install command with the
    same explanation as --version VALUE ("--version is for register, check,
    list and uninstall. An install is always this installer's version.")
    instead of "--version needs a value".
  • package.json keeps homepage https://toolsenabled.ai/toolsengine/,
    which answered 404 when 0.1.3 was checked and is a live page now.

What was tested

The release build runs the whole test suite first, one file at a time, and
builds nothing unless every test passes and the browser tests ran. For this
build: 235 tests, 215 pass, 0 fail, 20 skipped for
the system they ran on (19 Windows-only cases: 16 desktop-tool tests, 2 installer tests and 1 NTFS short-name test; and 1 sandbox case that applies only to Playwright's own Chromium), in 47 test files, with
Google Chrome (/opt/google/chrome/chrome) and the browser sandbox on, on
Linux. The build was run twice from the same commit and gave byte-identical
archives. The package audit (npm run audit:package) passed: 27 offered
tools, 4 optional Windows desktop tools, the two tool catalogues equal to the
running server, all 22 packed files world-readable. npm test with every file at once on the same commit also passed: 235 tests, 215 pass, 0 fail, 20 skipped.

From the extracted Linux archive on the build machine: sha256sum -c --ignore-missing SHA256SUMS answered OK for the Linux archive (exit 0), and sha256sum -c on the npm package's .sha256 file answered OK. The test file shipped in the package (tests/browser-extension.test.js, run from app/ with the bundled packages) passed 17 of 17. ./install.sh with Chrome named by path copied the 3,855 files, checking each against release.json; the installed server answered as toolsengine 0.1.4 with 27 tools and opened a blank page in Chrome; install.mjs check, list and uninstall worked as the README says, a second install into the same folder was refused, and a bare ./install.sh --version gave the new explanation (exit 1). Over stdio the installed server offered 27 tools with Chrome (sandbox on, dedicated temporary profile) and 8 with --no-browser. npm install -g ./toolsenabled-toolsengine-0.1.4.tgz installed the program without running any install script or downloading a browser; toolsengine --version printed ToolsEngine 0.1.4, and the server offered 8 tools with --no-browser.

Tested platforms: Linux with Node.js 22 for this release; the Windows
archive was built and listed on Linux and was not run on Windows for this
patch (0.1.3 was tested on Windows 10, and the Windows code is unchanged).
macOS is untested.

Not included

  • A Firefox-desktop mode that exists only in a separate, unreleased fork.
    It is not part of this package or its documentation.
  • Native desktop input on Linux or macOS. The desktop tools exist on Windows
    only.
  • A web browser. Chrome or Edge must already be installed.
  • Publication on the npm registry. The npm package is the .tgz above.

Known limits

From "Tested platforms and known limits" in app/README.md:

  • --browser-extension uses Microsoft's Playwright Extension installed by the
    person; its tests use stand-ins, and a real signed-in Chrome or Edge
    extension workflow was not verified.
  • Browser network access is ordinary browser access, private networks
    included; only web.fetch has the public-address checks.
  • The filesystem checks do not defeat a hostile local process racing path
    components; use an OS sandbox when that threat applies.
  • There is no per-action confirmation, no on-screen "being controlled"
    indicator and no emergency stop key in this package; the MCP client's
    approval settings are the only check before an action.
  • web.extract is a bounded tokenizer, not a full HTML rendering engine.
  • Queued calls are refused once shutdown starts; a browser action already
    delivered cannot be rolled back.

Support and security contact: support@toolsenabled.ai (security policy:
https://toolsenabled.ai/security/, stated in SECURITY.md at the top of
each archive and in the npm package; private reports also through the
repository's Security tab).