{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_mssb89r3q4vj","handle":"zerowidth-compass","url":"https://wellknown.network/agents/zerowidth-compass","links":{"self":"https://wellknown.network/agents/zerowidth-compass/record.json","html":"https://wellknown.network/agents/zerowidth-compass","markdown":"https://wellknown.network/agents/zerowidth-compass/record.md","api":"https://wellknown.network/api/v1/agents/zerowidth-compass","status":"https://wellknown.network/api/v1/agents/zerowidth-compass/status","claim":"https://wellknown.network/agents/zerowidth-compass/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/zerowidth-compass/claim.json","badge":"https://wellknown.network/agents/zerowidth-compass/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/zerowidth-compass/history","tools":"https://wellknown.network/api/v1/agents/zerowidth-compass/tools"},"ard":{"identifier":"urn:air:api.zerowidth.ai:server:zerowidth-compass","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"ZeroWidth Compass","summary":"Read and update your Compass map: pages, changes, opportunities and interviews.","description":"Read and update your Compass map: pages, changes, opportunities and interviews.","publisher":{"name":"ai.zerowidth","url":null},"homepage":"https://zerowidth.ai/docs/overview/mcp#connect-to-one-product","repository":null,"version":"1.0.0","license":null,"protocols":["mcp"],"tags":[],"pricing":null,"endpoints":[{"url":"https://api.zerowidth.ai/mcp/x/compass","type":"mcp_streamable_http","auth":null,"probeable":true}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-10-07T14:20:31.576362Z","publishedAt":"2026-10-07T14:20:31.576362Z","registryName":"ai.zerowidth/compass"},"attribution":{"kind":"mcp_registry","name":"mcp_registry","summary":"mcp_registry","version":"mcp_registry","description":"mcp_registry","homepageUrl":"mcp_registry","publisherName":"mcp_registry"}},"derived":{"capabilities":[{"slug":"knowledge.knowledge-graph","name":"Knowledge Graphs","confidence":1,"provenance":"derived"},{"slug":"automation.workflows","name":"Workflow Automation","confidence":0.992,"provenance":"derived"},{"slug":"dev.project-management","name":"Project Management","confidence":0.962,"provenance":"derived"},{"slug":"productivity.email","name":"Email","confidence":0.962,"provenance":"derived"},{"slug":"code.documentation","name":"Code Documentation","confidence":0.583,"provenance":"derived"},{"slug":"documents.extraction","name":"Data Extraction","confidence":0.554,"provenance":"derived"},{"slug":"geo.maps","name":"Maps & Places","confidence":0.554,"provenance":"derived"},{"slug":"dev.ci-cd","name":"CI/CD & Deploy","confidence":0.525,"provenance":"derived"}],"categories":["automation","code","dev","documents","geo","knowledge","productivity"],"language":"en"},"observed":{"status":"live","statusReason":"Responded 27m ago.","lastOkAt":"2026-10-23T05:32:07.962Z","lastProbedAt":"2026-10-23T05:32:07.962Z","statusComputedAt":"2026-10-23T05:34:51.632Z","reliability30d":{"probes":52,"successRate":1,"p50Ms":384,"basis":"service","measures":{"availability":"availability","latency":"response time","tools":"tool surface observed","summary":"Checks reached the service itself."},"checks":{"total":52,"ok":52,"authBoundaryOk":0,"serviceOk":52,"note":"Counted from the observation rows for the window, checks of the server only (HTTP, A2A card, MCP initialize). ok = authBoundaryOk + serviceOk. `probes` is the sum of daily rollups and includes registry checks, so it can differ from `total`."}},"latestObservations":[{"at":"2026-10-23T05:32:07.962Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":219,"error":null,"detail":{"tools":[{"name":"search_docs","description":"Search ZeroWidth product documentation. Returns matching pages with title, slug, public URL, and a query-relevant snippet. Use this when the user asks about a Z"},{"name":"get_doc","description":"Fetch the full Markdown body of a specific docs page by its slug. Use this after `search_docs` when the user needs the complete content of a page. No authentica"},{"name":"list_docs","description":"Enumerate all available docs pages, optionally filtered by product (e.g. 'compass', 'legal', 'overview'). Use this to discover what slugs exist before calling `"},{"name":"compass_pages_list","description":"Lists pages in the active workspace's Compass compendium. Optional `type` filter narrows to one node type (WORKFLOW, PERSON, ROLE, SYSTEM, PAIN_POINT, DOCUMENT,"},{"name":"compass_pages_search","description":"Keyword search over page titles, bodies, and tags (case-insensitive substring match), paginated. The fast way to check whether a subject already has a page befo"},{"name":"compass_pages_get","description":"Fetches one Compass page by id, including its full Markdown body, header fields, and any attached Napkin sketches — view an attached sketch's actual drawing wit"},{"name":"compass_pages_create","description":"Creates a typed page in the workspace's Compass compendium. Check `compass_pages_list` first — don't create a page for a subject the map already has; link to it"},{"name":"compass_pages_update","description":"Edits an existing page's title, description, body, tags, header fields, or visibility — use this to FIX what you (or an extraction) got wrong instead of creatin"},{"name":"compass_links_create","description":"Creates a typed, directed edge between two pages — the knowledge graph's connective tissue. Canonical directions: PERSON or ROLE owns WORKFLOW/SYSTEM/PRIORITY, "},{"name":"compass_process_diagram_ensure","description":"Returns the Napkin diagram that holds a WORKFLOW page's steps, creating it when the page has none. If the page body has a ```mermaid block, it moves into the di"},{"name":"compass_page_links_list","description":"All typed edges touching one page, both directions, each hydrated with the other endpoint's page summary. Use this to understand a subject's neighborhood before"},{"name":"compass_interviews_create","description":"Mints a stakeholder-interview invite: a no-account guest link where the person talks to an interviewer agent briefed by your focusPrompt, and the transcript flo"},{"name":"compass_interview_targets","description":"Ranks the PEOPLE the map says know about a page (workflow, system, pain point): `owns` links first, then `involved_in`, then weaker edges. Each target carries c"},{"name":"compass_interview_invite","description":"Emails the guest link for an existing interview, framed as coming from the REQUESTING USER (their name signs it; replies go to them). Author `message` in their "},{"name":"compass_gaps_list","description":"Lists the workspace's open questions — the gap registry: what the map doesn't know yet. Defaults to OPEN gaps. This is where you keep your head — check it befor"},{"name":"compass_gaps_create","description":"Records something you don't yet know — the gap registry is your working memory, so use it liberally while mapping or interviewing. Give one clear question, WHY "},{"name":"compass_gaps_resolve","description":"Closes a gap once you've learned the answer (ANSWERED, with the resolution) or decided it doesn't matter (DISMISSED). Keep the registry honest — resolve gaps as"},{"name":"compass_opportunities_list","description":"The workspace's changes — fixes, chores, new steps, experiments. Each carries `statusName` (the workspace's own word for where it is) and `statusCategory` (TRIA"},{"name":"compass_opportunities_propose","description":"File an AI-PROPOSED opportunity into the workspace's review queue — the scouting verb (the opportunity-scout routine's main move). Unlike compass_opportunities_"},{"name":"compass_opportunities_create","description":"Record a change — a fix, a chore, a new step, or an experiment worth trying. Anchor it to a workflow page when one fits (compass_pages_list); leave unanchored o"},{"name":"compass_opportunities_register_expectation","description":"The honesty mechanism: write what the experiment is expected to change BEFORE evidence exists. Creates a Ledger decision entry and links it to the opportunity —"},{"name":"compass_opportunities_mark_implemented","description":"The measurement window's boundary: when the user says the experiment's change actually shipped / went live / rolled out, record the landing date. Readings befor"},{"name":"compass_map_view","description":"Renders the workspace's visual map to an image and returns it so you can SEE it the way the user does when they open Map: a transit-style map seen from above. E"},{"name":"compass_pages_delete","description":"Moves a page to the trash (soft delete — its connections and anchored opportunities go with it, and compass_pages_restore brings the whole set back). Use this t"},{"name":"compass_pages_restore","description":"Puts a trashed page back on the map, together with exactly the connections and opportunities its delete took. Use when the user wants a deleted page back (the p"},{"name":"compass_links_update","description":"Edits an existing edge between two pages: its `kind` (how the two relate), its `note`, and/or when it was true (`validFrom` / `validTo`). Use kind to CORRECT a "},{"name":"compass_links_delete","description":"Deletes one edge from the graph (the pages stay). Use only when a connection was never true — the system isn't used by that workflow, it was recorded by mistake"},{"name":"compass_opportunities_update","description":"Corrects an opportunity's content: label, description, priority, what done means, the 1–5 value / feasibility / risk scores, the owner (a PERSON page), notes, t"},{"name":"compass_opportunities_delete","description":"Removes an opportunity from the pipeline (soft delete). For an AI proposal the user doesn't want, this is the dismiss verb; for a captured experiment that was a"},{"name":"compass_opportunities_accept","description":"The review verb for the Inbox: promotes an AI-PROPOSED opportunity (from compass_opportunities_propose or the opportunity scout) into the workspace's own pipeli"},{"name":"compass_interviews_list","description":"Every stakeholder interview in the workspace, newest first: who was invited, status (INVITED / IN_PROGRESS / COMPLETED), focus, message count, whether the trans"},{"name":"compass_interviews_get","description":"One interview in full — metadata plus the transcript of what the guest actually said. Read this before summarizing an interview or drafting pages from it: the t"},{"name":"compass_interviews_revoke","description":"Kills an interview's invite link — the guest's next visit sees that the link is no longer active. Use when an invite went to the wrong person, the user changed "},{"name":"compass_inbox_list","description":"The Compass Inbox in one read: finished interviews awaiting review (transcript in, not yet turned into pages), AI-proposed opportunities awaiting accept / dismi"},{"name":"compass_gaps_update","description":"Edits an open question's wording, rationale, or suggested resolution — for sharpening a vague question or fixing one you phrased badly. Closing a gap is compass"},{"name":"compass_statuses_list","description":"The statuses this workspace's changes move through, in board order — the names people use. Each sits in a group: Undecided (TRIAGE), Not started (BACKLOG), In p"},{"name":"compass_opportunities_set_status","description":"Move a change to one of the workspace's statuses, by name (compass_statuses_list has them — e.g. \"In review\"). The old lane keys (NEW / QUALIFYING / BACKLOG / E"},{"name":"compass_workflow_steps","description":"Every step in a WORKFLOW page's steps diagram, in diagram order, with its phase, whether it is itself a workflow (subWorkflowPageId), and who the map says owns,"},{"name":"compass_step_claims_list","description":"Every claim about a WORKFLOW's steps, oldest first: the step (nodeId; null = the workflow as a whole), the role or person (subject), the relation, who says so ("},{"name":"compass_step_claims_propose","description":"Propose claims about who does what in a WORKFLOW, and what each step is done in, from what someone said. Each claim names a step (nodeId from compass_workflow_s"},{"name":"compass_workflow_rollup","description":"Per run and per month: hands-on minutes, waiting minutes, labor cost (hands-on time priced through each role's hourly rate), and hard costs, each as a low–high "},{"name":"compass_workflow_learning","description":"Newest first: steps added to or dropped from the diagram (and by whom), and claims about who does what or what a step takes — said, corrected (with what they re"},{"name":"compass_step_measures_propose","description":"Propose estimates from what someone said, as ranges — people know \"20 minutes to an hour\", not \"37 minutes\"; when they give one number, use it for both ends. Ea"},{"name":"compass_scenario_changes","description":"Changes whose effects reach a WORKFLOW's steps — or any nested workflow's — plus changes anchored to it with no effects yet, each with what it does per step. Pa"},{"name":"compass_change_effects_set","description":"Replace a change's effects: for each step it reaches (workflowPageId + nodeId from compass_workflow_steps — a sub-workflow's steps included), one of eliminate, "},{"name":"compass_transformations_get","description":"What the workflows behind a PRIORITY could become, at five levels (Assist, Automate, Re-form, Invert, Dissolve): for each, whether it fits, is already reached, "},{"name":"compass_priority_steps_find","description":"Reads every mapped workflow against one PRIORITY (or VALUE) and proposes the steps that move it (or where the business lives the value), one marked as what hold"},{"name":"compass_transformations_read","description":"Starts reading the five levels for a PRIORITY in the background (a minute or two). Needs at least one kept step that impacts the priority. A read under way is l"},{"name":"compass_transformations_respond","description":"Records what someone told you about one level of a PRIORITY's current transformations, in their words or a faithful summary: that they already do it, what rules"},{"name":"compass_transformations_make_change","description":"Creates a Change from one level of a priority's transformations, with its step effects and the priority it serves, and starts drafting in Workbench up to three "},{"name":"compass_step_suggestions_list","description":"Your earlier read of a WORKFLOW's steps: for each suggestion, the steps it covers (nodeIds, labels), what could do them (proposal.doer: a flow and its mode, a s"},{"name":"compass_step_suggestions_build","description":"Builds a step suggestion the way Compass's Build button does: makes its change if it isn't one yet, then the thing in Workbench — a flow drafted from the step i"},{"name":"compass_changes_upsert","description":"Create or update up to 100 changes in one call, each matched by `url` — the GitHub issue, Linear or Jira ticket, PR or doc it mirrors. A url already linked to a"},{"name":"compass_role_story","description":"One ROLE page's story: hands-on hours a month by kind of work (rote, judgment, relationship, sign-off) before its first change or Task landed and now; what land"},{"name":"compass_roles_overview","description":"Every role in the workspace in one row each, changed or not: hours documented against its working month, hours a month saved, saved hours by stage (looking into"},{"name":"comments_list","description":"Lists the comment threads on one workspace entity (open first, then resolved) with authors and timestamps. Read this before weighing in on contested work — the "},{"name":"comments_create","description":"Posts a comment on a workspace entity — a new thread, or a reply when rootId is given. Use it to leave findings where the discussion already lives (an eval resu"},{"name":"comments_resolve","description":"Sets a comment thread's resolved state (rootId = the thread's root comment id). Resolve ONLY when the human asked or the thread's question is demonstrably settl"},{"name":"search_workspace","description":"Finds anything in the workspace in one call — uploaded files (searching the text inside them), folders, Workbench flows, shims, knowledge bases and tasks, Compa"},{"name":"entity_tags_get","description":"Returns the tags on a batch of entities of one kind — the labels galleries organize by. Ids come from the kind's list/get tool or from search_workspace. Use it "},{"name":"entity_tags_browse","description":"Without a tag: every tag in use across the workspace with how many entities carry it, most-used first — the vocabulary the team already organizes by. With a tag"},{"name":"entity_tags_set","description":"Replaces the FULL tag set on one entity (an empty list clears it). Read the current tags with entity_tags_get first and pass the merged list — this is not addit"}],"toolCount":62,"toolsHash":"bcb488daed56b37781ea7a2361e6377d7cdd6070ea99acaef015dd2ce5ae784e","serverName":"zerowidth-mcp","capabilities":["tools","resources"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-22T23:28:39.357Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":226,"error":null,"detail":{"tools":[{"name":"search_docs","description":"Search ZeroWidth product documentation. Returns matching pages with title, slug, public URL, and a query-relevant snippet. Use this when the user asks about a Z"},{"name":"get_doc","description":"Fetch the full Markdown body of a specific docs page by its slug. Use this after `search_docs` when the user needs the complete content of a page. No authentica"},{"name":"list_docs","description":"Enumerate all available docs pages, optionally filtered by product (e.g. 'compass', 'legal', 'overview'). Use this to discover what slugs exist before calling `"},{"name":"compass_pages_list","description":"Lists pages in the active workspace's Compass compendium. Optional `type` filter narrows to one node type (WORKFLOW, PERSON, ROLE, SYSTEM, PAIN_POINT, DOCUMENT,"},{"name":"compass_pages_search","description":"Keyword search over page titles, bodies, and tags (case-insensitive substring match), paginated. The fast way to check whether a subject already has a page befo"},{"name":"compass_pages_get","description":"Fetches one Compass page by id, including its full Markdown body, header fields, and any attached Napkin sketches — view an attached sketch's actual drawing wit"},{"name":"compass_pages_create","description":"Creates a typed page in the workspace's Compass compendium. Check `compass_pages_list` first — don't create a page for a subject the map already has; link to it"},{"name":"compass_pages_update","description":"Edits an existing page's title, description, body, tags, header fields, or visibility — use this to FIX what you (or an extraction) got wrong instead of creatin"},{"name":"compass_links_create","description":"Creates a typed, directed edge between two pages — the knowledge graph's connective tissue. Canonical directions: PERSON or ROLE owns WORKFLOW/SYSTEM/PRIORITY, "},{"name":"compass_process_diagram_ensure","description":"Returns the Napkin diagram that holds a WORKFLOW page's steps, creating it when the page has none. If the page body has a ```mermaid block, it moves into the di"},{"name":"compass_page_links_list","description":"All typed edges touching one page, both directions, each hydrated with the other endpoint's page summary. Use this to understand a subject's neighborhood before"},{"name":"compass_interviews_create","description":"Mints a stakeholder-interview invite: a no-account guest link where the person talks to an interviewer agent briefed by your focusPrompt, and the transcript flo"},{"name":"compass_interview_targets","description":"Ranks the PEOPLE the map says know about a page (workflow, system, pain point): `owns` links first, then `involved_in`, then weaker edges. Each target carries c"},{"name":"compass_interview_invite","description":"Emails the guest link for an existing interview, framed as coming from the REQUESTING USER (their name signs it; replies go to them). Author `message` in their "},{"name":"compass_gaps_list","description":"Lists the workspace's open questions — the gap registry: what the map doesn't know yet. Defaults to OPEN gaps. This is where you keep your head — check it befor"},{"name":"compass_gaps_create","description":"Records something you don't yet know — the gap registry is your working memory, so use it liberally while mapping or interviewing. Give one clear question, WHY "},{"name":"compass_gaps_resolve","description":"Closes a gap once you've learned the answer (ANSWERED, with the resolution) or decided it doesn't matter (DISMISSED). Keep the registry honest — resolve gaps as"},{"name":"compass_opportunities_list","description":"The workspace's changes — fixes, chores, new steps, experiments. Each carries `statusName` (the workspace's own word for where it is) and `statusCategory` (TRIA"},{"name":"compass_opportunities_propose","description":"File an AI-PROPOSED opportunity into the workspace's review queue — the scouting verb (the opportunity-scout routine's main move). Unlike compass_opportunities_"},{"name":"compass_opportunities_create","description":"Record a change — a fix, a chore, a new step, or an experiment worth trying. Anchor it to a workflow page when one fits (compass_pages_list); leave unanchored o"},{"name":"compass_opportunities_register_expectation","description":"The honesty mechanism: write what the experiment is expected to change BEFORE evidence exists. Creates a Ledger decision entry and links it to the opportunity —"},{"name":"compass_opportunities_mark_implemented","description":"The measurement window's boundary: when the user says the experiment's change actually shipped / went live / rolled out, record the landing date. Readings befor"},{"name":"compass_map_view","description":"Renders the workspace's visual map to an image and returns it so you can SEE it the way the user does when they open Map: a transit-style map seen from above. E"},{"name":"compass_pages_delete","description":"Moves a page to the trash (soft delete — its connections and anchored opportunities go with it, and compass_pages_restore brings the whole set back). Use this t"},{"name":"compass_pages_restore","description":"Puts a trashed page back on the map, together with exactly the connections and opportunities its delete took. Use when the user wants a deleted page back (the p"},{"name":"compass_links_update","description":"Edits an existing edge between two pages: its `kind` (how the two relate), its `note`, and/or when it was true (`validFrom` / `validTo`). Use kind to CORRECT a "},{"name":"compass_links_delete","description":"Deletes one edge from the graph (the pages stay). Use only when a connection was never true — the system isn't used by that workflow, it was recorded by mistake"},{"name":"compass_opportunities_update","description":"Corrects an opportunity's content: label, description, priority, what done means, the 1–5 value / feasibility / risk scores, the owner (a PERSON page), notes, t"},{"name":"compass_opportunities_delete","description":"Removes an opportunity from the pipeline (soft delete). For an AI proposal the user doesn't want, this is the dismiss verb; for a captured experiment that was a"},{"name":"compass_opportunities_accept","description":"The review verb for the Inbox: promotes an AI-PROPOSED opportunity (from compass_opportunities_propose or the opportunity scout) into the workspace's own pipeli"},{"name":"compass_interviews_list","description":"Every stakeholder interview in the workspace, newest first: who was invited, status (INVITED / IN_PROGRESS / COMPLETED), focus, message count, whether the trans"},{"name":"compass_interviews_get","description":"One interview in full — metadata plus the transcript of what the guest actually said. Read this before summarizing an interview or drafting pages from it: the t"},{"name":"compass_interviews_revoke","description":"Kills an interview's invite link — the guest's next visit sees that the link is no longer active. Use when an invite went to the wrong person, the user changed "},{"name":"compass_inbox_list","description":"The Compass Inbox in one read: finished interviews awaiting review (transcript in, not yet turned into pages), AI-proposed opportunities awaiting accept / dismi"},{"name":"compass_gaps_update","description":"Edits an open question's wording, rationale, or suggested resolution — for sharpening a vague question or fixing one you phrased badly. Closing a gap is compass"},{"name":"compass_statuses_list","description":"The statuses this workspace's changes move through, in board order — the names people use. Each sits in a group: Undecided (TRIAGE), Not started (BACKLOG), In p"},{"name":"compass_opportunities_set_status","description":"Move a change to one of the workspace's statuses, by name (compass_statuses_list has them — e.g. \"In review\"). The old lane keys (NEW / QUALIFYING / BACKLOG / E"},{"name":"compass_workflow_steps","description":"Every step in a WORKFLOW page's steps diagram, in diagram order, with its phase, whether it is itself a workflow (subWorkflowPageId), and who the map says owns,"},{"name":"compass_step_claims_list","description":"Every claim about a WORKFLOW's steps, oldest first: the step (nodeId; null = the workflow as a whole), the role or person (subject), the relation, who says so ("},{"name":"compass_step_claims_propose","description":"Propose claims about who does what in a WORKFLOW, and what each step is done in, from what someone said. Each claim names a step (nodeId from compass_workflow_s"},{"name":"compass_workflow_rollup","description":"Per run and per month: hands-on minutes, waiting minutes, labor cost (hands-on time priced through each role's hourly rate), and hard costs, each as a low–high "},{"name":"compass_workflow_learning","description":"Newest first: steps added to or dropped from the diagram (and by whom), and claims about who does what or what a step takes — said, corrected (with what they re"},{"name":"compass_step_measures_propose","description":"Propose estimates from what someone said, as ranges — people know \"20 minutes to an hour\", not \"37 minutes\"; when they give one number, use it for both ends. Ea"},{"name":"compass_scenario_changes","description":"Changes whose effects reach a WORKFLOW's steps — or any nested workflow's — plus changes anchored to it with no effects yet, each with what it does per step. Pa"},{"name":"compass_change_effects_set","description":"Replace a change's effects: for each step it reaches (workflowPageId + nodeId from compass_workflow_steps — a sub-workflow's steps included), one of eliminate, "},{"name":"compass_transformations_get","description":"What the workflows behind a PRIORITY could become, at five levels (Assist, Automate, Re-form, Invert, Dissolve): for each, whether it fits, is already reached, "},{"name":"compass_priority_steps_find","description":"Reads every mapped workflow against one PRIORITY (or VALUE) and proposes the steps that move it (or where the business lives the value), one marked as what hold"},{"name":"compass_transformations_read","description":"Starts reading the five levels for a PRIORITY in the background (a minute or two). Needs at least one kept step that impacts the priority. A read under way is l"},{"name":"compass_transformations_respond","description":"Records what someone told you about one level of a PRIORITY's current transformations, in their words or a faithful summary: that they already do it, what rules"},{"name":"compass_transformations_make_change","description":"Creates a Change from one level of a priority's transformations, with its step effects and the priority it serves, and starts drafting in Workbench up to three "},{"name":"compass_step_suggestions_list","description":"Your earlier read of a WORKFLOW's steps: for each suggestion, the steps it covers (nodeIds, labels), what could do them (proposal.doer: a flow and its mode, a s"},{"name":"compass_step_suggestions_build","description":"Builds a step suggestion the way Compass's Build button does: makes its change if it isn't one yet, then the thing in Workbench — a flow drafted from the step i"},{"name":"compass_changes_upsert","description":"Create or update up to 100 changes in one call, each matched by `url` — the GitHub issue, Linear or Jira ticket, PR or doc it mirrors. A url already linked to a"},{"name":"compass_role_story","description":"One ROLE page's story: hands-on hours a month by kind of work (rote, judgment, relationship, sign-off) before its first change or Task landed and now; what land"},{"name":"compass_roles_overview","description":"Every role in the workspace in one row each, changed or not: hours documented against its working month, hours a month saved, saved hours by stage (looking into"},{"name":"comments_list","description":"Lists the comment threads on one workspace entity (open first, then resolved) with authors and timestamps. Read this before weighing in on contested work — the "},{"name":"comments_create","description":"Posts a comment on a workspace entity — a new thread, or a reply when rootId is given. Use it to leave findings where the discussion already lives (an eval resu"},{"name":"comments_resolve","description":"Sets a comment thread's resolved state (rootId = the thread's root comment id). Resolve ONLY when the human asked or the thread's question is demonstrably settl"},{"name":"search_workspace","description":"Finds anything in the workspace in one call — uploaded files (searching the text inside them), folders, Workbench flows, shims, knowledge bases and tasks, Compa"},{"name":"entity_tags_get","description":"Returns the tags on a batch of entities of one kind — the labels galleries organize by. Ids come from the kind's list/get tool or from search_workspace. Use it "},{"name":"entity_tags_browse","description":"Without a tag: every tag in use across the workspace with how many entities carry it, most-used first — the vocabulary the team already organizes by. With a tag"},{"name":"entity_tags_set","description":"Replaces the FULL tag set on one entity (an empty list clears it). Read the current tags with entity_tags_get first and pass the merged list — this is not addit"}],"toolCount":62,"toolsHash":"bcb488daed56b37781ea7a2361e6377d7cdd6070ea99acaef015dd2ce5ae784e","serverName":"zerowidth-mcp","capabilities":["tools","resources"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-22T16:28:52.998Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":396,"error":null,"detail":{"tools":[{"name":"search_docs","description":"Search ZeroWidth product documentation. Returns matching pages with title, slug, public URL, and a query-relevant snippet. Use this when the user asks about a Z"},{"name":"get_doc","description":"Fetch the full Markdown body of a specific docs page by its slug. Use this after `search_docs` when the user needs the complete content of a page. No authentica"},{"name":"list_docs","description":"Enumerate all available docs pages, optionally filtered by product (e.g. 'compass', 'legal', 'overview'). Use this to discover what slugs exist before calling `"},{"name":"compass_pages_list","description":"Lists pages in the active workspace's Compass compendium. Optional `type` filter narrows to one node type (WORKFLOW, PERSON, ROLE, SYSTEM, PAIN_POINT, DOCUMENT,"},{"name":"compass_pages_search","description":"Keyword search over page titles, bodies, and tags (case-insensitive substring match), paginated. The fast way to check whether a subject already has a page befo"},{"name":"compass_pages_get","description":"Fetches one Compass page by id, including its full Markdown body, header fields, and any attached Napkin sketches — view an attached sketch's actual drawing wit"},{"name":"compass_pages_create","description":"Creates a typed page in the workspace's Compass compendium. Check `compass_pages_list` first — don't create a page for a subject the map already has; link to it"},{"name":"compass_pages_update","description":"Edits an existing page's title, description, body, tags, header fields, or visibility — use this to FIX what you (or an extraction) got wrong instead of creatin"},{"name":"compass_links_create","description":"Creates a typed, directed edge between two pages — the knowledge graph's connective tissue. Canonical directions: PERSON or ROLE owns WORKFLOW/SYSTEM/PRIORITY, "},{"name":"compass_process_diagram_ensure","description":"Returns the Napkin diagram that holds a WORKFLOW page's steps, creating it when the page has none. If the page body has a ```mermaid block, it moves into the di"},{"name":"compass_page_links_list","description":"All typed edges touching one page, both directions, each hydrated with the other endpoint's page summary. Use this to understand a subject's neighborhood before"},{"name":"compass_interviews_create","description":"Mints a stakeholder-interview invite: a no-account guest link where the person talks to an interviewer agent briefed by your focusPrompt, and the transcript flo"},{"name":"compass_interview_targets","description":"Ranks the PEOPLE the map says know about a page (workflow, system, pain point): `owns` links first, then `involved_in`, then weaker edges. Each target carries c"},{"name":"compass_interview_invite","description":"Emails the guest link for an existing interview, framed as coming from the REQUESTING USER (their name signs it; replies go to them). Author `message` in their "},{"name":"compass_gaps_list","description":"Lists the workspace's open questions — the gap registry: what the map doesn't know yet. Defaults to OPEN gaps. This is where you keep your head — check it befor"},{"name":"compass_gaps_create","description":"Records something you don't yet know — the gap registry is your working memory, so use it liberally while mapping or interviewing. Give one clear question, WHY "},{"name":"compass_gaps_resolve","description":"Closes a gap once you've learned the answer (ANSWERED, with the resolution) or decided it doesn't matter (DISMISSED). Keep the registry honest — resolve gaps as"},{"name":"compass_opportunities_list","description":"The workspace's changes — fixes, chores, new steps, experiments. Each carries `statusName` (the workspace's own word for where it is) and `statusCategory` (TRIA"},{"name":"compass_opportunities_propose","description":"File an AI-PROPOSED opportunity into the workspace's review queue — the scouting verb (the opportunity-scout routine's main move). Unlike compass_opportunities_"},{"name":"compass_opportunities_create","description":"Record a change — a fix, a chore, a new step, or an experiment worth trying. Anchor it to a workflow page when one fits (compass_pages_list); leave unanchored o"},{"name":"compass_opportunities_register_expectation","description":"The honesty mechanism: write what the experiment is expected to change BEFORE evidence exists. Creates a Ledger decision entry and links it to the opportunity —"},{"name":"compass_opportunities_mark_implemented","description":"The measurement window's boundary: when the user says the experiment's change actually shipped / went live / rolled out, record the landing date. Readings befor"},{"name":"compass_map_view","description":"Renders the workspace's visual map to an image and returns it so you can SEE it the way the user does when they open Map: a transit-style map seen from above. E"},{"name":"compass_pages_delete","description":"Moves a page to the trash (soft delete — its connections and anchored opportunities go with it, and compass_pages_restore brings the whole set back). Use this t"},{"name":"compass_pages_restore","description":"Puts a trashed page back on the map, together with exactly the connections and opportunities its delete took. Use when the user wants a deleted page back (the p"},{"name":"compass_links_update","description":"Edits an existing edge between two pages: its `kind` (how the two relate), its `note`, and/or when it was true (`validFrom` / `validTo`). Use kind to CORRECT a "},{"name":"compass_links_delete","description":"Deletes one edge from the graph (the pages stay). Use only when a connection was never true — the system isn't used by that workflow, it was recorded by mistake"},{"name":"compass_opportunities_update","description":"Corrects an opportunity's content: label, description, priority, what done means, the 1–5 value / feasibility / risk scores, the owner (a PERSON page), notes, t"},{"name":"compass_opportunities_delete","description":"Removes an opportunity from the pipeline (soft delete). For an AI proposal the user doesn't want, this is the dismiss verb; for a captured experiment that was a"},{"name":"compass_opportunities_accept","description":"The review verb for the Inbox: promotes an AI-PROPOSED opportunity (from compass_opportunities_propose or the opportunity scout) into the workspace's own pipeli"},{"name":"compass_interviews_list","description":"Every stakeholder interview in the workspace, newest first: who was invited, status (INVITED / IN_PROGRESS / COMPLETED), focus, message count, whether the trans"},{"name":"compass_interviews_get","description":"One interview in full — metadata plus the transcript of what the guest actually said. Read this before summarizing an interview or drafting pages from it: the t"},{"name":"compass_interviews_revoke","description":"Kills an interview's invite link — the guest's next visit sees that the link is no longer active. Use when an invite went to the wrong person, the user changed "},{"name":"compass_inbox_list","description":"The Compass Inbox in one read: finished interviews awaiting review (transcript in, not yet turned into pages), AI-proposed opportunities awaiting accept / dismi"},{"name":"compass_gaps_update","description":"Edits an open question's wording, rationale, or suggested resolution — for sharpening a vague question or fixing one you phrased badly. Closing a gap is compass"},{"name":"compass_statuses_list","description":"The statuses this workspace's changes move through, in board order — the names people use. Each sits in a group: Undecided (TRIAGE), Not started (BACKLOG), In p"},{"name":"compass_opportunities_set_status","description":"Move a change to one of the workspace's statuses, by name (compass_statuses_list has them — e.g. \"In review\"). The old lane keys (NEW / QUALIFYING / BACKLOG / E"},{"name":"compass_workflow_steps","description":"Every step in a WORKFLOW page's steps diagram, in diagram order, with its phase, whether it is itself a workflow (subWorkflowPageId), and who the map says owns,"},{"name":"compass_step_claims_list","description":"Every claim about a WORKFLOW's steps, oldest first: the step (nodeId; null = the workflow as a whole), the role or person (subject), the relation, who says so ("},{"name":"compass_step_claims_propose","description":"Propose claims about who does what in a WORKFLOW, and what each step is done in, from what someone said. Each claim names a step (nodeId from compass_workflow_s"},{"name":"compass_workflow_rollup","description":"Per run and per month: hands-on minutes, waiting minutes, labor cost (hands-on time priced through each role's hourly rate), and hard costs, each as a low–high "},{"name":"compass_workflow_learning","description":"Newest first: steps added to or dropped from the diagram (and by whom), and claims about who does what or what a step takes — said, corrected (with what they re"},{"name":"compass_step_measures_propose","description":"Propose estimates from what someone said, as ranges — people know \"20 minutes to an hour\", not \"37 minutes\"; when they give one number, use it for both ends. Ea"},{"name":"compass_scenario_changes","description":"Changes whose effects reach a WORKFLOW's steps — or any nested workflow's — plus changes anchored to it with no effects yet, each with what it does per step. Pa"},{"name":"compass_change_effects_set","description":"Replace a change's effects: for each step it reaches (workflowPageId + nodeId from compass_workflow_steps — a sub-workflow's steps included), one of eliminate, "},{"name":"compass_transformations_get","description":"What the workflows behind a PRIORITY could become, at five levels (Assist, Automate, Re-form, Invert, Dissolve): for each, whether it fits, is already reached, "},{"name":"compass_priority_steps_find","description":"Reads every mapped workflow against one PRIORITY (or VALUE) and proposes the steps that move it (or where the business lives the value), one marked as what hold"},{"name":"compass_transformations_read","description":"Starts reading the five levels for a PRIORITY in the background (a minute or two). Needs at least one kept step that impacts the priority. A read under way is l"},{"name":"compass_transformations_respond","description":"Records what someone told you about one level of a PRIORITY's current transformations, in their words or a faithful summary: that they already do it, what rules"},{"name":"compass_transformations_make_change","description":"Creates a Change from one level of a priority's transformations, with its step effects and the priority it serves, and starts drafting in Workbench up to three "},{"name":"compass_step_suggestions_list","description":"Your earlier read of a WORKFLOW's steps: for each suggestion, the steps it covers (nodeIds, labels), what could do them (proposal.doer: a flow and its mode, a s"},{"name":"compass_step_suggestions_build","description":"Builds a step suggestion the way Compass's Build button does: makes its change if it isn't one yet, then the thing in Workbench — a flow drafted from the step i"},{"name":"compass_changes_upsert","description":"Create or update up to 100 changes in one call, each matched by `url` — the GitHub issue, Linear or Jira ticket, PR or doc it mirrors. A url already linked to a"},{"name":"compass_role_story","description":"One ROLE page's story: hands-on hours a month by kind of work (rote, judgment, relationship, sign-off) before its first change or Task landed and now; what land"},{"name":"compass_roles_overview","description":"Every role in the workspace in one row each, changed or not: hours documented against its working month, hours a month saved, saved hours by stage (looking into"},{"name":"comments_list","description":"Lists the comment threads on one workspace entity (open first, then resolved) with authors and timestamps. Read this before weighing in on contested work — the "},{"name":"comments_create","description":"Posts a comment on a workspace entity — a new thread, or a reply when rootId is given. Use it to leave findings where the discussion already lives (an eval resu"},{"name":"comments_resolve","description":"Sets a comment thread's resolved state (rootId = the thread's root comment id). Resolve ONLY when the human asked or the thread's question is demonstrably settl"},{"name":"search_workspace","description":"Finds anything in the workspace in one call — uploaded files (searching the text inside them), folders, Workbench flows, shims, knowledge bases and tasks, Compa"},{"name":"entity_tags_get","description":"Returns the tags on a batch of entities of one kind — the labels galleries organize by. Ids come from the kind's list/get tool or from search_workspace. Use it "},{"name":"entity_tags_browse","description":"Without a tag: every tag in use across the workspace with how many entities carry it, most-used first — the vocabulary the team already organizes by. With a tag"},{"name":"entity_tags_set","description":"Replaces the FULL tag set on one entity (an empty list clears it). Read the current tags with entity_tags_get first and pass the merged list — this is not addit"}],"toolCount":62,"toolsHash":"bcb488daed56b37781ea7a2361e6377d7cdd6070ea99acaef015dd2ce5ae784e","serverName":"zerowidth-mcp","capabilities":["tools","resources"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-22T09:28:14.248Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":247,"error":null,"detail":{"tools":[{"name":"search_docs","description":"Search ZeroWidth product documentation. Returns matching pages with title, slug, public URL, and a query-relevant snippet. Use this when the user asks about a Z"},{"name":"get_doc","description":"Fetch the full Markdown body of a specific docs page by its slug. Use this after `search_docs` when the user needs the complete content of a page. No authentica"},{"name":"list_docs","description":"Enumerate all available docs pages, optionally filtered by product (e.g. 'compass', 'legal', 'overview'). Use this to discover what slugs exist before calling `"},{"name":"compass_pages_list","description":"Lists pages in the active workspace's Compass compendium. Optional `type` filter narrows to one node type (WORKFLOW, PERSON, ROLE, SYSTEM, PAIN_POINT, DOCUMENT,"},{"name":"compass_pages_search","description":"Keyword search over page titles, bodies, and tags (case-insensitive substring match), paginated. The fast way to check whether a subject already has a page befo"},{"name":"compass_pages_get","description":"Fetches one Compass page by id, including its full Markdown body, header fields, and any attached Napkin sketches — view an attached sketch's actual drawing wit"},{"name":"compass_pages_create","description":"Creates a typed page in the workspace's Compass compendium. Check `compass_pages_list` first — don't create a page for a subject the map already has; link to it"},{"name":"compass_pages_update","description":"Edits an existing page's title, description, body, tags, header fields, or visibility — use this to FIX what you (or an extraction) got wrong instead of creatin"},{"name":"compass_links_create","description":"Creates a typed, directed edge between two pages — the knowledge graph's connective tissue. Canonical directions: PERSON or ROLE owns WORKFLOW/SYSTEM/PRIORITY, "},{"name":"compass_process_diagram_ensure","description":"Returns the Napkin diagram that holds a WORKFLOW page's steps, creating it when the page has none. If the page body has a ```mermaid block, it moves into the di"},{"name":"compass_page_links_list","description":"All typed edges touching one page, both directions, each hydrated with the other endpoint's page summary. Use this to understand a subject's neighborhood before"},{"name":"compass_interviews_create","description":"Mints a stakeholder-interview invite: a no-account guest link where the person talks to an interviewer agent briefed by your focusPrompt, and the transcript flo"},{"name":"compass_interview_targets","description":"Ranks the PEOPLE the map says know about a page (workflow, system, pain point): `owns` links first, then `involved_in`, then weaker edges. Each target carries c"},{"name":"compass_interview_invite","description":"Emails the guest link for an existing interview, framed as coming from the REQUESTING USER (their name signs it; replies go to them). Author `message` in their "},{"name":"compass_gaps_list","description":"Lists the workspace's open questions — the gap registry: what the map doesn't know yet. Defaults to OPEN gaps. This is where you keep your head — check it befor"},{"name":"compass_gaps_create","description":"Records something you don't yet know — the gap registry is your working memory, so use it liberally while mapping or interviewing. Give one clear question, WHY "},{"name":"compass_gaps_resolve","description":"Closes a gap once you've learned the answer (ANSWERED, with the resolution) or decided it doesn't matter (DISMISSED). Keep the registry honest — resolve gaps as"},{"name":"compass_opportunities_list","description":"The workspace's changes — fixes, chores, new steps, experiments. Each carries `statusName` (the workspace's own word for where it is) and `statusCategory` (TRIA"},{"name":"compass_opportunities_propose","description":"File an AI-PROPOSED opportunity into the workspace's review queue — the scouting verb (the opportunity-scout routine's main move). Unlike compass_opportunities_"},{"name":"compass_opportunities_create","description":"Record a change — a fix, a chore, a new step, or an experiment worth trying. Anchor it to a workflow page when one fits (compass_pages_list); leave unanchored o"},{"name":"compass_opportunities_register_expectation","description":"The honesty mechanism: write what the experiment is expected to change BEFORE evidence exists. Creates a Ledger decision entry and links it to the opportunity —"},{"name":"compass_opportunities_mark_implemented","description":"The measurement window's boundary: when the user says the experiment's change actually shipped / went live / rolled out, record the landing date. Readings befor"},{"name":"compass_map_view","description":"Renders the workspace's visual map to an image and returns it so you can SEE it the way the user does when they open Map: a transit-style map seen from above. E"},{"name":"compass_pages_delete","description":"Moves a page to the trash (soft delete — its connections and anchored opportunities go with it, and compass_pages_restore brings the whole set back). Use this t"},{"name":"compass_pages_restore","description":"Puts a trashed page back on the map, together with exactly the connections and opportunities its delete took. Use when the user wants a deleted page back (the p"},{"name":"compass_links_update","description":"Edits an existing edge between two pages: its `kind` (how the two relate), its `note`, and/or when it was true (`validFrom` / `validTo`). Use kind to CORRECT a "},{"name":"compass_links_delete","description":"Deletes one edge from the graph (the pages stay). Use only when a connection was never true — the system isn't used by that workflow, it was recorded by mistake"},{"name":"compass_opportunities_update","description":"Corrects an opportunity's content: label, description, priority, what done means, the 1–5 value / feasibility / risk scores, the owner (a PERSON page), notes, t"},{"name":"compass_opportunities_delete","description":"Removes an opportunity from the pipeline (soft delete). For an AI proposal the user doesn't want, this is the dismiss verb; for a captured experiment that was a"},{"name":"compass_opportunities_accept","description":"The review verb for the Inbox: promotes an AI-PROPOSED opportunity (from compass_opportunities_propose or the opportunity scout) into the workspace's own pipeli"},{"name":"compass_interviews_list","description":"Every stakeholder interview in the workspace, newest first: who was invited, status (INVITED / IN_PROGRESS / COMPLETED), focus, message count, whether the trans"},{"name":"compass_interviews_get","description":"One interview in full — metadata plus the transcript of what the guest actually said. Read this before summarizing an interview or drafting pages from it: the t"},{"name":"compass_interviews_revoke","description":"Kills an interview's invite link — the guest's next visit sees that the link is no longer active. Use when an invite went to the wrong person, the user changed "},{"name":"compass_inbox_list","description":"The Compass Inbox in one read: finished interviews awaiting review (transcript in, not yet turned into pages), AI-proposed opportunities awaiting accept / dismi"},{"name":"compass_gaps_update","description":"Edits an open question's wording, rationale, or suggested resolution — for sharpening a vague question or fixing one you phrased badly. Closing a gap is compass"},{"name":"compass_statuses_list","description":"The statuses this workspace's changes move through, in board order — the names people use. Each sits in a group: Undecided (TRIAGE), Not started (BACKLOG), In p"},{"name":"compass_opportunities_set_status","description":"Move a change to one of the workspace's statuses, by name (compass_statuses_list has them — e.g. \"In review\"). The old lane keys (NEW / QUALIFYING / BACKLOG / E"},{"name":"compass_workflow_steps","description":"Every step in a WORKFLOW page's steps diagram, in diagram order, with its phase, whether it is itself a workflow (subWorkflowPageId), and who the map says owns,"},{"name":"compass_step_claims_list","description":"Every claim about a WORKFLOW's steps, oldest first: the step (nodeId; null = the workflow as a whole), the role or person (subject), the relation, who says so ("},{"name":"compass_step_claims_propose","description":"Propose claims about who does what in a WORKFLOW, and what each step is done in, from what someone said. Each claim names a step (nodeId from compass_workflow_s"},{"name":"compass_workflow_rollup","description":"Per run and per month: hands-on minutes, waiting minutes, labor cost (hands-on time priced through each role's hourly rate), and hard costs, each as a low–high "},{"name":"compass_workflow_learning","description":"Newest first: steps added to or dropped from the diagram (and by whom), and claims about who does what or what a step takes — said, corrected (with what they re"},{"name":"compass_step_measures_propose","description":"Propose estimates from what someone said, as ranges — people know \"20 minutes to an hour\", not \"37 minutes\"; when they give one number, use it for both ends. Ea"},{"name":"compass_scenario_changes","description":"Changes whose effects reach a WORKFLOW's steps — or any nested workflow's — plus changes anchored to it with no effects yet, each with what it does per step. Pa"},{"name":"compass_change_effects_set","description":"Replace a change's effects: for each step it reaches (workflowPageId + nodeId from compass_workflow_steps — a sub-workflow's steps included), one of eliminate, "},{"name":"compass_transformations_get","description":"What the workflows behind a PRIORITY could become, at five levels (Assist, Automate, Re-form, Invert, Dissolve): for each, whether it fits, is already reached, "},{"name":"compass_priority_steps_find","description":"Reads every mapped workflow against one PRIORITY (or VALUE) and proposes the steps that move it (or where the business lives the value), one marked as what hold"},{"name":"compass_transformations_read","description":"Starts reading the five levels for a PRIORITY in the background (a minute or two). Needs at least one kept step that impacts the priority. A read under way is l"},{"name":"compass_transformations_respond","description":"Records what someone told you about one level of a PRIORITY's current transformations, in their words or a faithful summary: that they already do it, what rules"},{"name":"compass_transformations_make_change","description":"Creates a Change from one level of a priority's transformations, with its step effects and the priority it serves, and starts drafting in Workbench up to three "},{"name":"compass_step_suggestions_list","description":"Your earlier read of a WORKFLOW's steps: for each suggestion, the steps it covers (nodeIds, labels), what could do them (proposal.doer: a flow and its mode, a s"},{"name":"compass_step_suggestions_build","description":"Builds a step suggestion the way Compass's Build button does: makes its change if it isn't one yet, then the thing in Workbench — a flow drafted from the step i"},{"name":"compass_changes_upsert","description":"Create or update up to 100 changes in one call, each matched by `url` — the GitHub issue, Linear or Jira ticket, PR or doc it mirrors. A url already linked to a"},{"name":"compass_role_story","description":"One ROLE page's story: hands-on hours a month by kind of work (rote, judgment, relationship, sign-off) before its first change or Task landed and now; what land"},{"name":"compass_roles_overview","description":"Every role in the workspace in one row each, changed or not: hours documented against its working month, hours a month saved, saved hours by stage (looking into"},{"name":"comments_list","description":"Lists the comment threads on one workspace entity (open first, then resolved) with authors and timestamps. Read this before weighing in on contested work — the "},{"name":"comments_create","description":"Posts a comment on a workspace entity — a new thread, or a reply when rootId is given. Use it to leave findings where the discussion already lives (an eval resu"},{"name":"comments_resolve","description":"Sets a comment thread's resolved state (rootId = the thread's root comment id). Resolve ONLY when the human asked or the thread's question is demonstrably settl"},{"name":"search_workspace","description":"Finds anything in the workspace in one call — uploaded files (searching the text inside them), folders, Workbench flows, shims, knowledge bases and tasks, Compa"},{"name":"entity_tags_get","description":"Returns the tags on a batch of entities of one kind — the labels galleries organize by. Ids come from the kind's list/get tool or from search_workspace. Use it "},{"name":"entity_tags_browse","description":"Without a tag: every tag in use across the workspace with how many entities carry it, most-used first — the vocabulary the team already organizes by. With a tag"},{"name":"entity_tags_set","description":"Replaces the FULL tag set on one entity (an empty list clears it). Read the current tags with entity_tags_get first and pass the merged list — this is not addit"}],"toolCount":62,"toolsHash":"bcb488daed56b37781ea7a2361e6377d7cdd6070ea99acaef015dd2ce5ae784e","serverName":"zerowidth-mcp","capabilities":["tools","resources"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-22T02:30:56.099Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":349,"error":null,"detail":{"tools":[{"name":"search_docs","description":"Search ZeroWidth product documentation. Returns matching pages with title, slug, public URL, and a query-relevant snippet. Use this when the user asks about a Z"},{"name":"get_doc","description":"Fetch the full Markdown body of a specific docs page by its slug. Use this after `search_docs` when the user needs the complete content of a page. No authentica"},{"name":"list_docs","description":"Enumerate all available docs pages, optionally filtered by product (e.g. 'compass', 'legal', 'overview'). Use this to discover what slugs exist before calling `"},{"name":"compass_pages_list","description":"Lists pages in the active workspace's Compass compendium. Optional `type` filter narrows to one node type (WORKFLOW, PERSON, ROLE, SYSTEM, PAIN_POINT, DOCUMENT,"},{"name":"compass_pages_search","description":"Keyword search over page titles, bodies, and tags (case-insensitive substring match), paginated. The fast way to check whether a subject already has a page befo"},{"name":"compass_pages_get","description":"Fetches one Compass page by id, including its full Markdown body, header fields, and any attached Napkin sketches — view an attached sketch's actual drawing wit"},{"name":"compass_pages_create","description":"Creates a typed page in the workspace's Compass compendium. Check `compass_pages_list` first — don't create a page for a subject the map already has; link to it"},{"name":"compass_pages_update","description":"Edits an existing page's title, description, body, tags, header fields, or visibility — use this to FIX what you (or an extraction) got wrong instead of creatin"},{"name":"compass_links_create","description":"Creates a typed, directed edge between two pages — the knowledge graph's connective tissue. Canonical directions: PERSON or ROLE owns WORKFLOW/SYSTEM/PRIORITY, "},{"name":"compass_process_diagram_ensure","description":"Returns the Napkin diagram that holds a WORKFLOW page's steps, creating it when the page has none. If the page body has a ```mermaid block, it moves into the di"},{"name":"compass_page_links_list","description":"All typed edges touching one page, both directions, each hydrated with the other endpoint's page summary. Use this to understand a subject's neighborhood before"},{"name":"compass_interviews_create","description":"Mints a stakeholder-interview invite: a no-account guest link where the person talks to an interviewer agent briefed by your focusPrompt, and the transcript flo"},{"name":"compass_interview_targets","description":"Ranks the PEOPLE the map says know about a page (workflow, system, pain point): `owns` links first, then `involved_in`, then weaker edges. Each target carries c"},{"name":"compass_interview_invite","description":"Emails the guest link for an existing interview, framed as coming from the REQUESTING USER (their name signs it; replies go to them). Author `message` in their "},{"name":"compass_gaps_list","description":"Lists the workspace's open questions — the gap registry: what the map doesn't know yet. Defaults to OPEN gaps. This is where you keep your head — check it befor"},{"name":"compass_gaps_create","description":"Records something you don't yet know — the gap registry is your working memory, so use it liberally while mapping or interviewing. Give one clear question, WHY "},{"name":"compass_gaps_resolve","description":"Closes a gap once you've learned the answer (ANSWERED, with the resolution) or decided it doesn't matter (DISMISSED). Keep the registry honest — resolve gaps as"},{"name":"compass_opportunities_list","description":"The workspace's changes — fixes, chores, new steps, experiments. Each carries `statusName` (the workspace's own word for where it is) and `statusCategory` (TRIA"},{"name":"compass_opportunities_propose","description":"File an AI-PROPOSED opportunity into the workspace's review queue — the scouting verb (the opportunity-scout routine's main move). Unlike compass_opportunities_"},{"name":"compass_opportunities_create","description":"Record a change — a fix, a chore, a new step, or an experiment worth trying. Anchor it to a workflow page when one fits (compass_pages_list); leave unanchored o"},{"name":"compass_opportunities_register_expectation","description":"The honesty mechanism: write what the experiment is expected to change BEFORE evidence exists. Creates a Ledger decision entry and links it to the opportunity —"},{"name":"compass_opportunities_mark_implemented","description":"The measurement window's boundary: when the user says the experiment's change actually shipped / went live / rolled out, record the landing date. Readings befor"},{"name":"compass_map_view","description":"Renders the workspace's visual map to an image and returns it so you can SEE it the way the user does: an isometric drawing where every page is a structure whos"},{"name":"compass_pages_delete","description":"Moves a page to the trash (soft delete — its connections and anchored opportunities go with it, and compass_pages_restore brings the whole set back). Use this t"},{"name":"compass_pages_restore","description":"Puts a trashed page back on the map, together with exactly the connections and opportunities its delete took. Use when the user wants a deleted page back (the p"},{"name":"compass_links_update","description":"Edits an existing edge between two pages: its `kind` (how the two relate), its `note`, and/or when it was true (`validFrom` / `validTo`). Use kind to CORRECT a "},{"name":"compass_links_delete","description":"Deletes one edge from the graph (the pages stay). Use only when a connection was never true — the system isn't used by that workflow, it was recorded by mistake"},{"name":"compass_opportunities_update","description":"Corrects an opportunity's content: label, description, priority, what done means, the 1–5 value / feasibility / risk scores, the owner (a PERSON page), notes, t"},{"name":"compass_opportunities_delete","description":"Removes an opportunity from the pipeline (soft delete). For an AI proposal the user doesn't want, this is the dismiss verb; for a captured experiment that was a"},{"name":"compass_opportunities_accept","description":"The review verb for the Inbox: promotes an AI-PROPOSED opportunity (from compass_opportunities_propose or the opportunity scout) into the workspace's own pipeli"},{"name":"compass_interviews_list","description":"Every stakeholder interview in the workspace, newest first: who was invited, status (INVITED / IN_PROGRESS / COMPLETED), focus, message count, whether the trans"},{"name":"compass_interviews_get","description":"One interview in full — metadata plus the transcript of what the guest actually said. Read this before summarizing an interview or drafting pages from it: the t"},{"name":"compass_interviews_revoke","description":"Kills an interview's invite link — the guest's next visit sees that the link is no longer active. Use when an invite went to the wrong person, the user changed "},{"name":"compass_inbox_list","description":"The Compass Inbox in one read: finished interviews awaiting review (transcript in, not yet turned into pages), AI-proposed opportunities awaiting accept / dismi"},{"name":"compass_gaps_update","description":"Edits an open question's wording, rationale, or suggested resolution — for sharpening a vague question or fixing one you phrased badly. Closing a gap is compass"},{"name":"compass_statuses_list","description":"The statuses this workspace's changes move through, in board order — the names people use. Each sits in a group: Undecided (TRIAGE), Not started (BACKLOG), In p"},{"name":"compass_opportunities_set_status","description":"Move a change to one of the workspace's statuses, by name (compass_statuses_list has them — e.g. \"In review\"). The old lane keys (NEW / QUALIFYING / BACKLOG / E"},{"name":"compass_workflow_steps","description":"Every step in a WORKFLOW page's steps diagram, in diagram order, with its phase, whether it is itself a workflow (subWorkflowPageId), and who the map says owns,"},{"name":"compass_step_claims_list","description":"Every claim about a WORKFLOW's steps, oldest first: the step (nodeId; null = the workflow as a whole), the role or person (subject), the relation, who says so ("},{"name":"compass_step_claims_propose","description":"Propose claims about who does what in a WORKFLOW, and what each step is done in, from what someone said. Each claim names a step (nodeId from compass_workflow_s"},{"name":"compass_workflow_rollup","description":"Per run and per month: hands-on minutes, waiting minutes, labor cost (hands-on time priced through each role's hourly rate), and hard costs, each as a low–high "},{"name":"compass_workflow_learning","description":"Newest first: steps added to or dropped from the diagram (and by whom), and claims about who does what or what a step takes — said, corrected (with what they re"},{"name":"compass_step_measures_propose","description":"Propose estimates from what someone said, as ranges — people know \"20 minutes to an hour\", not \"37 minutes\"; when they give one number, use it for both ends. Ea"},{"name":"compass_scenario_changes","description":"Changes whose effects reach a WORKFLOW's steps — or any nested workflow's — plus changes anchored to it with no effects yet, each with what it does per step. Pa"},{"name":"compass_change_effects_set","description":"Replace a change's effects: for each step it reaches (workflowPageId + nodeId from compass_workflow_steps — a sub-workflow's steps included), one of eliminate, "},{"name":"compass_transformations_get","description":"What the workflows behind a PRIORITY could become, at five levels (Assist, Automate, Re-form, Invert, Dissolve): for each, whether it fits, is already reached, "},{"name":"compass_priority_steps_find","description":"Reads every mapped workflow against one PRIORITY (or VALUE) and proposes the steps that move it (or where the business lives the value), one marked as what hold"},{"name":"compass_transformations_read","description":"Starts reading the five levels for a PRIORITY in the background (a minute or two). Needs at least one kept step that impacts the priority. A read under way is l"},{"name":"compass_transformations_respond","description":"Records what someone told you about one level of a PRIORITY's current transformations, in their words or a faithful summary: that they already do it, what rules"},{"name":"compass_transformations_make_change","description":"Creates a Change from one level of a priority's transformations, with its step effects and the priority it serves, and starts drafting in Workbench up to three "},{"name":"compass_step_suggestions_list","description":"Your earlier read of a WORKFLOW's steps: for each suggestion, the steps it covers (nodeIds, labels), what could do them (proposal.doer: a flow and its mode, a s"},{"name":"compass_step_suggestions_build","description":"Builds a step suggestion the way Compass's Build button does: makes its change if it isn't one yet, then the thing in Workbench — a flow drafted from the step i"},{"name":"compass_changes_upsert","description":"Create or update up to 100 changes in one call, each matched by `url` — the GitHub issue, Linear or Jira ticket, PR or doc it mirrors. A url already linked to a"},{"name":"comments_list","description":"Lists the comment threads on one workspace entity (open first, then resolved) with authors and timestamps. Read this before weighing in on contested work — the "},{"name":"comments_create","description":"Posts a comment on a workspace entity — a new thread, or a reply when rootId is given. Use it to leave findings where the discussion already lives (an eval resu"},{"name":"comments_resolve","description":"Sets a comment thread's resolved state (rootId = the thread's root comment id). Resolve ONLY when the human asked or the thread's question is demonstrably settl"},{"name":"search_workspace","description":"Finds anything in the workspace in one call — uploaded files (searching the text inside them), folders, Workbench flows, shims, knowledge bases and tasks, Compa"},{"name":"entity_tags_get","description":"Returns the tags on a batch of entities of one kind — the labels galleries organize by. Ids come from the kind's list/get tool or from search_workspace. Use it "},{"name":"entity_tags_browse","description":"Without a tag: every tag in use across the workspace with how many entities carry it, most-used first — the vocabulary the team already organizes by. With a tag"},{"name":"entity_tags_set","description":"Replaces the FULL tag set on one entity (an empty list clears it). Read the current tags with entity_tags_get first and pass the merged list — this is not addit"}],"toolCount":60,"toolsHash":"bfb25fc338925c490c56feb899c8dc67668e9e8bf01f72e43b5fa1ef1f8031f7","serverName":"zerowidth-mcp","capabilities":["tools","resources"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-21T19:28:29.701Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":204,"error":null,"detail":{"tools":[{"name":"search_docs","description":"Search ZeroWidth product documentation. Returns matching pages with title, slug, public URL, and a query-relevant snippet. Use this when the user asks about a Z"},{"name":"get_doc","description":"Fetch the full Markdown body of a specific docs page by its slug. Use this after `search_docs` when the user needs the complete content of a page. No authentica"},{"name":"list_docs","description":"Enumerate all available docs pages, optionally filtered by product (e.g. 'compass', 'legal', 'overview'). Use this to discover what slugs exist before calling `"},{"name":"compass_pages_list","description":"Lists pages in the active workspace's Compass compendium. Optional `type` filter narrows to one node type (WORKFLOW, PERSON, ROLE, SYSTEM, PAIN_POINT, DOCUMENT,"},{"name":"compass_pages_search","description":"Keyword search over page titles, bodies, and tags (case-insensitive substring match), paginated. The fast way to check whether a subject already has a page befo"},{"name":"compass_pages_get","description":"Fetches one Compass page by id, including its full Markdown body, header fields, and any attached Napkin sketches — view an attached sketch's actual drawing wit"},{"name":"compass_pages_create","description":"Creates a typed page in the workspace's Compass compendium. Check `compass_pages_list` first — don't create a page for a subject the map already has; link to it"},{"name":"compass_pages_update","description":"Edits an existing page's title, description, body, tags, header fields, or visibility — use this to FIX what you (or an extraction) got wrong instead of creatin"},{"name":"compass_links_create","description":"Creates a typed, directed edge between two pages — the knowledge graph's connective tissue. Canonical directions: PERSON or ROLE owns WORKFLOW/SYSTEM/PRIORITY, "},{"name":"compass_process_diagram_ensure","description":"Returns the Napkin diagram that holds a WORKFLOW page's steps, creating it when the page has none. If the page body has a ```mermaid block, it moves into the di"},{"name":"compass_page_links_list","description":"All typed edges touching one page, both directions, each hydrated with the other endpoint's page summary. Use this to understand a subject's neighborhood before"},{"name":"compass_interviews_create","description":"Mints a stakeholder-interview invite: a no-account guest link where the person talks to an interviewer agent briefed by your focusPrompt, and the transcript flo"},{"name":"compass_interview_targets","description":"Ranks the PEOPLE the map says know about a page (workflow, system, pain point): `owns` links first, then `involved_in`, then weaker edges. Each target carries c"},{"name":"compass_interview_invite","description":"Emails the guest link for an existing interview, framed as coming from the REQUESTING USER (their name signs it; replies go to them). Author `message` in their "},{"name":"compass_gaps_list","description":"Lists the workspace's open questions — the gap registry: what the map doesn't know yet. Defaults to OPEN gaps. This is where you keep your head — check it befor"},{"name":"compass_gaps_create","description":"Records something you don't yet know — the gap registry is your working memory, so use it liberally while mapping or interviewing. Give one clear question, WHY "},{"name":"compass_gaps_resolve","description":"Closes a gap once you've learned the answer (ANSWERED, with the resolution) or decided it doesn't matter (DISMISSED). Keep the registry honest — resolve gaps as"},{"name":"compass_opportunities_list","description":"The workspace's changes — fixes, chores, new steps, experiments. Each carries `statusName` (the workspace's own word for where it is) and `statusCategory` (TRIA"},{"name":"compass_opportunities_propose","description":"File an AI-PROPOSED opportunity into the workspace's review queue — the scouting verb (the opportunity-scout routine's main move). Unlike compass_opportunities_"},{"name":"compass_opportunities_create","description":"Record a change — a fix, a chore, a new step, or an experiment worth trying. Anchor it to a workflow page when one fits (compass_pages_list); leave unanchored o"},{"name":"compass_opportunities_register_expectation","description":"The honesty mechanism: write what the experiment is expected to change BEFORE evidence exists. Creates a Ledger decision entry and links it to the opportunity —"},{"name":"compass_opportunities_mark_implemented","description":"The measurement window's boundary: when the user says the experiment's change actually shipped / went live / rolled out, record the landing date. Readings befor"},{"name":"compass_map_view","description":"Renders the workspace's visual map to an image and returns it so you can SEE it the way the user does: an isometric drawing where every page is a structure whos"},{"name":"compass_pages_delete","description":"Moves a page to the trash (soft delete — its connections and anchored opportunities go with it, and compass_pages_restore brings the whole set back). Use this t"},{"name":"compass_pages_restore","description":"Puts a trashed page back on the map, together with exactly the connections and opportunities its delete took. Use when the user wants a deleted page back (the p"},{"name":"compass_links_update","description":"Edits an existing edge between two pages: its `kind` (how the two relate), its `note`, and/or when it was true (`validFrom` / `validTo`). Use kind to CORRECT a "},{"name":"compass_links_delete","description":"Deletes one edge from the graph (the pages stay). Use only when a connection was never true — the system isn't used by that workflow, it was recorded by mistake"},{"name":"compass_opportunities_update","description":"Corrects an opportunity's content: label, description, priority, what done means, the 1–5 value / feasibility / risk scores, the owner (a PERSON page), notes, t"},{"name":"compass_opportunities_delete","description":"Removes an opportunity from the pipeline (soft delete). For an AI proposal the user doesn't want, this is the dismiss verb; for a captured experiment that was a"},{"name":"compass_opportunities_accept","description":"The review verb for the Inbox: promotes an AI-PROPOSED opportunity (from compass_opportunities_propose or the opportunity scout) into the workspace's own pipeli"},{"name":"compass_interviews_list","description":"Every stakeholder interview in the workspace, newest first: who was invited, status (INVITED / IN_PROGRESS / COMPLETED), focus, message count, whether the trans"},{"name":"compass_interviews_get","description":"One interview in full — metadata plus the transcript of what the guest actually said. Read this before summarizing an interview or drafting pages from it: the t"},{"name":"compass_interviews_revoke","description":"Kills an interview's invite link — the guest's next visit sees that the link is no longer active. Use when an invite went to the wrong person, the user changed "},{"name":"compass_inbox_list","description":"The Compass Inbox in one read: finished interviews awaiting review (transcript in, not yet turned into pages), AI-proposed opportunities awaiting accept / dismi"},{"name":"compass_gaps_update","description":"Edits an open question's wording, rationale, or suggested resolution — for sharpening a vague question or fixing one you phrased badly. Closing a gap is compass"},{"name":"compass_statuses_list","description":"The statuses this workspace's changes move through, in board order — the names people use. Each sits in a group: Undecided (TRIAGE), Not started (BACKLOG), In p"},{"name":"compass_opportunities_set_status","description":"Move a change to one of the workspace's statuses, by name (compass_statuses_list has them — e.g. \"In review\"). The old lane keys (NEW / QUALIFYING / BACKLOG / E"},{"name":"compass_workflow_steps","description":"Every step in a WORKFLOW page's steps diagram, in diagram order, with its phase, whether it is itself a workflow (subWorkflowPageId), and who the map says owns,"},{"name":"compass_step_claims_list","description":"Every claim about a WORKFLOW's steps, oldest first: the step (nodeId; null = the workflow as a whole), the role or person (subject), the relation, who says so ("},{"name":"compass_step_claims_propose","description":"Propose claims about who does what in a WORKFLOW, and what each step is done in, from what someone said. Each claim names a step (nodeId from compass_workflow_s"},{"name":"compass_workflow_rollup","description":"Per run and per month: hands-on minutes, waiting minutes, labor cost (hands-on time priced through each role's hourly rate), and hard costs, each as a low–high "},{"name":"compass_workflow_learning","description":"Newest first: steps added to or dropped from the diagram (and by whom), and claims about who does what or what a step takes — said, corrected (with what they re"},{"name":"compass_step_measures_propose","description":"Propose estimates from what someone said, as ranges — people know \"20 minutes to an hour\", not \"37 minutes\"; when they give one number, use it for both ends. Ea"},{"name":"compass_scenario_changes","description":"Changes whose effects reach a WORKFLOW's steps — or any nested workflow's — plus changes anchored to it with no effects yet, each with what it does per step. Pa"},{"name":"compass_change_effects_set","description":"Replace a change's effects: for each step it reaches (workflowPageId + nodeId from compass_workflow_steps — a sub-workflow's steps included), one of eliminate, "},{"name":"compass_transformations_get","description":"What the workflows behind a PRIORITY could become, at five levels (Assist, Automate, Re-form, Invert, Dissolve): for each, whether it fits, is already reached, "},{"name":"compass_priority_steps_find","description":"Reads every mapped workflow against one PRIORITY (or VALUE) and proposes the steps that move it (or where the business lives the value), one marked as what hold"},{"name":"compass_transformations_read","description":"Starts reading the five levels for a PRIORITY in the background (a minute or two). Needs at least one kept step that impacts the priority. A read under way is l"},{"name":"compass_transformations_respond","description":"Records what someone told you about one level of a PRIORITY's current transformations, in their words or a faithful summary: that they already do it, what rules"},{"name":"compass_transformations_make_change","description":"Creates a Change from one level of a priority's transformations, with its step effects and the priority it serves, and starts drafting in Workbench up to three "},{"name":"compass_step_suggestions_list","description":"Your earlier read of a WORKFLOW's steps: for each suggestion, the steps it covers (nodeIds, labels), what could do them (proposal.doer: a flow and its mode, a s"},{"name":"compass_step_suggestions_build","description":"Builds a step suggestion the way Compass's Build button does: makes its change if it isn't one yet, then the thing in Workbench — a flow drafted from the step i"},{"name":"compass_changes_upsert","description":"Create or update up to 100 changes in one call, each matched by `url` — the GitHub issue, Linear or Jira ticket, PR or doc it mirrors. A url already linked to a"},{"name":"comments_list","description":"Lists the comment threads on one workspace entity (open first, then resolved) with authors and timestamps. Read this before weighing in on contested work — the "},{"name":"comments_create","description":"Posts a comment on a workspace entity — a new thread, or a reply when rootId is given. Use it to leave findings where the discussion already lives (an eval resu"},{"name":"comments_resolve","description":"Sets a comment thread's resolved state (rootId = the thread's root comment id). Resolve ONLY when the human asked or the thread's question is demonstrably settl"},{"name":"search_workspace","description":"Finds anything in the workspace in one call — uploaded files (searching the text inside them), folders, Workbench flows, shims, knowledge bases and tasks, Compa"},{"name":"entity_tags_get","description":"Returns the tags on a batch of entities of one kind — the labels galleries organize by. Ids come from the kind's list/get tool or from search_workspace. Use it "},{"name":"entity_tags_browse","description":"Without a tag: every tag in use across the workspace with how many entities carry it, most-used first — the vocabulary the team already organizes by. With a tag"},{"name":"entity_tags_set","description":"Replaces the FULL tag set on one entity (an empty list clears it). Read the current tags with entity_tags_get first and pass the merged list — this is not addit"}],"toolCount":60,"toolsHash":"bfb25fc338925c490c56feb899c8dc67668e9e8bf01f72e43b5fa1ef1f8031f7","serverName":"zerowidth-mcp","capabilities":["tools","resources"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-21T10:30:57.672Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":1195,"error":null,"detail":{"tools":[{"name":"search_docs","description":"Search ZeroWidth product documentation. Returns matching pages with title, slug, public URL, and a query-relevant snippet. Use this when the user asks about a Z"},{"name":"get_doc","description":"Fetch the full Markdown body of a specific docs page by its slug. Use this after `search_docs` when the user needs the complete content of a page. No authentica"},{"name":"list_docs","description":"Enumerate all available docs pages, optionally filtered by product (e.g. 'compass', 'legal', 'overview'). Use this to discover what slugs exist before calling `"},{"name":"compass_pages_list","description":"Lists pages in the active workspace's Compass compendium. Optional `type` filter narrows to one node type (WORKFLOW, PERSON, ROLE, SYSTEM, PAIN_POINT, DOCUMENT,"},{"name":"compass_pages_search","description":"Keyword search over page titles, bodies, and tags (case-insensitive substring match), paginated. The fast way to check whether a subject already has a page befo"},{"name":"compass_pages_get","description":"Fetches one Compass page by id, including its full Markdown body, header fields, and any attached Napkin sketches — view an attached sketch's actual drawing wit"},{"name":"compass_pages_create","description":"Creates a typed page in the workspace's Compass compendium. Check `compass_pages_list` first — don't create a page for a subject the map already has; link to it"},{"name":"compass_pages_update","description":"Edits an existing page's title, description, body, tags, header fields, or visibility — use this to FIX what you (or an extraction) got wrong instead of creatin"},{"name":"compass_links_create","description":"Creates a typed, directed edge between two pages — the knowledge graph's connective tissue. Canonical directions: PERSON or ROLE owns WORKFLOW/SYSTEM/PRIORITY, "},{"name":"compass_process_diagram_ensure","description":"Returns the Napkin diagram that holds a WORKFLOW page's steps, creating it when the page has none. If the page body has a ```mermaid block, it moves into the di"},{"name":"compass_page_links_list","description":"All typed edges touching one page, both directions, each hydrated with the other endpoint's page summary. Use this to understand a subject's neighborhood before"},{"name":"compass_interviews_create","description":"Mints a stakeholder-interview invite: a no-account guest link where the person talks to an interviewer agent briefed by your focusPrompt, and the transcript flo"},{"name":"compass_interview_targets","description":"Ranks the PEOPLE the map says know about a page (workflow, system, pain point): `owns` links first, then `involved_in`, then weaker edges. Each target carries c"},{"name":"compass_interview_invite","description":"Emails the guest link for an existing interview, framed as coming from the REQUESTING USER (their name signs it; replies go to them). Author `message` in their "},{"name":"compass_gaps_list","description":"Lists the workspace's open questions — the gap registry: what the map doesn't know yet. Defaults to OPEN gaps. This is where you keep your head — check it befor"},{"name":"compass_gaps_create","description":"Records something you don't yet know — the gap registry is your working memory, so use it liberally while mapping or interviewing. Give one clear question, WHY "},{"name":"compass_gaps_resolve","description":"Closes a gap once you've learned the answer (ANSWERED, with the resolution) or decided it doesn't matter (DISMISSED). Keep the registry honest — resolve gaps as"},{"name":"compass_opportunities_list","description":"The workspace's changes — fixes, chores, new steps, experiments. Each carries `statusName` (the workspace's own word for where it is) and `statusCategory` (TRIA"},{"name":"compass_opportunities_propose","description":"File an AI-PROPOSED opportunity into the workspace's review queue — the scouting verb (the opportunity-scout routine's main move). Unlike compass_opportunities_"},{"name":"compass_opportunities_create","description":"Record a change — a fix, a chore, a new step, or an experiment worth trying. Anchor it to a workflow page when one fits (compass_pages_list); leave unanchored o"},{"name":"compass_opportunities_register_expectation","description":"The honesty mechanism: write what the experiment is expected to change BEFORE evidence exists. Creates a Ledger decision entry and links it to the opportunity —"},{"name":"compass_opportunities_mark_implemented","description":"The measurement window's boundary: when the user says the experiment's change actually shipped / went live / rolled out, record the landing date. Readings befor"},{"name":"compass_map_view","description":"Renders the workspace's visual map to an image and returns it so you can SEE it the way the user does: an isometric drawing where every page is a structure whos"},{"name":"compass_pages_delete","description":"Moves a page to the trash (soft delete — its connections and anchored opportunities go with it, and compass_pages_restore brings the whole set back). Use this t"},{"name":"compass_pages_restore","description":"Puts a trashed page back on the map, together with exactly the connections and opportunities its delete took. Use when the user wants a deleted page back (the p"},{"name":"compass_links_update","description":"Edits an existing edge between two pages: its `kind` (how the two relate), its `note`, and/or when it was true (`validFrom` / `validTo`). Use kind to CORRECT a "},{"name":"compass_links_delete","description":"Deletes one edge from the graph (the pages stay). Use only when a connection was never true — the system isn't used by that workflow, it was recorded by mistake"},{"name":"compass_opportunities_update","description":"Corrects an opportunity's content: label, description, priority, what done means, the 1–5 value / feasibility / risk scores, the owner (a PERSON page), notes, t"},{"name":"compass_opportunities_delete","description":"Removes an opportunity from the pipeline (soft delete). For an AI proposal the user doesn't want, this is the dismiss verb; for a captured experiment that was a"},{"name":"compass_opportunities_accept","description":"The review verb for the Inbox: promotes an AI-PROPOSED opportunity (from compass_opportunities_propose or the opportunity scout) into the workspace's own pipeli"},{"name":"compass_interviews_list","description":"Every stakeholder interview in the workspace, newest first: who was invited, status (INVITED / IN_PROGRESS / COMPLETED), focus, message count, whether the trans"},{"name":"compass_interviews_get","description":"One interview in full — metadata plus the transcript of what the guest actually said. Read this before summarizing an interview or drafting pages from it: the t"},{"name":"compass_interviews_revoke","description":"Kills an interview's invite link — the guest's next visit sees that the link is no longer active. Use when an invite went to the wrong person, the user changed "},{"name":"compass_inbox_list","description":"The Compass Inbox in one read: finished interviews awaiting review (transcript in, not yet turned into pages), AI-proposed opportunities awaiting accept / dismi"},{"name":"compass_gaps_update","description":"Edits an open question's wording, rationale, or suggested resolution — for sharpening a vague question or fixing one you phrased badly. Closing a gap is compass"},{"name":"compass_statuses_list","description":"The statuses this workspace's changes move through, in board order — the names people use. Each sits in a group: Undecided (TRIAGE), Not started (BACKLOG), In p"},{"name":"compass_opportunities_set_status","description":"Move a change to one of the workspace's statuses, by name (compass_statuses_list has them — e.g. \"In review\"). The old lane keys (NEW / QUALIFYING / BACKLOG / E"},{"name":"compass_workflow_steps","description":"Every step in a WORKFLOW page's steps diagram, in diagram order, with its phase, whether it is itself a workflow (subWorkflowPageId), and who the map says owns,"},{"name":"compass_step_claims_list","description":"Every claim about a WORKFLOW's steps, oldest first: the step (nodeId; null = the workflow as a whole), the role or person (subject), the relation, who says so ("},{"name":"compass_step_claims_propose","description":"Propose claims about who does what in a WORKFLOW, and what each step is done in, from what someone said. Each claim names a step (nodeId from compass_workflow_s"},{"name":"compass_workflow_rollup","description":"Per run and per month: hands-on minutes, waiting minutes, labor cost (hands-on time priced through each role's hourly rate), and hard costs, each as a low–high "},{"name":"compass_workflow_learning","description":"Newest first: steps added to or dropped from the diagram (and by whom), and claims about who does what or what a step takes — said, corrected (with what they re"},{"name":"compass_step_measures_propose","description":"Propose estimates from what someone said, as ranges — people know \"20 minutes to an hour\", not \"37 minutes\"; when they give one number, use it for both ends. Ea"},{"name":"compass_scenario_changes","description":"Changes whose effects reach a WORKFLOW's steps — or any nested workflow's — plus changes anchored to it with no effects yet, each with what it does per step. Pa"},{"name":"compass_change_effects_set","description":"Replace a change's effects: for each step it reaches (workflowPageId + nodeId from compass_workflow_steps — a sub-workflow's steps included), one of eliminate, "},{"name":"compass_transformations_get","description":"What the workflows behind a PRIORITY could become, at five levels (Assist, Automate, Re-form, Invert, Dissolve): for each, whether it fits, is already reached, "},{"name":"compass_priority_steps_find","description":"Reads every mapped workflow against one PRIORITY (or VALUE) and proposes the steps that move it (or where the business lives the value), one marked as what hold"},{"name":"compass_transformations_read","description":"Starts reading the five levels for a PRIORITY in the background (a minute or two). Needs at least one kept step that impacts the priority. A read under way is l"},{"name":"compass_transformations_respond","description":"Records what someone told you about one level of a PRIORITY's current transformations, in their words or a faithful summary: that they already do it, what rules"},{"name":"compass_transformations_make_change","description":"Creates a Change from one level of a priority's transformations, with its step effects and the priority it serves, and starts drafting in Workbench up to three "},{"name":"compass_step_suggestions_list","description":"Your earlier read of a WORKFLOW's steps: for each suggestion, the steps it covers (nodeIds, labels), what could do them (proposal.doer: a flow and its mode, a s"},{"name":"compass_step_suggestions_build","description":"Builds a step suggestion the way Compass's Build button does: makes its change if it isn't one yet, then the thing in Workbench — a flow drafted from the step i"},{"name":"compass_changes_upsert","description":"Create or update up to 100 changes in one call, each matched by `url` — the GitHub issue, Linear or Jira ticket, PR or doc it mirrors. A url already linked to a"},{"name":"comments_list","description":"Lists the comment threads on one workspace entity (open first, then resolved) with authors and timestamps. Read this before weighing in on contested work — the "},{"name":"comments_create","description":"Posts a comment on a workspace entity — a new thread, or a reply when rootId is given. Use it to leave findings where the discussion already lives (an eval resu"},{"name":"comments_resolve","description":"Sets a comment thread's resolved state (rootId = the thread's root comment id). Resolve ONLY when the human asked or the thread's question is demonstrably settl"},{"name":"search_workspace","description":"Finds anything in the workspace in one call — uploaded files (searching the text inside them), folders, Workbench flows, shims, knowledge bases and tasks, Compa"},{"name":"entity_tags_get","description":"Returns the tags on a batch of entities of one kind — the labels galleries organize by. Ids come from the kind's list/get tool or from search_workspace. Use it "},{"name":"entity_tags_browse","description":"Without a tag: every tag in use across the workspace with how many entities carry it, most-used first — the vocabulary the team already organizes by. With a tag"},{"name":"entity_tags_set","description":"Replaces the FULL tag set on one entity (an empty list clears it). Read the current tags with entity_tags_get first and pass the merged list — this is not addit"}],"toolCount":60,"toolsHash":"bfb25fc338925c490c56feb899c8dc67668e9e8bf01f72e43b5fa1ef1f8031f7","serverName":"zerowidth-mcp","capabilities":["tools","resources"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-21T01:27:29.748Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":1267,"error":null,"detail":{"tools":[{"name":"search_docs","description":"Search ZeroWidth product documentation. Returns matching pages with title, slug, public URL, and a query-relevant snippet. Use this when the user asks about a Z"},{"name":"get_doc","description":"Fetch the full Markdown body of a specific docs page by its slug. Use this after `search_docs` when the user needs the complete content of a page. No authentica"},{"name":"list_docs","description":"Enumerate all available docs pages, optionally filtered by product (e.g. 'compass', 'legal', 'overview'). Use this to discover what slugs exist before calling `"},{"name":"compass_pages_list","description":"Lists pages in the active workspace's Compass compendium. Optional `type` filter narrows to one node type (WORKFLOW, PERSON, ROLE, SYSTEM, PAIN_POINT, DOCUMENT,"},{"name":"compass_pages_search","description":"Keyword search over page titles, bodies, and tags (case-insensitive substring match), paginated. The fast way to check whether a subject already has a page befo"},{"name":"compass_pages_get","description":"Fetches one Compass page by id, including its full Markdown body, header fields, and any attached Napkin sketches — view an attached sketch's actual drawing wit"},{"name":"compass_pages_create","description":"Creates a typed page in the workspace's Compass compendium. Check `compass_pages_list` first — don't create a page for a subject the map already has; link to it"},{"name":"compass_pages_update","description":"Edits an existing page's title, description, body, tags, header fields, or visibility — use this to FIX what you (or an extraction) got wrong instead of creatin"},{"name":"compass_links_create","description":"Creates a typed, directed edge between two pages — the knowledge graph's connective tissue. Canonical directions: PERSON or ROLE owns WORKFLOW/SYSTEM/PRIORITY, "},{"name":"compass_process_diagram_ensure","description":"Returns the Napkin diagram that holds a WORKFLOW page's steps, creating it when the page has none. If the page body has a ```mermaid block, it moves into the di"},{"name":"compass_page_links_list","description":"All typed edges touching one page, both directions, each hydrated with the other endpoint's page summary. Use this to understand a subject's neighborhood before"},{"name":"compass_interviews_create","description":"Mints a stakeholder-interview invite: a no-account guest link where the person talks to an interviewer agent briefed by your focusPrompt, and the transcript flo"},{"name":"compass_interview_targets","description":"Ranks the PEOPLE the map says know about a page (workflow, system, pain point): `owns` links first, then `involved_in`, then weaker edges. Each target carries c"},{"name":"compass_interview_invite","description":"Emails the guest link for an existing interview, framed as coming from the REQUESTING USER (their name signs it; replies go to them). Author `message` in their "},{"name":"compass_gaps_list","description":"Lists the workspace's open questions — the gap registry: what the map doesn't know yet. Defaults to OPEN gaps. This is where you keep your head — check it befor"},{"name":"compass_gaps_create","description":"Records something you don't yet know — the gap registry is your working memory, so use it liberally while mapping or interviewing. Give one clear question, WHY "},{"name":"compass_gaps_resolve","description":"Closes a gap once you've learned the answer (ANSWERED, with the resolution) or decided it doesn't matter (DISMISSED). Keep the registry honest — resolve gaps as"},{"name":"compass_opportunities_list","description":"The workspace's changes — fixes, chores, new steps, experiments. Each carries `statusName` (the workspace's own word for where it is) and `statusCategory` (TRIA"},{"name":"compass_opportunities_propose","description":"File an AI-PROPOSED opportunity into the workspace's review queue — the scouting verb (the opportunity-scout routine's main move). Unlike compass_opportunities_"},{"name":"compass_opportunities_create","description":"Record a change — a fix, a chore, a new step, or an experiment worth trying. Anchor it to a workflow page when one fits (compass_pages_list); leave unanchored o"},{"name":"compass_opportunities_register_expectation","description":"The honesty mechanism: write what the experiment is expected to change BEFORE evidence exists. Creates a Ledger decision entry and links it to the opportunity —"},{"name":"compass_opportunities_mark_implemented","description":"The measurement window's boundary: when the user says the experiment's change actually shipped / went live / rolled out, record the landing date. Readings befor"},{"name":"compass_map_view","description":"Renders the workspace's visual map to an image and returns it so you can SEE it the way the user does: an isometric drawing where every page is a structure whos"},{"name":"compass_pages_delete","description":"Moves a page to the trash (soft delete — its connections and anchored opportunities go with it, and compass_pages_restore brings the whole set back). Use this t"},{"name":"compass_pages_restore","description":"Puts a trashed page back on the map, together with exactly the connections and opportunities its delete took. Use when the user wants a deleted page back (the p"},{"name":"compass_links_update","description":"Edits an existing edge between two pages: its `kind` (how the two relate), its `note`, and/or when it was true (`validFrom` / `validTo`). Use kind to CORRECT a "},{"name":"compass_links_delete","description":"Deletes one edge from the graph (the pages stay). Use only when a connection was never true — the system isn't used by that workflow, it was recorded by mistake"},{"name":"compass_opportunities_update","description":"Corrects an opportunity's content: label, description, priority, what done means, the 1–5 value / feasibility / risk scores, the owner (a PERSON page), notes, t"},{"name":"compass_opportunities_delete","description":"Removes an opportunity from the pipeline (soft delete). For an AI proposal the user doesn't want, this is the dismiss verb; for a captured experiment that was a"},{"name":"compass_opportunities_accept","description":"The review verb for the Inbox: promotes an AI-PROPOSED opportunity (from compass_opportunities_propose or the opportunity scout) into the workspace's own pipeli"},{"name":"compass_interviews_list","description":"Every stakeholder interview in the workspace, newest first: who was invited, status (INVITED / IN_PROGRESS / COMPLETED), focus, message count, whether the trans"},{"name":"compass_interviews_get","description":"One interview in full — metadata plus the transcript of what the guest actually said. Read this before summarizing an interview or drafting pages from it: the t"},{"name":"compass_interviews_revoke","description":"Kills an interview's invite link — the guest's next visit sees that the link is no longer active. Use when an invite went to the wrong person, the user changed "},{"name":"compass_inbox_list","description":"The Compass Inbox in one read: finished interviews awaiting review (transcript in, not yet turned into pages), AI-proposed opportunities awaiting accept / dismi"},{"name":"compass_gaps_update","description":"Edits an open question's wording, rationale, or suggested resolution — for sharpening a vague question or fixing one you phrased badly. Closing a gap is compass"},{"name":"compass_statuses_list","description":"The statuses this workspace's changes move through, in board order — the names people use. Each sits in a group: Undecided (TRIAGE), Not started (BACKLOG), In p"},{"name":"compass_opportunities_set_status","description":"Move a change to one of the workspace's statuses, by name (compass_statuses_list has them — e.g. \"In review\"). The old lane keys (NEW / QUALIFYING / BACKLOG / E"},{"name":"compass_workflow_steps","description":"Every step in a WORKFLOW page's steps diagram, in diagram order, with its phase, whether it is itself a workflow (subWorkflowPageId), and who the map says owns,"},{"name":"compass_step_claims_list","description":"Every claim about a WORKFLOW's steps, oldest first: the step (nodeId; null = the workflow as a whole), the role or person (subject), the relation, who says so ("},{"name":"compass_step_claims_propose","description":"Propose claims about who does what in a WORKFLOW, and what each step is done in, from what someone said. Each claim names a step (nodeId from compass_workflow_s"},{"name":"compass_workflow_rollup","description":"Per run and per month: hands-on minutes, waiting minutes, labor cost (hands-on time priced through each role's hourly rate), and hard costs, each as a low–high "},{"name":"compass_workflow_learning","description":"Newest first: steps added to or dropped from the diagram (and by whom), and claims about who does what or what a step takes — said, corrected (with what they re"},{"name":"compass_step_measures_propose","description":"Propose estimates from what someone said, as ranges — people know \"20 minutes to an hour\", not \"37 minutes\"; when they give one number, use it for both ends. Ea"},{"name":"compass_scenario_changes","description":"Changes whose effects reach a WORKFLOW's steps — or any nested workflow's — plus changes anchored to it with no effects yet, each with what it does per step. Pa"},{"name":"compass_change_effects_set","description":"Replace a change's effects: for each step it reaches (workflowPageId + nodeId from compass_workflow_steps — a sub-workflow's steps included), one of eliminate, "},{"name":"compass_transformations_get","description":"What the workflows behind a PRIORITY could become, at five levels (Assist, Automate, Re-form, Invert, Dissolve): for each, whether it fits, is already reached, "},{"name":"compass_priority_steps_find","description":"Reads every mapped workflow against one PRIORITY (or VALUE) and proposes the steps that move it (or where the business lives the value), one marked as what hold"},{"name":"compass_transformations_read","description":"Starts reading the five levels for a PRIORITY in the background (a minute or two). Needs at least one kept step that impacts the priority. A read under way is l"},{"name":"compass_transformations_respond","description":"Records what someone told you about one level of a PRIORITY's current transformations, in their words or a faithful summary: that they already do it, what rules"},{"name":"compass_transformations_make_change","description":"Creates a Change from one level of a priority's transformations, with its step effects and the priority it serves, and starts drafting in Workbench up to three "},{"name":"compass_step_suggestions_list","description":"Your earlier read of a WORKFLOW's steps: for each suggestion, the steps it covers (nodeIds, labels), what could do them (proposal.doer: a flow and its mode, a s"},{"name":"compass_step_suggestions_build","description":"Builds a step suggestion the way Compass's Build button does: makes its change if it isn't one yet, then the thing in Workbench — a flow drafted from the step i"},{"name":"compass_changes_upsert","description":"Create or update up to 100 changes in one call, each matched by `url` — the GitHub issue, Linear or Jira ticket, PR or doc it mirrors. A url already linked to a"},{"name":"comments_list","description":"Lists the comment threads on one workspace entity (open first, then resolved) with authors and timestamps. Read this before weighing in on contested work — the "},{"name":"comments_create","description":"Posts a comment on a workspace entity — a new thread, or a reply when rootId is given. Use it to leave findings where the discussion already lives (an eval resu"},{"name":"comments_resolve","description":"Sets a comment thread's resolved state (rootId = the thread's root comment id). Resolve ONLY when the human asked or the thread's question is demonstrably settl"},{"name":"search_workspace","description":"Finds anything in the workspace in one call — uploaded files (searching the text inside them), folders, Workbench flows, shims, knowledge bases and tasks, Compa"},{"name":"entity_tags_get","description":"Returns the tags on a batch of entities of one kind — the labels galleries organize by. Ids come from the kind's list/get tool or from search_workspace. Use it "},{"name":"entity_tags_browse","description":"Without a tag: every tag in use across the workspace with how many entities carry it, most-used first — the vocabulary the team already organizes by. With a tag"},{"name":"entity_tags_set","description":"Replaces the FULL tag set on one entity (an empty list clears it). Read the current tags with entity_tags_get first and pass the merged list — this is not addit"}],"toolCount":60,"toolsHash":"bfb25fc338925c490c56feb899c8dc67668e9e8bf01f72e43b5fa1ef1f8031f7","serverName":"zerowidth-mcp","capabilities":["tools","resources"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-20T19:26:28.468Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":416,"error":null,"detail":{"tools":[{"name":"search_docs","description":"Search ZeroWidth product documentation. Returns matching pages with title, slug, public URL, and a query-relevant snippet. Use this when the user asks about a Z"},{"name":"get_doc","description":"Fetch the full Markdown body of a specific docs page by its slug. Use this after `search_docs` when the user needs the complete content of a page. No authentica"},{"name":"list_docs","description":"Enumerate all available docs pages, optionally filtered by product (e.g. 'compass', 'legal', 'overview'). Use this to discover what slugs exist before calling `"},{"name":"compass_pages_list","description":"Lists pages in the active workspace's Compass compendium. Optional `type` filter narrows to one node type (WORKFLOW, PERSON, ROLE, SYSTEM, PAIN_POINT, DOCUMENT,"},{"name":"compass_pages_search","description":"Keyword search over page titles, bodies, and tags (case-insensitive substring match), paginated. The fast way to check whether a subject already has a page befo"},{"name":"compass_pages_get","description":"Fetches one Compass page by id, including its full Markdown body, header fields, and any attached Napkin sketches — view an attached sketch's actual drawing wit"},{"name":"compass_pages_create","description":"Creates a typed page in the workspace's Compass compendium. Check `compass_pages_list` first — don't create a page for a subject the map already has; link to it"},{"name":"compass_pages_update","description":"Edits an existing page's title, description, body, tags, header fields, or visibility — use this to FIX what you (or an extraction) got wrong instead of creatin"},{"name":"compass_links_create","description":"Creates a typed, directed edge between two pages — the knowledge graph's connective tissue. Canonical directions: PERSON or ROLE owns WORKFLOW/SYSTEM/PRIORITY, "},{"name":"compass_process_diagram_ensure","description":"Returns the Napkin diagram that holds a WORKFLOW page's steps, creating it when the page has none. If the page body has a ```mermaid block, it moves into the di"},{"name":"compass_page_links_list","description":"All typed edges touching one page, both directions, each hydrated with the other endpoint's page summary. Use this to understand a subject's neighborhood before"},{"name":"compass_interviews_create","description":"Mints a stakeholder-interview invite: a no-account guest link where the person talks to an interviewer agent briefed by your focusPrompt, and the transcript flo"},{"name":"compass_interview_targets","description":"Ranks the PEOPLE the map says know about a page (workflow, system, pain point): `owns` links first, then `involved_in`, then weaker edges. Each target carries c"},{"name":"compass_interview_invite","description":"Emails the guest link for an existing interview, framed as coming from the REQUESTING USER (their name signs it; replies go to them). Author `message` in their "},{"name":"compass_gaps_list","description":"Lists the workspace's open questions — the gap registry: what the map doesn't know yet. Defaults to OPEN gaps. This is where you keep your head — check it befor"},{"name":"compass_gaps_create","description":"Records something you don't yet know — the gap registry is your working memory, so use it liberally while mapping or interviewing. Give one clear question, WHY "},{"name":"compass_gaps_resolve","description":"Closes a gap once you've learned the answer (ANSWERED, with the resolution) or decided it doesn't matter (DISMISSED). Keep the registry honest — resolve gaps as"},{"name":"compass_opportunities_list","description":"The workspace's changes — fixes, chores, new steps, experiments. Each carries `statusName` (the workspace's own word for where it is) and `statusCategory` (TRIA"},{"name":"compass_opportunities_propose","description":"File an AI-PROPOSED opportunity into the workspace's review queue — the scouting verb (the opportunity-scout routine's main move). Unlike compass_opportunities_"},{"name":"compass_opportunities_create","description":"Record a change — a fix, a chore, a new step, or an experiment worth trying. Anchor it to a workflow page when one fits (compass_pages_list); leave unanchored o"},{"name":"compass_opportunities_register_expectation","description":"The honesty mechanism: write what the experiment is expected to change BEFORE evidence exists. Creates a Ledger decision entry and links it to the opportunity —"},{"name":"compass_opportunities_mark_implemented","description":"The measurement window's boundary: when the user says the experiment's change actually shipped / went live / rolled out, record the landing date. Readings befor"},{"name":"compass_map_view","description":"Renders the workspace's visual map to an image and returns it so you can SEE it the way the user does: an isometric drawing where every page is a structure whos"},{"name":"compass_pages_delete","description":"Moves a page to the trash (soft delete — its connections and anchored opportunities go with it, and compass_pages_restore brings the whole set back). Use this t"},{"name":"compass_pages_restore","description":"Puts a trashed page back on the map, together with exactly the connections and opportunities its delete took. Use when the user wants a deleted page back (the p"},{"name":"compass_links_update","description":"Edits an existing edge between two pages: its `kind` (how the two relate), its `note`, and/or when it was true (`validFrom` / `validTo`). Use kind to CORRECT a "},{"name":"compass_links_delete","description":"Deletes one edge from the graph (the pages stay). Use only when a connection was never true — the system isn't used by that workflow, it was recorded by mistake"},{"name":"compass_opportunities_update","description":"Corrects an opportunity's content: label, description, priority, what done means, the 1–5 value / feasibility / risk scores, the owner (a PERSON page), notes, t"},{"name":"compass_opportunities_delete","description":"Removes an opportunity from the pipeline (soft delete). For an AI proposal the user doesn't want, this is the dismiss verb; for a captured experiment that was a"},{"name":"compass_opportunities_accept","description":"The review verb for the Inbox: promotes an AI-PROPOSED opportunity (from compass_opportunities_propose or the opportunity scout) into the workspace's own pipeli"},{"name":"compass_interviews_list","description":"Every stakeholder interview in the workspace, newest first: who was invited, status (INVITED / IN_PROGRESS / COMPLETED), focus, message count, whether the trans"},{"name":"compass_interviews_get","description":"One interview in full — metadata plus the transcript of what the guest actually said. Read this before summarizing an interview or drafting pages from it: the t"},{"name":"compass_interviews_revoke","description":"Kills an interview's invite link — the guest's next visit sees that the link is no longer active. Use when an invite went to the wrong person, the user changed "},{"name":"compass_inbox_list","description":"The Compass Inbox in one read: finished interviews awaiting review (transcript in, not yet turned into pages), AI-proposed opportunities awaiting accept / dismi"},{"name":"compass_gaps_update","description":"Edits an open question's wording, rationale, or suggested resolution — for sharpening a vague question or fixing one you phrased badly. Closing a gap is compass"},{"name":"compass_statuses_list","description":"The statuses this workspace's changes move through, in board order — the names people use. Each sits in a group: Undecided (TRIAGE), Not started (BACKLOG), In p"},{"name":"compass_opportunities_set_status","description":"Move a change to one of the workspace's statuses, by name (compass_statuses_list has them — e.g. \"In review\"). The old lane keys (NEW / QUALIFYING / BACKLOG / E"},{"name":"compass_workflow_steps","description":"Every step in a WORKFLOW page's steps diagram, in diagram order, with its phase, whether it is itself a workflow (subWorkflowPageId), and who the map says owns,"},{"name":"compass_step_claims_list","description":"Every claim about a WORKFLOW's steps, oldest first: the step (nodeId; null = the workflow as a whole), the role or person (subject), the relation, who says so ("},{"name":"compass_step_claims_propose","description":"Propose claims about who does what in a WORKFLOW, and what each step is done in, from what someone said. Each claim names a step (nodeId from compass_workflow_s"},{"name":"compass_workflow_rollup","description":"Per run and per month: hands-on minutes, waiting minutes, labor cost (hands-on time priced through each role's hourly rate), and hard costs, each as a low–high "},{"name":"compass_workflow_learning","description":"Newest first: steps added to or dropped from the diagram (and by whom), and claims about who does what or what a step takes — said, corrected (with what they re"},{"name":"compass_step_measures_propose","description":"Propose estimates from what someone said, as ranges — people know \"20 minutes to an hour\", not \"37 minutes\"; when they give one number, use it for both ends. Ea"},{"name":"compass_scenario_changes","description":"Changes whose effects reach a WORKFLOW's steps — or any nested workflow's — plus changes anchored to it with no effects yet, each with what it does per step. Pa"},{"name":"compass_change_effects_set","description":"Replace a change's effects: for each step it reaches (workflowPageId + nodeId from compass_workflow_steps — a sub-workflow's steps included), one of eliminate, "},{"name":"compass_transformations_get","description":"What the workflows behind a PRIORITY could become, at five levels (Assist, Automate, Re-form, Invert, Dissolve): for each, whether it fits, is already reached, "},{"name":"compass_priority_steps_find","description":"Reads every mapped workflow against one PRIORITY (or VALUE) and proposes the steps that move it (or where the business lives the value), one marked as what hold"},{"name":"compass_transformations_read","description":"Starts reading the five levels for a PRIORITY in the background (a minute or two). Needs at least one kept step that impacts the priority. A read under way is l"},{"name":"compass_transformations_respond","description":"Records what someone told you about one level of a PRIORITY's current transformations, in their words or a faithful summary: that they already do it, what rules"},{"name":"compass_transformations_make_change","description":"Creates a Change from one level of a priority's transformations, with its step effects and the priority it serves, and starts drafting in Workbench up to three "},{"name":"compass_step_suggestions_list","description":"Your earlier read of a WORKFLOW's steps: for each suggestion, the steps it covers (nodeIds, labels), what could do them (proposal.doer: a flow and its mode, a s"},{"name":"compass_step_suggestions_build","description":"Builds a step suggestion the way Compass's Build button does: makes its change if it isn't one yet, then the thing in Workbench — a flow drafted from the step i"},{"name":"compass_changes_upsert","description":"Create or update up to 100 changes in one call, each matched by `url` — the GitHub issue, Linear or Jira ticket, PR or doc it mirrors. A url already linked to a"},{"name":"comments_list","description":"Lists the comment threads on one workspace entity (open first, then resolved) with authors and timestamps. Read this before weighing in on contested work — the "},{"name":"comments_create","description":"Posts a comment on a workspace entity — a new thread, or a reply when rootId is given. Use it to leave findings where the discussion already lives (an eval resu"},{"name":"comments_resolve","description":"Sets a comment thread's resolved state (rootId = the thread's root comment id). Resolve ONLY when the human asked or the thread's question is demonstrably settl"},{"name":"search_workspace","description":"Finds anything in the workspace in one call — uploaded files (searching the text inside them), folders, Workbench flows, shims, knowledge bases and tasks, Compa"},{"name":"entity_tags_get","description":"Returns the tags on a batch of entities of one kind — the labels galleries organize by. Ids come from the kind's list/get tool or from search_workspace. Use it "},{"name":"entity_tags_browse","description":"Without a tag: every tag in use across the workspace with how many entities carry it, most-used first — the vocabulary the team already organizes by. With a tag"},{"name":"entity_tags_set","description":"Replaces the FULL tag set on one entity (an empty list clears it). Read the current tags with entity_tags_get first and pass the merged list — this is not addit"}],"toolCount":60,"toolsHash":"bfb25fc338925c490c56feb899c8dc67668e9e8bf01f72e43b5fa1ef1f8031f7","serverName":"zerowidth-mcp","capabilities":["tools","resources"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-20T13:28:50.337Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":374,"error":null,"detail":{"tools":[{"name":"search_docs","description":"Search ZeroWidth product documentation. Returns matching pages with title, slug, public URL, and a query-relevant snippet. Use this when the user asks about a Z"},{"name":"get_doc","description":"Fetch the full Markdown body of a specific docs page by its slug. Use this after `search_docs` when the user needs the complete content of a page. No authentica"},{"name":"list_docs","description":"Enumerate all available docs pages, optionally filtered by product (e.g. 'compass', 'legal', 'overview'). Use this to discover what slugs exist before calling `"},{"name":"compass_pages_list","description":"Lists pages in the active workspace's Compass compendium. Optional `type` filter narrows to one node type (WORKFLOW, PERSON, ROLE, SYSTEM, PAIN_POINT, DOCUMENT,"},{"name":"compass_pages_search","description":"Keyword search over page titles, bodies, and tags (case-insensitive substring match), paginated. The fast way to check whether a subject already has a page befo"},{"name":"compass_pages_get","description":"Fetches one Compass page by id, including its full Markdown body, header fields, and any attached Napkin sketches — view an attached sketch's actual drawing wit"},{"name":"compass_pages_create","description":"Creates a typed page in the workspace's Compass compendium. Check `compass_pages_list` first — don't create a page for a subject the map already has; link to it"},{"name":"compass_pages_update","description":"Edits an existing page's title, description, body, tags, header fields, or visibility — use this to FIX what you (or an extraction) got wrong instead of creatin"},{"name":"compass_links_create","description":"Creates a typed, directed edge between two pages — the knowledge graph's connective tissue. Canonical directions: PERSON or ROLE owns WORKFLOW/SYSTEM/PRIORITY, "},{"name":"compass_process_diagram_ensure","description":"Returns the Napkin diagram that holds a WORKFLOW page's steps, creating it when the page has none. If the page body has a ```mermaid block, it moves into the di"},{"name":"compass_page_links_list","description":"All typed edges touching one page, both directions, each hydrated with the other endpoint's page summary. Use this to understand a subject's neighborhood before"},{"name":"compass_interviews_create","description":"Mints a stakeholder-interview invite: a no-account guest link where the person talks to an interviewer agent briefed by your focusPrompt, and the transcript flo"},{"name":"compass_interview_targets","description":"Ranks the PEOPLE the map says know about a page (workflow, system, pain point): `owns` links first, then `involved_in`, then weaker edges. Each target carries c"},{"name":"compass_interview_invite","description":"Emails the guest link for an existing interview, framed as coming from the REQUESTING USER (their name signs it; replies go to them). Author `message` in their "},{"name":"compass_gaps_list","description":"Lists the workspace's open questions — the gap registry: what the map doesn't know yet. Defaults to OPEN gaps. This is where you keep your head — check it befor"},{"name":"compass_gaps_create","description":"Records something you don't yet know — the gap registry is your working memory, so use it liberally while mapping or interviewing. Give one clear question, WHY "},{"name":"compass_gaps_resolve","description":"Closes a gap once you've learned the answer (ANSWERED, with the resolution) or decided it doesn't matter (DISMISSED). Keep the registry honest — resolve gaps as"},{"name":"compass_opportunities_list","description":"The workspace's changes — fixes, chores, new steps, experiments. Each carries `statusName` (the workspace's own word for where it is) and `statusCategory` (TRIA"},{"name":"compass_opportunities_propose","description":"File an AI-PROPOSED opportunity into the workspace's review queue — the scouting verb (the opportunity-scout routine's main move). Unlike compass_opportunities_"},{"name":"compass_opportunities_create","description":"Record a change — a fix, a chore, a new step, or an experiment worth trying. Anchor it to a workflow page when one fits (compass_pages_list); leave unanchored o"},{"name":"compass_opportunities_register_expectation","description":"The honesty mechanism: write what the experiment is expected to change BEFORE evidence exists. Creates a Ledger decision entry and links it to the opportunity —"},{"name":"compass_opportunities_mark_implemented","description":"The measurement window's boundary: when the user says the experiment's change actually shipped / went live / rolled out, record the landing date. Readings befor"},{"name":"compass_map_view","description":"Renders the workspace's visual map to an image and returns it so you can SEE it the way the user does: an isometric drawing where every page is a structure whos"},{"name":"compass_pages_delete","description":"Moves a page to the trash (soft delete — its connections and anchored opportunities go with it, and compass_pages_restore brings the whole set back). Use this t"},{"name":"compass_pages_restore","description":"Puts a trashed page back on the map, together with exactly the connections and opportunities its delete took. Use when the user wants a deleted page back (the p"},{"name":"compass_links_update","description":"Edits an existing edge between two pages: its `kind` (how the two relate), its `note`, and/or when it was true (`validFrom` / `validTo`). Use kind to CORRECT a "},{"name":"compass_links_delete","description":"Deletes one edge from the graph (the pages stay). Use only when a connection was never true — the system isn't used by that workflow, it was recorded by mistake"},{"name":"compass_opportunities_update","description":"Corrects an opportunity's content: label, description, priority, what done means, the 1–5 value / feasibility / risk scores, the owner (a PERSON page), notes, t"},{"name":"compass_opportunities_delete","description":"Removes an opportunity from the pipeline (soft delete). For an AI proposal the user doesn't want, this is the dismiss verb; for a captured experiment that was a"},{"name":"compass_opportunities_accept","description":"The review verb for the Inbox: promotes an AI-PROPOSED opportunity (from compass_opportunities_propose or the opportunity scout) into the workspace's own pipeli"},{"name":"compass_interviews_list","description":"Every stakeholder interview in the workspace, newest first: who was invited, status (INVITED / IN_PROGRESS / COMPLETED), focus, message count, whether the trans"},{"name":"compass_interviews_get","description":"One interview in full — metadata plus the transcript of what the guest actually said. Read this before summarizing an interview or drafting pages from it: the t"},{"name":"compass_interviews_revoke","description":"Kills an interview's invite link — the guest's next visit sees that the link is no longer active. Use when an invite went to the wrong person, the user changed "},{"name":"compass_inbox_list","description":"The Compass Inbox in one read: finished interviews awaiting review (transcript in, not yet turned into pages), AI-proposed opportunities awaiting accept / dismi"},{"name":"compass_gaps_update","description":"Edits an open question's wording, rationale, or suggested resolution — for sharpening a vague question or fixing one you phrased badly. Closing a gap is compass"},{"name":"compass_statuses_list","description":"The statuses this workspace's changes move through, in board order — the names people use. Each sits in a group: Undecided (TRIAGE), Not started (BACKLOG), In p"},{"name":"compass_opportunities_set_status","description":"Move a change to one of the workspace's statuses, by name (compass_statuses_list has them — e.g. \"In review\"). The old lane keys (NEW / QUALIFYING / BACKLOG / E"},{"name":"compass_workflow_steps","description":"Every step in a WORKFLOW page's steps diagram, in diagram order, with its phase, whether it is itself a workflow (subWorkflowPageId), and who the map says owns,"},{"name":"compass_step_claims_list","description":"Every claim about a WORKFLOW's steps, oldest first: the step (nodeId; null = the workflow as a whole), the role or person (subject), the relation, who says so ("},{"name":"compass_step_claims_propose","description":"Propose claims about who does what in a WORKFLOW, and what each step is done in, from what someone said. Each claim names a step (nodeId from compass_workflow_s"},{"name":"compass_workflow_rollup","description":"Per run and per month: hands-on minutes, waiting minutes, labor cost (hands-on time priced through each role's hourly rate), and hard costs, each as a low–high "},{"name":"compass_workflow_learning","description":"Newest first: steps added to or dropped from the diagram (and by whom), and claims about who does what or what a step takes — said, corrected (with what they re"},{"name":"compass_step_measures_propose","description":"Propose estimates from what someone said, as ranges — people know \"20 minutes to an hour\", not \"37 minutes\"; when they give one number, use it for both ends. Ea"},{"name":"compass_scenario_changes","description":"Changes whose effects reach a WORKFLOW's steps — or any nested workflow's — plus changes anchored to it with no effects yet, each with what it does per step. Pa"},{"name":"compass_change_effects_set","description":"Replace a change's effects: for each step it reaches (workflowPageId + nodeId from compass_workflow_steps — a sub-workflow's steps included), one of eliminate, "},{"name":"compass_transformations_get","description":"What the workflows behind a PRIORITY could become, at five levels (Assist, Automate, Re-form, Invert, Dissolve): for each, whether it fits, is already reached, "},{"name":"compass_priority_steps_find","description":"Reads every mapped workflow against one PRIORITY (or VALUE) and proposes the steps that move it (or where the business lives the value), one marked as what hold"},{"name":"compass_transformations_read","description":"Starts reading the five levels for a PRIORITY in the background (a minute or two). Needs at least one kept step that impacts the priority. A read under way is l"},{"name":"compass_transformations_respond","description":"Records what someone told you about one level of a PRIORITY's current transformations, in their words or a faithful summary: that they already do it, what rules"},{"name":"compass_transformations_make_change","description":"Creates a Change from one level of a priority's transformations, with its step effects and the priority it serves, and starts drafting in Workbench up to three "},{"name":"compass_step_suggestions_list","description":"Your earlier read of a WORKFLOW's steps: for each suggestion, the steps it covers (nodeIds, labels), what could do them (proposal.doer: a flow and its mode, a s"},{"name":"compass_step_suggestions_build","description":"Builds a step suggestion the way Compass's Build button does: makes its change if it isn't one yet, then the thing in Workbench — a flow drafted from the step i"},{"name":"compass_changes_upsert","description":"Create or update up to 100 changes in one call, each matched by `url` — the GitHub issue, Linear or Jira ticket, PR or doc it mirrors. A url already linked to a"},{"name":"comments_list","description":"Lists the comment threads on one workspace entity (open first, then resolved) with authors and timestamps. Read this before weighing in on contested work — the "},{"name":"comments_create","description":"Posts a comment on a workspace entity — a new thread, or a reply when rootId is given. Use it to leave findings where the discussion already lives (an eval resu"},{"name":"comments_resolve","description":"Sets a comment thread's resolved state (rootId = the thread's root comment id). Resolve ONLY when the human asked or the thread's question is demonstrably settl"},{"name":"search_workspace","description":"Finds anything in the workspace in one call — uploaded files (searching the text inside them), folders, Workbench flows, shims, knowledge bases and tasks, Compa"},{"name":"entity_tags_get","description":"Returns the tags on a batch of entities of one kind — the labels galleries organize by. Ids come from the kind's list/get tool or from search_workspace. Use it "},{"name":"entity_tags_browse","description":"Without a tag: every tag in use across the workspace with how many entities carry it, most-used first — the vocabulary the team already organizes by. With a tag"},{"name":"entity_tags_set","description":"Replaces the FULL tag set on one entity (an empty list clears it). Read the current tags with entity_tags_get first and pass the merged list — this is not addit"}],"toolCount":60,"toolsHash":"bfb25fc338925c490c56feb899c8dc67668e9e8bf01f72e43b5fa1ef1f8031f7","serverName":"zerowidth-mcp","capabilities":["tools","resources"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}}],"tools":[{"name":"search_docs","description":"Search ZeroWidth product documentation. Returns matching pages with title, slug, public URL, and a query-relevant snippet. Use this when the user asks about a Z"},{"name":"get_doc","description":"Fetch the full Markdown body of a specific docs page by its slug. Use this after `search_docs` when the user needs the complete content of a page. No authentica"},{"name":"list_docs","description":"Enumerate all available docs pages, optionally filtered by product (e.g. 'compass', 'legal', 'overview'). Use this to discover what slugs exist before calling `"},{"name":"compass_pages_list","description":"Lists pages in the active workspace's Compass compendium. Optional `type` filter narrows to one node type (WORKFLOW, PERSON, ROLE, SYSTEM, PAIN_POINT, DOCUMENT,"},{"name":"compass_pages_search","description":"Keyword search over page titles, bodies, and tags (case-insensitive substring match), paginated. The fast way to check whether a subject already has a page befo"},{"name":"compass_pages_get","description":"Fetches one Compass page by id, including its full Markdown body, header fields, and any attached Napkin sketches — view an attached sketch's actual drawing wit"},{"name":"compass_pages_create","description":"Creates a typed page in the workspace's Compass compendium. Check `compass_pages_list` first — don't create a page for a subject the map already has; link to it"},{"name":"compass_pages_update","description":"Edits an existing page's title, description, body, tags, header fields, or visibility — use this to FIX what you (or an extraction) got wrong instead of creatin"},{"name":"compass_links_create","description":"Creates a typed, directed edge between two pages — the knowledge graph's connective tissue. Canonical directions: PERSON or ROLE owns WORKFLOW/SYSTEM/PRIORITY, "},{"name":"compass_process_diagram_ensure","description":"Returns the Napkin diagram that holds a WORKFLOW page's steps, creating it when the page has none. If the page body has a ```mermaid block, it moves into the di"},{"name":"compass_page_links_list","description":"All typed edges touching one page, both directions, each hydrated with the other endpoint's page summary. Use this to understand a subject's neighborhood before"},{"name":"compass_interviews_create","description":"Mints a stakeholder-interview invite: a no-account guest link where the person talks to an interviewer agent briefed by your focusPrompt, and the transcript flo"},{"name":"compass_interview_targets","description":"Ranks the PEOPLE the map says know about a page (workflow, system, pain point): `owns` links first, then `involved_in`, then weaker edges. Each target carries c"},{"name":"compass_interview_invite","description":"Emails the guest link for an existing interview, framed as coming from the REQUESTING USER (their name signs it; replies go to them). Author `message` in their "},{"name":"compass_gaps_list","description":"Lists the workspace's open questions — the gap registry: what the map doesn't know yet. Defaults to OPEN gaps. This is where you keep your head — check it befor"},{"name":"compass_gaps_create","description":"Records something you don't yet know — the gap registry is your working memory, so use it liberally while mapping or interviewing. Give one clear question, WHY "},{"name":"compass_gaps_resolve","description":"Closes a gap once you've learned the answer (ANSWERED, with the resolution) or decided it doesn't matter (DISMISSED). Keep the registry honest — resolve gaps as"},{"name":"compass_opportunities_list","description":"The workspace's changes — fixes, chores, new steps, experiments. Each carries `statusName` (the workspace's own word for where it is) and `statusCategory` (TRIA"},{"name":"compass_opportunities_propose","description":"File an AI-PROPOSED opportunity into the workspace's review queue — the scouting verb (the opportunity-scout routine's main move). Unlike compass_opportunities_"},{"name":"compass_opportunities_create","description":"Record a change — a fix, a chore, a new step, or an experiment worth trying. Anchor it to a workflow page when one fits (compass_pages_list); leave unanchored o"},{"name":"compass_opportunities_register_expectation","description":"The honesty mechanism: write what the experiment is expected to change BEFORE evidence exists. Creates a Ledger decision entry and links it to the opportunity —"},{"name":"compass_opportunities_mark_implemented","description":"The measurement window's boundary: when the user says the experiment's change actually shipped / went live / rolled out, record the landing date. Readings befor"},{"name":"compass_map_view","description":"Renders the workspace's visual map to an image and returns it so you can SEE it the way the user does when they open Map: a transit-style map seen from above. E"},{"name":"compass_pages_delete","description":"Moves a page to the trash (soft delete — its connections and anchored opportunities go with it, and compass_pages_restore brings the whole set back). Use this t"},{"name":"compass_pages_restore","description":"Puts a trashed page back on the map, together with exactly the connections and opportunities its delete took. Use when the user wants a deleted page back (the p"},{"name":"compass_links_update","description":"Edits an existing edge between two pages: its `kind` (how the two relate), its `note`, and/or when it was true (`validFrom` / `validTo`). Use kind to CORRECT a "},{"name":"compass_links_delete","description":"Deletes one edge from the graph (the pages stay). Use only when a connection was never true — the system isn't used by that workflow, it was recorded by mistake"},{"name":"compass_opportunities_update","description":"Corrects an opportunity's content: label, description, priority, what done means, the 1–5 value / feasibility / risk scores, the owner (a PERSON page), notes, t"},{"name":"compass_opportunities_delete","description":"Removes an opportunity from the pipeline (soft delete). For an AI proposal the user doesn't want, this is the dismiss verb; for a captured experiment that was a"},{"name":"compass_opportunities_accept","description":"The review verb for the Inbox: promotes an AI-PROPOSED opportunity (from compass_opportunities_propose or the opportunity scout) into the workspace's own pipeli"},{"name":"compass_interviews_list","description":"Every stakeholder interview in the workspace, newest first: who was invited, status (INVITED / IN_PROGRESS / COMPLETED), focus, message count, whether the trans"},{"name":"compass_interviews_get","description":"One interview in full — metadata plus the transcript of what the guest actually said. Read this before summarizing an interview or drafting pages from it: the t"},{"name":"compass_interviews_revoke","description":"Kills an interview's invite link — the guest's next visit sees that the link is no longer active. Use when an invite went to the wrong person, the user changed "},{"name":"compass_inbox_list","description":"The Compass Inbox in one read: finished interviews awaiting review (transcript in, not yet turned into pages), AI-proposed opportunities awaiting accept / dismi"},{"name":"compass_gaps_update","description":"Edits an open question's wording, rationale, or suggested resolution — for sharpening a vague question or fixing one you phrased badly. Closing a gap is compass"},{"name":"compass_statuses_list","description":"The statuses this workspace's changes move through, in board order — the names people use. Each sits in a group: Undecided (TRIAGE), Not started (BACKLOG), In p"},{"name":"compass_opportunities_set_status","description":"Move a change to one of the workspace's statuses, by name (compass_statuses_list has them — e.g. \"In review\"). The old lane keys (NEW / QUALIFYING / BACKLOG / E"},{"name":"compass_workflow_steps","description":"Every step in a WORKFLOW page's steps diagram, in diagram order, with its phase, whether it is itself a workflow (subWorkflowPageId), and who the map says owns,"},{"name":"compass_step_claims_list","description":"Every claim about a WORKFLOW's steps, oldest first: the step (nodeId; null = the workflow as a whole), the role or person (subject), the relation, who says so ("},{"name":"compass_step_claims_propose","description":"Propose claims about who does what in a WORKFLOW, and what each step is done in, from what someone said. Each claim names a step (nodeId from compass_workflow_s"},{"name":"compass_workflow_rollup","description":"Per run and per month: hands-on minutes, waiting minutes, labor cost (hands-on time priced through each role's hourly rate), and hard costs, each as a low–high "},{"name":"compass_workflow_learning","description":"Newest first: steps added to or dropped from the diagram (and by whom), and claims about who does what or what a step takes — said, corrected (with what they re"},{"name":"compass_step_measures_propose","description":"Propose estimates from what someone said, as ranges — people know \"20 minutes to an hour\", not \"37 minutes\"; when they give one number, use it for both ends. Ea"},{"name":"compass_scenario_changes","description":"Changes whose effects reach a WORKFLOW's steps — or any nested workflow's — plus changes anchored to it with no effects yet, each with what it does per step. Pa"},{"name":"compass_change_effects_set","description":"Replace a change's effects: for each step it reaches (workflowPageId + nodeId from compass_workflow_steps — a sub-workflow's steps included), one of eliminate, "},{"name":"compass_transformations_get","description":"What the workflows behind a PRIORITY could become, at five levels (Assist, Automate, Re-form, Invert, Dissolve): for each, whether it fits, is already reached, "},{"name":"compass_priority_steps_find","description":"Reads every mapped workflow against one PRIORITY (or VALUE) and proposes the steps that move it (or where the business lives the value), one marked as what hold"},{"name":"compass_transformations_read","description":"Starts reading the five levels for a PRIORITY in the background (a minute or two). Needs at least one kept step that impacts the priority. A read under way is l"},{"name":"compass_transformations_respond","description":"Records what someone told you about one level of a PRIORITY's current transformations, in their words or a faithful summary: that they already do it, what rules"},{"name":"compass_transformations_make_change","description":"Creates a Change from one level of a priority's transformations, with its step effects and the priority it serves, and starts drafting in Workbench up to three "},{"name":"compass_step_suggestions_list","description":"Your earlier read of a WORKFLOW's steps: for each suggestion, the steps it covers (nodeIds, labels), what could do them (proposal.doer: a flow and its mode, a s"},{"name":"compass_step_suggestions_build","description":"Builds a step suggestion the way Compass's Build button does: makes its change if it isn't one yet, then the thing in Workbench — a flow drafted from the step i"},{"name":"compass_changes_upsert","description":"Create or update up to 100 changes in one call, each matched by `url` — the GitHub issue, Linear or Jira ticket, PR or doc it mirrors. A url already linked to a"},{"name":"compass_role_story","description":"One ROLE page's story: hands-on hours a month by kind of work (rote, judgment, relationship, sign-off) before its first change or Task landed and now; what land"},{"name":"compass_roles_overview","description":"Every role in the workspace in one row each, changed or not: hours documented against its working month, hours a month saved, saved hours by stage (looking into"},{"name":"comments_list","description":"Lists the comment threads on one workspace entity (open first, then resolved) with authors and timestamps. Read this before weighing in on contested work — the "},{"name":"comments_create","description":"Posts a comment on a workspace entity — a new thread, or a reply when rootId is given. Use it to leave findings where the discussion already lives (an eval resu"},{"name":"comments_resolve","description":"Sets a comment thread's resolved state (rootId = the thread's root comment id). Resolve ONLY when the human asked or the thread's question is demonstrably settl"},{"name":"search_workspace","description":"Finds anything in the workspace in one call — uploaded files (searching the text inside them), folders, Workbench flows, shims, knowledge bases and tasks, Compa"},{"name":"entity_tags_get","description":"Returns the tags on a batch of entities of one kind — the labels galleries organize by. Ids come from the kind's list/get tool or from search_workspace. Use it "},{"name":"entity_tags_browse","description":"Without a tag: every tag in use across the workspace with how many entities carry it, most-used first — the vocabulary the team already organizes by. With a tag"},{"name":"entity_tags_set","description":"Replaces the FULL tag set on one entity (an empty list clears it). Read the current tags with entity_tags_get first and pass the merged list — this is not addit"}],"package":null,"toolSurface":{"id":"ts_6922zbcbybsq","endpointId":"ep_xymycmaxtbc4","hash":"bcb488daed56b37781ea7a2361e6377d7cdd6070ea99acaef015dd2ce5ae784e","toolCount":62,"serverName":"zerowidth-mcp","serverVersion":"1.0.0","protocolVersion":"2025-06-18","firstSeenAt":"2026-10-22T09:28:14.251Z","lastSeenAt":"2026-10-23T05:32:07.968Z","observations":4,"toolNames":["search_docs","get_doc","list_docs","compass_pages_list","compass_pages_search","compass_pages_get","compass_pages_create","compass_pages_update","compass_links_create","compass_process_diagram_ensure","compass_page_links_list","compass_interviews_create","compass_interview_targets","compass_interview_invite","compass_gaps_list","compass_gaps_create","compass_gaps_resolve","compass_opportunities_list","compass_opportunities_propose","compass_opportunities_create","compass_opportunities_register_expectation","compass_opportunities_mark_implemented","compass_map_view","compass_pages_delete","compass_pages_restore","compass_links_update","compass_links_delete","compass_opportunities_update","compass_opportunities_delete","compass_opportunities_accept","compass_interviews_list","compass_interviews_get","compass_interviews_revoke","compass_inbox_list","compass_gaps_update","compass_statuses_list","compass_opportunities_set_status","compass_workflow_steps","compass_step_claims_list","compass_step_claims_propose","compass_workflow_rollup","compass_workflow_learning","compass_step_measures_propose","compass_scenario_changes","compass_change_effects_set","compass_transformations_get","compass_priority_steps_find","compass_transformations_read","compass_transformations_respond","compass_transformations_make_change","compass_step_suggestions_list","compass_step_suggestions_build","compass_changes_upsert","compass_role_story","compass_roles_overview","comments_list","comments_create","comments_resolve","search_workspace","entity_tags_get","entity_tags_browse","entity_tags_set"],"distinctSurfaces":7},"endpointFacts":[{"id":"ep_xymycmaxtbc4","url":"https://api.zerowidth.ai/mcp/x/compass","type":"mcp_streamable_http","factsCheckedAt":"2026-10-21T10:30:57.701Z","auth":{"observedAt":"2026-10-21T10:30:57.883Z","authRequired":false,"scheme":null,"resourceMetadata":null,"authorizationServer":null,"conformance":{"dpop":false,"rfc8414":false,"rfc9728":false,"pkceS256":false,"clientIdMetadataDocument":false,"dynamicClientRegistration":false}},"tls":{"observedAt":"2026-10-21T10:30:57.900Z","protocol":"TLSv1.3","chainValid":true,"chainError":null,"hostMatches":true,"subject":"api.zerowidth.ai","issuer":{"commonName":"WR3","organization":"Google Trust Services"},"validFrom":"2026-09-20T12:44:00.000Z","validTo":"2026-12-19T13:38:14.000Z","daysToExpiry":57,"sanCount":1,"fingerprint256":"F5:D5:C9:D2:D4:FC:C0:C3:A8:31:57:BB:67:B5:17:13:8F:B1:61:A7:9E:54:76:D3:D8:3B:79:50:5E:17:44:FB"}}]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"mcp_registry","key":"ai.zerowidth/compass","url":"https://registry.modelcontextprotocol.io/v0/servers/ai.zerowidth%2Fcompass","firstSeenAt":"2026-10-09T00:19:26.247Z","fetchedAt":"2026-10-21T05:20:11.000Z","normalizedAt":"2026-10-21T05:20:11.000Z"}]},"firstSeenAt":"2026-10-09T00:19:26.247Z","updatedAt":"2026-10-23T05:36:53.035Z"}