Skip to content

WorkatoMCP v1.13.0

Choose a tag to compare

@github-actions github-actions released this 19 Oct 16:55
· 69 commits to master since this release

Chrome extension 1.13.0, built by GitHub Actions from this tag. Pairs with workatomcp-bridge 1.13.0 on npm.

Install

  1. Unzip workatomcp-extension-1.13.0.zip into a folder you will keep, for example %LOCALAPPDATA%\WorkatoMCP\extension. Chrome loads the extension from there on every start.
  2. Open chrome://extensions, turn on Developer mode, click Load unpacked and pick that folder.
  3. Check the ID reads bpjpdgkeelhkijkllcmogemkmndgeana.
  4. 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. A write or send without confirm returns a preview and a run_id, and the confirmed call commits exactly that in the same window; a failure at or after a commit is reported as unknown with 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 (vault in the definition, "{vault.password}" as a fill value). The bridge reads them with the bw CLI 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_save refuses them and a run requires the committed file. The first one, netsuite.login, replaces the login subagent.
  • Extension messages agent_tab_info and agent_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_recipe refused 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: false in 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_dependents stopped 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 (holds sid) and author (holds auth) came back as <redacted>. sid and auth now match a word of the key; longer markers still match anywhere, so cookies, credentials or passwordhash stay redacted. The sanitizer moved to workatomcp-shared so the bridge redacts with the same rules.