Skip to content

ToolsEngine 0.1.3

Choose a tag to compare

@ToolsEnabled-Inc ToolsEnabled-Inc released this 13 Oct 05:27
· 23 commits to main since this release

ToolsEngine 0.1.3

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.

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.

Source: commit 9f86b0a38dafefc1c8ad6cb82b86d3f5c84b71d5 (branch
release/0.1.3). Built on Linux with Node v22.19.0; the archive timestamps
are the commit time, 2026-10-13T04:57:30Z. Licence: MIT.

Files in this release

File Bytes SHA-256
toolsengine-0.1.3-linux-x64.tar.gz 7926700 d38d298730ca1996dccdd0435712726b65fe137a837ef00dee1f3215ebecb0a4
toolsengine-0.1.3-windows-x64.zip 9872815 90bcfa4eeea99cac20b81e544549b95c0aeae9ec1e1048a518a5c9bcf419b131
toolsenabled-toolsengine-0.1.3.tgz (the npm package, 21 files) 113393 99ac2317595e20c301389676189ebe387de4e96057597c6bafd27a310b489959
SHA256SUMS the two archive hashes above, sha256sum -c format
toolsenabled-toolsengine-0.1.3.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 and the 97 third-party
packages it 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; it carries that
tree's record, npm-shrinkwrap.json, for npm to follow.

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.3-linux-x64.tar.gz
cd toolsengine-0.1.3-linux-x64
./install.sh --register claude codex

On Windows: 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.3 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's npm install -g @toolsenabled/toolsengine
line will work once it is):

sha256sum -c toolsenabled-toolsengine-0.1.3.tgz.sha256
npm install -g ./toolsenabled-toolsengine-0.1.3.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.3

Compared with 0.1.3-rc.5, this release carries the version number and these
corrections from its release review (the full candidate history is at the
end of app/README.md):

  • web.fetch asks for the certificate check in every request, so it stays on
    when NODE_TLS_REJECT_UNAUTHORIZED=0 is in the server's environment, and
    reports an over-limit body sent without a Content-Length as
    RESPONSE_TOO_LARGE instead of INVALID_RESPONSE.
  • On Linux the browser process is given its own XDG_CONFIG_HOME in the
    workspace's runtime folder, so an installed Chrome no longer keeps its
    crash-report database under ~/.config/google-chrome.
  • Startup refuses --browser-executable together with --browser-channel,
    checks the --cdp-endpoint address itself and refuses the options for a
    browser ToolsEngine would start alongside it, and refuses an overlapping
    --profile-dir before creating its folders. The installer refuses
    --version on the install command instead of ignoring it.
  • A browser started before the downloads folder is found tampered with is
    closed with the refusal. On Linux, socket directories left by a killed
    server are removed by the next server that needs one, and what a killed
    server leaves behind is stated. Calls still queued when shutdown starts are
    refused as shutdown, not as cancelled.
  • browser.take_screenshot no longer lists scale as required; its default
    css stays. The release build refuses a browser test that was skipped for
    a reason it does not know.
  • Documentation: the registration commands shown are the ones the installer
    prints; the tested-platforms list says what ships for --browser-extension;
    docs/clients.md and NOTICE no longer call the package a candidate, and
    docs/clients.md is provider-neutral.
  • The README describes the npm route ("From npm"), and package.json names
    the repository, the home page and where to report a problem.
  • npm run audit:package reads the curation record from
    reference/curation.json in the package tree when the record beside the
    source is absent, so the check runs from the public repository as well.

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
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 21 packed files world-readable.

Tested platforms: Windows 10 and Linux with Node.js 22. 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.

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/; the repository's SECURITY.md was added
after this release was cut and is not inside the archives).