Repository navigation
ToolsEngine 0.1.4
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 codexOn 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/toolsengineis not on the npm
registry yet and shows the route that works:npm install -gof the
toolsenabled-toolsengine-0.1.4.tgzfile above, after checking it against
its.sha256file. 0.1.3's README gavenpm install -g @toolsenabled/toolsengineas if the package were on the registry. - The README no longer says that the npm route installs the dependency
versions listed innpm-shrinkwrap.json:npm install -gof 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 SHA256SUMSon Linux
(without--ignore-missingthe check also reports the Windows archive,
which the file lists, and exits 1),certutil -hashfileon 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
--versionon 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.jsonkeepshomepagehttps://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
.tgzabove.
Known limits
From "Tested platforms and known limits" in app/README.md:
--browser-extensionuses 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; onlyweb.fetchhas 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.extractis 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).