Every change Wellknown observed on this MCP server, newest first, with what it was before and what it became. Tool-surface changes carry the definition diff. Nothing here is edited after the fact.
Added "workbench_tasks_set_sites"; changed the definition of "search_docs", "search_workspace", "workbench_flows_publish" and 6 more (60 tools before, 61 now)
⟨27 unchanged words⟩ Workbench, Caliper, Prism, Ledger, Napkin,zv1the assistant), an API behavior, or a policy. ⟨9 unchanged words⟩
⟨65 unchanged words⟩ sheet","diagram","interface","change","field","study","metric","folder"],"type":"string"},"minItems" ⟨60 unchanged words⟩
⟨59 unchanged words⟩ credit — mention it when one exists).Publish onlyRefusedafterwhen theuserdrafthashasn'ttestedbeentherundraftsince(it last changed: try it first with workbench_flows_run)oronaskedaforfewit.real questions, including one it should decline, and read the answers.
⟨9 unchanged words⟩ a cadence — the deterministic counterpart to azv1routine. Each run executes the flow's latest PUBLISHED ⟨97 unchanged words⟩
⟨158 unchanged words⟩ object"}]},"interval":{"description":"CadencePlain cadence: hourly, daily, or weekly. Omit when passing recurrence.","enum":["hourly","daily"," ⟨9 unchanged words⟩ "},{"type":"null"}]},"recurrence":{"anyOf":[{"properties":{"ends":{"pattern":"^\\d{4}-\\d{2}-\\d{2}$","type":"string"},"every":{"default":1,"maximum":366,"minimum":1,"type":"integer"},"freq":{"enum":["hourly","daily","weekly","monthly","yearly"],"type":"string"},"hours":{"properties":{"from":{"pattern":"^([01]\\d|2[0-3]):[0-5]\\d$","type":"string"},"to":{"pattern":"^([01]\\d|2[0-3]):[0-5]\\d$","type":"string"}},"required":["from","to"],"type":"object"},"minutes":{"items":{"maximum":59,"minimum":0,"type":"integer"},"maxItems":12,"minItems":1,"type":"array"},"monthDays":{"items":{"maximum":31,"minimum":-1,"type":"integer"},"maxItems":31,"minItems":1,"type":"array"},"months":{"items":{"maximum":12,"minimum":1,"type":"integer"},"maxItems":12,"minItems":1,"type":"array"},"nthWeekdays":{"items":{"properties":{"nth":{"maximum":5,"minimum":-1,"type":"integer"},"weekdays":{"items":{"maximum":6,"minimum":0,"type":"integer"},"maxItems":7,"minItems":1,"type":"array"}},"required":["nth","weekdays"],"type":"object"},"maxItems":5,"minItems":1,"type":"array"},"skip":{"items":{"pattern":"^\\d{4}-\\d{2}-\\d{2}$","type":"string"},"maxItems":100,"type":"array"},"starts":{"pattern":"^\\d{4}-\\d{2}-\\d{2}$","type":"string"},"times":{"items":{"pattern":"^([01]\\d|2[0-3]):[0-5]\\d$","type":"string"},"maxItems":24,"minItems":1,"type":"array"},"timezone":{"maxLength":64,"minLength":1,"type":"string"},"weekdays":{"items":{"maximum":6,"minimum":0,"type":"integer"},"maxItems":7,"minItems":1,"type":"array"}},"required":["freq","timezone"],"type":"object"},{"type":"null"}],"description":"When it runs, like a calendar event repeats; use it for anything beyond a plain hourly/daily/weekly at one time (then omit interval). {\"freq\":\"hourly\"|\"daily\"|\"weekly\"|\"monthly\"|\"yearly\",\"every\":N,\"times\":[\"HH:MM\"],\"weekdays\":[0=Sun…6=Sat],\"monthDays\":[1…31,-1=last],\"nthWeekdays\":[{\"nth\":1…5|-1,\"weekdays\":[…]}],\"months\":[1…12],\"minutes\":[…],\"hours\":{\"from\",\"to\"},\"timezone\":\"<IANA>\",\"starts\",\"ends\",\"skip\":[\"YYYY-MM-DD\"]}. Examples: weekdays at 8 → {\"freq\":\"weekly\",\"weekdays\":[1,2,3,4,5],\"times\":[\"08:00\"],\"timezone\":\"America/Chicago\"}; the last business day of the month → {\"freq\":\"monthly\",\"nthWeekdays\":[{\"nth\":-1,\"weekdays\":[1,2,3,4,5]}],\"timezone\":\"…\"}; every other Friday → {\"freq\":\"weekly\",\"every\":2,\"weekdays\":[5],\"starts\":\"<a Friday>\",\"timezone\":\"…\"}. null clears it."},"
⟨175 unchanged words⟩ "},{"type":"null"}]},"recurrence":{"anyOf":[{"properties":{"ends":{"pattern":"^\\d{4}-\\d{2}-\\d{2}$","type":"string"},"every":{"default":1,"maximum":366,"minimum":1,"type":"integer"},"freq":{"enum":["hourly","daily","weekly","monthly","yearly"],"type":"string"},"hours":{"properties":{"from":{"pattern":"^([01]\\d|2[0-3]):[0-5]\\d$","type":"string"},"to":{"pattern":"^([01]\\d|2[0-3]):[0-5]\\d$","type":"string"}},"required":["from","to"],"type":"object"},"minutes":{"items":{"maximum":59,"minimum":0,"type":"integer"},"maxItems":12,"minItems":1,"type":"array"},"monthDays":{"items":{"maximum":31,"minimum":-1,"type":"integer"},"maxItems":31,"minItems":1,"type":"array"},"months":{"items":{"maximum":12,"minimum":1,"type":"integer"},"maxItems":12,"minItems":1,"type":"array"},"nthWeekdays":{"items":{"properties":{"nth":{"maximum":5,"minimum":-1,"type":"integer"},"weekdays":{"items":{"maximum":6,"minimum":0,"type":"integer"},"maxItems":7,"minItems":1,"type":"array"}},"required":["nth","weekdays"],"type":"object"},"maxItems":5,"minItems":1,"type":"array"},"skip":{"items":{"pattern":"^\\d{4}-\\d{2}-\\d{2}$","type":"string"},"maxItems":100,"type":"array"},"starts":{"pattern":"^\\d{4}-\\d{2}-\\d{2}$","type":"string"},"times":{"items":{"pattern":"^([01]\\d|2[0-3]):[0-5]\\d$","type":"string"},"maxItems":24,"minItems":1,"type":"array"},"timezone":{"maxLength":64,"minLength":1,"type":"string"},"weekdays":{"items":{"maximum":6,"minimum":0,"type":"integer"},"maxItems":7,"minItems":1,"type":"array"}},"required":["freq","timezone"],"type":"object"},{"type":"null"}],"description":"When it runs, like a calendar event repeats; use it for anything beyond a plain hourly/daily/weekly at one time (then omit interval). {\"freq\":\"hourly\"|\"daily\"|\"weekly\"|\"monthly\"|\"yearly\",\"every\":N,\"times\":[\"HH:MM\"],\"weekdays\":[0=Sun…6=Sat],\"monthDays\":[1…31,-1=last],\"nthWeekdays\":[{\"nth\":1…5|-1,\"weekdays\":[…]}],\"months\":[1…12],\"minutes\":[…],\"hours\":{\"from\",\"to\"},\"timezone\":\"<IANA>\",\"starts\",\"ends\",\"skip\":[\"YYYY-MM-DD\"]}. Examples: weekdays at 8 → {\"freq\":\"weekly\",\"weekdays\":[1,2,3,4,5],\"times\":[\"08:00\"],\"timezone\":\"America/Chicago\"}; the last business day of the month → {\"freq\":\"monthly\",\"nthWeekdays\":[{\"nth\":-1,\"weekdays\":[1,2,3,4,5]}],\"timezone\":\"…\"}; every other Friday → {\"freq\":\"weekly\",\"every\":2,\"weekdays\":[5],\"starts\":\"<a Friday>\",\"timezone\":\"…\"}. null clears it."},"
⟨34 unchanged words⟩ terms: which clauses run flows, which you(zv1)will handle, who decides, what the compiler noted. `computer.sites` lists sites the plan names and whether the Task allows them; workbench_tasks_set_sites asks an admin to allow the rest. Then iterate or freeze. Compile may take ~15s.
Creates a DRAFT Task from a name + sentence. A Task is for work with people in the loop (someone approves, decides or acts on each item before anything else happens) or a specific process mapped in Compass; its runs are measured. When nobody but you acts on it and you'd just do the same thing each time on a schedule, make a routine instead (routines_create). Use this once the user's sentence feels settled ⟨21 unchanged words⟩ then steps, branches, and who decides what. Name rooms, sheets, tables, flows and people by their names, never by id: people read the sentence on the Task's page.
⟨11 unchanged words⟩ (the clauses — which run flows, whichzv1the assistant handles, who decides at each gate) with ⟨5 unchanged words⟩ the plan refers to, and its recentruns.runs, plus the sites its machine may reach (allowedSites) and the sites its plan names or past runs were refused (computer.sites). Read this before editing a task's sentence ( ⟨17 unchanged words⟩
Kicks off a run of aTask.Task and returns at once; the run carries on by itself and is live on the task's page. When the task expects an input document (its ⟨11 unchanged words⟩ pasted text, extracted attachment text, or JSON.CiteTell therunuseriditbackhas started andtellwhattheituserdoeswhatnext.happensChecknextwhere
Set the sites a Task can reach — Sets the full list of sites a Task's machine may reach (example.com, or *.example.com for its subdomains; up to 20), for steps that have to use a site like a person would. It replaces the list, so read workbench_tasks_get first (allowedSites, and computer.sites for what the plan names) and pass every site to keep. Always waits for approval, and only a workspace admin's approval applies it; for anyone else it says who can. The latest saved version runs with the new list.
Changed the definition of "search_workspace"
Findsentities across everyanythingtoolinbythenameworkspace in one call — uploaded files (searching the text inside them), folders, Workbench flows, shims, knowledge bases and tasks, Compass pages and changes, Caliper datasets, evals, rubrics, reviews, specs and sources(apps sending agent traces), Ledger entries, Napkin sketches, decks, docs, sheets, diagrams anddecks.interfaces. The same search the person uses in Home.
Changed the definition of "comments_create", "comments_list", "comments_resolve" and 57 more
{"destructiveHint":false,"openWorldHint":false,"readOnlyHint":false,"title":"Comment on an entity"}
{"destructiveHint":false,"openWorldHint":false,"readOnlyHint":true,"title":"Read an entity's comment threads"}
Added "workbench_flows_attach_knowledge_base"; changed the definition of "workbench_kb_create" (59 tools before, 60 now)
⟨27 unchanged words⟩ After creating, add content with workbench_kb_add_documents, thenattachgivetheanKBagenttoflowanaagentsearchintooltheoverWorkbenchit
Added "workbench_flows_scenarios_create", "workbench_flows_scenarios_delete", "workbench_flows_scenarios_list" and 1 more; changed the definition of "workbench_flows_scaffold" (55 tools before, 59 now)
⟨295 unchanged words⟩ agent).","type":"string"},"variables":{"description":"agent / interviewer: types and descriptions for the {{tokens}} in systemPrompt. Every {{token}} becomes a variable on its own (the test pane and scenarios list it, the app fills it per user at run time); pass this only to set a type other than string or say what fills it.","items":{"properties":{"description":{"description":"What the app passes in, e.g. 'The member's first name, from the CRM'.","type":"string"},"name":{"description":"The token's name, as in {{name}}.","type":"string"},"type":{"description":"Default string.","enum":["string","number","boolean","array","object"],"type":"string"}},"required":["name"],"type":"object"},"type":"array"},"workspace":{"description":"Workspace slug. Personal tokens ⟨14 unchanged words⟩
Save a scenario for a flow — Saves a named scenario: values for the flow's variables, e.g. one demo customer. It shows in the test pane's Scenarios menu, and Caliper evals can run as it. Use the person's details from what the user shared (a CRM screenshot, a profile) and say which ones you made up. May return `needs_confirmation`.
Certificate recorded, valid to 2026-12-19
Authorization not required
Changed the definition of "workbench_flows_scaffold", "workbench_flows_schedule" and "workbench_flows_schedules_update"
⟨21 unchanged words⟩ ":{"description":"classifier only: 2-12 buckets. The classifier asks the systemPrompt as one pick-one question with these as the options, and returns `values.category` plus `answers.category` (probabilities and confidence).","items":{"properties":{"description": ⟨85 unchanged words⟩ "The model node slug the draft runs on— an `llm` entry, from workbench_node_catalog_get, that the workspaceallowsallows. For a classifier, a `decision` entry (Jev, Kev, Solar Decide); defaults to TypeSafe: Jev Latest. Otherwise an `llm` entry (e.g. an OpenAI, Anthropic, or Google model).;Defaultsdefaults
Unknown → Live
First tool surface recorded: 55 tools (server version 0.0.0)
https://api.zerowidth.ai/mcp/x/workbench (mcp_streamable_http) — from mcp_registry, with the record
Showing the latest 11 events. The API returns up to 500 and filters by kind: ?kind=tool_surface_changed
⟨35 unchanged words⟩ "maxLength":2000,"type":"string"},"untried":{"description":"true only when the person asked to publish this draft without trying it first.","type":"boolean"},"version":{"description":"Version label, e.g. ⟨50 unchanged words⟩
{"$schema":"http://json-schema.org/draft-07/schema#","properties":{"folderId":{"description":"Only search inside this folder and the folders under it (ids from workspace_folders_browse or a folder hit).","maxLength":100,"minLength":1,"type":"string"},"kinds":{"description":"Restrict to these kinds (flowfile,pagefolder,datasetflow,evalpage,entrydoc,boarddataset, …). Omit to search everything.","items": ⟨11 unchanged words⟩ ,"rubric","review","spec","source","doc","sheet","diagram","interface","change","folder"],"type":"string"},"minItems":1 ⟨10 unchanged words⟩ :"integer"},"q":{"description":"Case-insensitiveWords,substringanymatchedorder,againstcase-insensitive.names/titles.Fewer words find more.","maxLength":200,"minLength":1,"type ⟨33 unchanged words⟩
{"destructiveHint":true,"openWorldHint":false,"readOnlyHint":false,"title":"Resolve or reopen a thread"}
{"destructiveHint":false,"openWorldHint":false,"readOnlyHint":true,"title":"Browse the workspace's tags"}
{"destructiveHint":false,"openWorldHint":false,"readOnlyHint":true,"title":"Read the tags on entities"}
{"destructiveHint":true,"openWorldHint":false,"readOnlyHint":false,"title":"Set an entity's tags"}
{"destructiveHint":false,"openWorldHint":false,"readOnlyHint":true,"title":"Fetch ZeroWidth doc by slug"}
{"destructiveHint":false,"openWorldHint":false,"readOnlyHint":true,"title":"List ZeroWidth docs pages"}
{"destructiveHint":false,"openWorldHint":false,"readOnlyHint":true,"title":"Search ZeroWidth docs"}
{"destructiveHint":false,"openWorldHint":false,"readOnlyHint":true,"title":"Search the whole workspace"}
{"destructiveHint":false,"openWorldHint":false,"readOnlyHint":true,"title":"Inspect a flow's executions (debug traces)"}
{"destructiveHint":false,"openWorldHint":false,"readOnlyHint":true,"title":"Workbench flow-authoring guide"}
{"destructiveHint":false,"openWorldHint":false,"readOnlyHint":false,"title":"Give an agent flow a knowledge base to search"}
{"destructiveHint":true,"openWorldHint":false,"readOnlyHint":false,"title":"Delete a Workbench flow"}
{"destructiveHint":true,"openWorldHint":false,"readOnlyHint":false,"title":"Surgically edit text inside a flow"}
{"destructiveHint":false,"openWorldHint":false,"readOnlyHint":false,"title":"Fork a public flow into the workspace"}
{"destructiveHint":false,"openWorldHint":false,"readOnlyHint":true,"title":"Read one Workbench flow"}
{"destructiveHint":false,"openWorldHint":false,"readOnlyHint":true,"title":"List Workbench flows"}
{"destructiveHint":true,"openWorldHint":true,"readOnlyHint":false,"title":"Publish a Workbench flow version"}
{"destructiveHint":false,"openWorldHint":false,"readOnlyHint":true,"title":"List a flow's versions (publish history)"}
{"destructiveHint":false,"openWorldHint":true,"readOnlyHint":false,"title":"Run a Workbench flow"}
{"destructiveHint":false,"openWorldHint":false,"readOnlyHint":false,"title":"Scaffold a first-draft Workbench flow"}
{"destructiveHint":false,"openWorldHint":false,"readOnlyHint":false,"title":"Save a scenario for a flow"}
{"destructiveHint":true,"openWorldHint":false,"readOnlyHint":false,"title":"Delete a flow's scenario"}
{"destructiveHint":false,"openWorldHint":false,"readOnlyHint":true,"title":"List a flow's variables and scenarios"}
{"destructiveHint":true,"openWorldHint":false,"readOnlyHint":false,"title":"Change a flow's scenario"}
{"destructiveHint":false,"openWorldHint":false,"readOnlyHint":false,"title":"Schedule a Workbench flow"}
{"destructiveHint":true,"openWorldHint":false,"readOnlyHint":false,"title":"Delete a flow schedule"}
{"destructiveHint":false,"openWorldHint":false,"readOnlyHint":true,"title":"List a flow's schedules"}
{"destructiveHint":false,"openWorldHint":true,"readOnlyHint":false,"title":"Fire a flow schedule once, now"}
{"destructiveHint":true,"openWorldHint":false,"readOnlyHint":false,"title":"Pause / resume / re-time a flow schedule"}
{"destructiveHint":false,"openWorldHint":true,"readOnlyHint":false,"title":"Mint a guest share link for a flow"}
{"destructiveHint":false,"openWorldHint":false,"readOnlyHint":true,"title":"List a flow's guest share links"}
{"destructiveHint":true,"openWorldHint":false,"readOnlyHint":false,"title":"Revoke a flow's guest share link"}
{"destructiveHint":true,"openWorldHint":false,"readOnlyHint":false,"title":"Rename / describe / archive / re-scope a Workbench flow"}
{"destructiveHint":false,"openWorldHint":false,"readOnlyHint":false,"title":"Add documents to a knowledge base"}
{"destructiveHint":false,"openWorldHint":false,"readOnlyHint":false,"title":"Create a knowledge base"}
{"destructiveHint":true,"openWorldHint":false,"readOnlyHint":false,"title":"Delete a knowledge base"}
{"destructiveHint":true,"openWorldHint":false,"readOnlyHint":false,"title":"Remove a document from a knowledge base"}
{"destructiveHint":false,"openWorldHint":false,"readOnlyHint":true,"title":"List the documents in a knowledge base"}
{"destructiveHint":false,"openWorldHint":false,"readOnlyHint":true,"title":"Read one knowledge base"}
{"destructiveHint":false,"openWorldHint":false,"readOnlyHint":true,"title":"Check an ingestion run"}
{"destructiveHint":false,"openWorldHint":false,"readOnlyHint":true,"title":"List knowledge bases"}
{"destructiveHint":false,"openWorldHint":false,"readOnlyHint":true,"title":"Search a knowledge base"}
{"destructiveHint":false,"openWorldHint":false,"readOnlyHint":true,"title":"Search the Workbench node catalog"}
{"destructiveHint":false,"openWorldHint":false,"readOnlyHint":false,"title":"Add an answer to a shim"}
{"destructiveHint":false,"openWorldHint":false,"readOnlyHint":false,"title":"Add examples to an answer"}
{"destructiveHint":false,"openWorldHint":false,"readOnlyHint":false,"title":"Create a shim"}
{"destructiveHint":false,"openWorldHint":false,"readOnlyHint":true,"title":"Read one shim"}
{"destructiveHint":false,"openWorldHint":false,"readOnlyHint":true,"title":"List shims"}
{"destructiveHint":false,"openWorldHint":true,"readOnlyHint":false,"title":"Act on a Task gate (record a verdict)"}
{"destructiveHint":false,"openWorldHint":false,"readOnlyHint":false,"title":"Compile a sentence into a Task plan"}
{"destructiveHint":false,"openWorldHint":false,"readOnlyHint":false,"title":"Create a draft Task"}
{"destructiveHint":true,"openWorldHint":false,"readOnlyHint":false,"title":"Delete a Workbench Task"}
{"destructiveHint":true,"openWorldHint":false,"readOnlyHint":false,"title":"Freeze a compiled plan (activate the Task)"}
{"destructiveHint":false,"openWorldHint":false,"readOnlyHint":true,"title":"Read one Workbench Task (definition + recent runs)"}
{"destructiveHint":false,"openWorldHint":false,"readOnlyHint":true,"title":"List Workbench Tasks"}
{"destructiveHint":false,"openWorldHint":false,"readOnlyHint":true,"title":"View a Task run (the lit sentence)"}
{"destructiveHint":false,"openWorldHint":true,"readOnlyHint":false,"title":"Start a Task run"}
{"destructiveHint":true,"openWorldHint":false,"readOnlyHint":false,"title":"Rename a Workbench Task"}
Give an agent flow a knowledge base to search — Attaches a knowledge base to an AGENT flow's draft, the same way picking it in the agent editor does: a docs knowledge base becomes a search tool the model calls when a question needs it; a tabular one also puts its tables in the prompt and adds a query tool. The flow needs a system prompt (scaffold it with one). Attaching one that's already there changes nothing. Do it BEFORE workbench_flows_publish: a published version is what interfaces and schedules run, so attach, try it with workbench_flows_run, then publish — and if something already pins an older version (an interface grant), re-grant…
Delete a flow's scenario — Deletes one scenario. A design session running as it goes back to no scenario. May return `needs_confirmation`.
List a flow's variables and scenarios — A flow's variables (each {{token}} in an agent's prompt, with its type) and every saved scenario with its values. Read this before creating or updating a scenario, so the values use the flow's real variable names.
Change a flow's scenario — Renames a scenario or changes its values. `values` MERGES into what's saved: pass only the variables that change, and null to clear one. Get the scenarioId from workbench_flows_scenarios_list. May return `needs_confirmation`.
⟨125 unchanged words⟩ type":"object"},"type":"array"},"values":{"additionalProperties":{},"propertyNames":{"type":"string"},"type":"object"}},"required":["kind","messages"], ⟨96 unchanged words⟩
⟨121 unchanged words⟩ type":"object"},"type":"array"},"values":{"additionalProperties":{},"propertyNames":{"type":"string"},"type":"object"}},"required":["kind","messages"], ⟨112 unchanged words⟩