Repository navigation
WorkatoMCP v1.13.0
Chrome extension 1.13.0, built by GitHub Actions from this tag. Pairs with workatomcp-bridge 1.13.0 on npm.
Install
- Unzip
workatomcp-extension-1.13.0.zipinto a folder you will keep, for example%LOCALAPPDATA%\WorkatoMCP\extension. Chrome loads the extension from there on every start. - Open
chrome://extensions, turn on Developer mode, click Load unpacked and pick that folder. - Check the ID reads
bpjpdgkeelhkijkllcmogemkmndgeana. - Install the bridge and connect your MCP client: quick start, step 3 on.
To update, replace the folder's contents with the new zip and press reload on the extension card.
Verify
gh attestation verify workatomcp-extension-1.13.0.zip --repo Eithery-rc/WorkatoMCP confirms the zip was built by this repository's release workflow.
SHA-256: 3b468f303c6d6dfc0836bad33587c3cb31a8cd0d067ae69a1cd0ef1a42e9c7d4
Changes
Browser flows saved once and run by name, logins without a subagent, and a py_eval check that agrees with Python.
Added
- Browser functions:
chrome_fn_list,chrome_fn_get,chrome_fn_run,chrome_fn_save,chrome_fn_runs. A function is a named, versioned sequence of steps (navigate,wait_for,js,verify,tool,pause,finish,fail) with JSON Schema params, kept as one YAML file in a private git registry (~/.workatomcp/functions, every save a commit). A run opens a window of its own and closes it at the end. Awriteorsendwithoutconfirmreturns a preview and arun_id, and the confirmed call commits exactly that in the same window; a failure at or after a commit is reported asunknownwith a hint on how to check, never retried. Saves are refused on top of a newer version. Optional dedupe keys, host checks before commits, and a run log that records param hashes, not values. See TOOLS.md. - Logins from the vault: a function can type values from the user's Bitwarden vault (
vaultin the definition,"{vault.password}"as a fill value). The bridge reads them with thebwCLI at the step that types them, only on pages that match the vault item's URIs, and scrubs them from everything it returns; no model sees them. Such functions are written and committed by a person:chrome_fn_saverefuses them and a run requires the committed file. The first one,netsuite.login, replaces the login subagent. - Extension messages
agent_tab_infoandagent_tab_navigate: a tab's URL and load state, and navigation that waits for the new page, through the tabs API only. Closing an agent tab reports whether it is really gone.
Fixed
- The py_eval check refused valid Python and blocked recipe saves: a block opened by a multi-line
if (...):condition (or a backslash continuation) read as "unexpected indent", and any tab in a file that also used spaces read as a TabError. The indentation check now follows CPython's tokenizer (both tab widths, statement ends across brackets and backslashes), and when a real Python compiles the code, the structural lint's findings become notes instead of blocking the save. workato_test_reciperefused recipes using JSON tools, Message templates or Lookup tables ("needs a connection"): those adapters, and Utilities, Webhooks, Data tables, XML tools, Lists and FileStorage, need none (connection_required: falsein Workato's own meta). It now also refuses to test a RUNNING recipe, before anything is sent: a test ends with the recipe stopped, which would have left it, and its callers, broken.workato_recipe_save_with_dependentsstopped the callers before the save's own checks ran (code_path, py_eval), so a refused save left them stopped until the restore. Those checks now run first; a refused tree stops nothing.- Output redaction no longer hides ordinary fields whose names merely contain a short marker:
subsidiary(holdssid) andauthor(holdsauth) came back as<redacted>.sidandauthnow match a word of the key; longer markers still match anywhere, socookies,credentialsorpasswordhashstay redacted. The sanitizer moved toworkatomcp-sharedso the bridge redacts with the same rules.