Repository navigation
ToolsEngine 0.1.5
ToolsEngine 0.1.5
A patch release of 0.1.4 (0.1.3 was 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 offers the same tools as 0.1.4: 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 second new-user
check of 0.1.4 found: npm test failing on a machine without Chrome, raw
system errors for a missing folder or workspace, the npm route without a
browser, and three smaller points in the installer, the README and two tool
descriptions.
Source: commit cc6aa379ec946a0c12fe975c066ef477c45931b8 (branch main). Built on Linux with Node
v22.19.0; the archive timestamps are the commit time, 2026-10-13T13:47:34Z. Licence:
MIT.
Files in this release
| File | Bytes | SHA-256 |
|---|---|---|
toolsengine-0.1.5-linux-x64.tar.gz |
7930697 | 9683a019653b69af91aac86aec6b380f83bc7a97c27e33eb4e252edd6b718c37 |
toolsengine-0.1.5-windows-x64.zip |
9878944 | 7099d3a18dfedf48657ada87cff99509cdddff0c03e56b64ee49c66f954ee984 |
toolsenabled-toolsengine-0.1.5.tgz (the npm package, 22 files) |
117632 | abd14b41a3f3e51e36c7b917e02f84591b9a3023231d80838048c414919a2ee1 |
SHA256SUMS |
the two archive hashes above, sha256sum -c format |
|
toolsenabled-toolsengine-0.1.5.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.5-linux-x64.tar.gz
cd toolsengine-0.1.5-linux-x64
./install.sh --register claude codexOn Windows: certutil -hashfile toolsengine-0.1.5-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.5 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.5.tgz.sha256
npm install -g ./toolsenabled-toolsengine-0.1.5.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. With no Chrome
and no Edge on the machine, use --no-browser in place of
--browser-channel chrome: the server does not start with a browser it
cannot find, and Claude Code then shows only "Failed to connect".
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.5
Compared with 0.1.4 (the full history is at the end of app/README.md):
npm testpasses on a machine without Google Chrome and Microsoft Edge,
as the README says it does. The five tests that need an installed Chrome
(four of the extension relay, which looks Chrome up before it opens its
connect page, and one of the browser start options) are skipped there with
the reason "needs an installed Google Chrome". In 0.1.4 one of them failed
and four ran into their time limit.workspace.write_fileinto a folder that does not exist says so in plain
words: "The folder notes does not exist in the workspace.
workspace.write_file does not create folders: write the file into a folder
that exists (workspace.list shows them), or have the person create this
folder first." Reading or listing a path that does not exist says "...
does not exist in the workspace." 0.1.4 gave the system'sENOENT ... lstaterror with the workspace's full path.- A
--workspacethat names an absolute folder that does not exist is
refused with "--workspace must name an existing absolute directory. PATH
does not exist: create the folder first, or name one that exists." instead
of the system'sENOENTerror. - The README's npm section says to use
--no-browserwhere Chrome and Edge
are absent. - When the installer does not run the clients because the terminal's home
folder is not your own profile, it no longer suggests its ownregister
command, which is refused for the same reason; it prints the clients'
commands only. - The README says that
npm run audit:packageneeds a checkout that other
accounts can read (made under umask 022), and how to fix one made under
umask 077. browser.snapshotandbrowser.findremain not marked read-only, and
their descriptions now say why: they do not change the page, but with
filenamethey add a new file to the workspace, and their first call
starts the browser or connects to it.
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: 238 tests, 218 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, and npm pack run twice gave the same package file. 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: 238 tests, 218 pass,
0 fail, 20 skipped with Chrome named by TOOLSENGINE_TEST_BROWSER; 238, 195
pass, 0 fail, 43 skipped as a plain npm test (on this Ubuntu machine
Playwright's own Chromium cannot set its sandbox up, so the tests that would
use it are skipped with that reason); 238, 187 pass, 0 fail, 51 skipped with
Chrome hidden; and 238, 180 pass, 0 fail, 58 skipped with no browser at all.
0.1.4 with Chrome hidden gave 1 failure and 4 cancelled tests.
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 with Chrome, and with Chrome hidden passed 13 and skipped 4 with the reason, 0 failed. ./install.sh --home DIR --browser none copied the 3,855 files, checking each against release.json; the installed server answered as toolsengine 0.1.5 with 8 tools, and install.mjs check and list worked. The claude mcp add command the installer printed, run with a separate Claude Code configuration folder, gave ✔ Connected in claude mcp list. With a home folder that is not the profile, --register claude printed the client commands without suggesting install.mjs register (exit 2). Over stdio the installed server refused workspace.write_file into a missing folder and a missing --workspace with the new messages. npm install -g ./toolsenabled-toolsengine-0.1.5.tgz installed the program without running any install script or downloading a browser; toolsengine --version printed ToolsEngine 0.1.5, and claude mcp add ... -- toolsengine --workspace DIR --no-browser gave ✔ Connected.
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).