accueil / serveurs / Fichiers & Documents / ai.zerowidth/zerowidth
ai.zerowidth/zerowidth
serveur MCP (Model Context Protocol) · zerowidth-mcp 1.0.0
Référencé dans l'annuaire. Seul le pentest comportemental fait foi, et il n'a pas encore été exécuté sur ce serveur.
Est-ce que ai.zerowidth/zerowidth est sûr ?
Au dernier audit MCP Hub, le serveur MCP « ai.zerowidth/zerowidth » est classé « Non encore testé ». Référencé dans l'annuaire. Seul le pentest comportemental fait foi, et il n'a pas encore été exécuté sur ce serveur. Le verdict est réévalué en continu ; consultez la fiche pour l'état à jour.
Méthode : MCP Hub analyse la description de chaque outil (couche 1) et, pour le verdict fort, exécute le serveur dans une micro-VM isolée avec leurres et réseau bloqué (couche 2). On publie des noms et des compteurs, jamais le contenu brut renvoyé par un outil.
Les 289 outils
- caliper_datasets_add_items≈ 814 tokens
Appends items to an existing dataset — use this to grow coverage (new edge cases, scenarios from a completed interview) instead of creating a parallel dataset. Same four shapes as caliper_datasets_create (Q&A, chat, sequence, simulated). Existing items and their ratings are untouched.
Paramètres, retour & exemple (4)
Paramètresitems· array · requis
Items to append (1-100).datasetId· string · requis
Id of the dataset to extend.workspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.approvalId· string · optionnel
Approval id from a prior needs_confirmation response. Omit on the first call.
Exemple d'appel{"name": "caliper_datasets_add_items", "arguments": {"items": [], "datasetId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - caliper_datasets_create≈ 1146 tokens
Creates a dataset of test items — THE FIRST STEP of setting up evaluation for a flow. Four item shapes: Q&A (input + optional expectedOutput, the golden answer); CHAT (messages: the conversation so far as role/content user and assistant messages you write, ending on a user message, + expectedResponse for the next reply; the flow writes only that reply, so every earlier assistant turn stays fixed; THE shape for an agent's conversation, built up by depth: a greeting alone, then two messages, then four, each item testing one more reply with the earlier ones baked in); SEQUENCE (turns: 2-20 scripted user messages the model answers one at a time with its own earlier replies in front of it, + expectedResponse for the final reply, optional expectedBehavior for the whole conversation); SIMULATED (goal + optional persona/disposition/strategy/maxTurns + expectedBehavior; a platform flow plays a person adaptively, Caliper-run evals only; disposition is a preset id like genuine, pressure, confused, impatient, or free text). Use sequences and simulated items for the slow attacks and for real customers with real needs: a model that holds on message one often folds on message ten. Write good inputs from real usage: the Compass pages the flow was built from are the best source of realistic scenarios.
Paramètres, retour & exemple (6)
Paramètresitems· array · requis
Test items (1-100).title· string · requis
Dataset name (2-120 chars).workspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.approvalId· string · optionnel
Approval id from a prior needs_confirmation response. Omit on the first call.visibility· string · optionnel · PRIVATE | WORKSPACE | SHARED
Who can see it: PRIVATE (only the user), WORKSPACE (every member, the default), or SHARED (specific people, granted afterwards). Say 'make it private' → PRIVATE.description· string · optionnel
What this dataset covers.
Exemple d'appel{"name": "caliper_datasets_create", "arguments": {"items": [], "title": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - caliper_datasets_delete≈ 259 tokens
Deletes a dataset. Evals bound to it stop being runnable (their binding shows datasetOk: false), and reviews/specs over its items lose their source — check caliper_evals_list for evals that reference it and say so before proposing. May return `needs_confirmation`.
Paramètres, retour & exemple (3)
ParamètresdatasetId· string · requis
Dataset id, from caliper_datasets_list.workspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.approvalId· string · optionnel
Approval id from a prior needs_confirmation response. Omit on the first call.
Exemple d'appel{"name": "caliper_datasets_delete", "arguments": {"datasetId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - caliper_datasets_generate≈ 967 tokens
Creates a NEW dataset of model-written items — Q&A by default, or scripted sequences / simulated people via `shape` — pass flowId and the generator reads the flow's prompt, mode, and schema to write realistic cases for THAT flow; `description` adds guidance (or stands alone when there's no flow). Use this when the user wants test cases fast and has none; prefer caliper_datasets_create with hand-written items when real scenarios are already in hand (Compass pages, a transcript). This SPENDS workspace inference credit (one generator call), so it sits behind the approval gate: say so and expect `needs_confirmation`. Returns the dataset summary; read the items with caliper_datasets_get and tell the user to review them before trusting an eval built on them.
Paramètres, retour & exemple (13)
Paramètrescount· integer · optionnel
Items to generate, 1-50. Default 10.shape· string · optionnel · qa | sequence | simulated
What each generated item is: `qa` (one input, the default), `sequence` (2-6 scripted user turns the model answers one at a time, with expectedResponse + expectedBehavior), or `simulated` (a person Caliper plays adaptively: goal, persona, disposition, expectedBehavior). outputsMode applies to `qa` only.title· string · requis
Dataset name.flowId· string · optionnel
Workbench flow to generate cases for (from workbench_flows_list). Required unless description is given.presetId· string · optionnel · blank | adversarial | prompt-injection | jailbreak | multilingual
Framing preset. Default `blank`; the others bias every item toward that attack class.workspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.approvalId· string · optionnel
Approval id from a prior needs_confirmation response. Omit on the first call.visibility· string · optionnel · PRIVATE | WORKSPACE | SHARED
Who can see it: PRIVATE (only the user), WORKSPACE (every member, the default), or SHARED (specific people, granted afterwards). Say 'make it private' → PRIVATE.description· string · optionnel
What the target system does / what to cover. Required (≥10 chars) when flowId is omitted; optional guidance otherwise.disposition· string · optionnel
With shape `simulated`: how every generated person behaves — a preset id (genuine, pressure, confused, impatient, vague, non-native) or free text. Omit to let the generator vary it from person to person.outputsMode· string · optionnel · none | expected | captured
What each generated item carries beyond the input: `expected` (golden answers — eval-ready, the default), `none` (inputs only — for a spec others fill in), `captured` (sample answers to rate in a review).expectedStyle· string · optionnel · verbatim | conditions
With outputsMode `expected`: `verbatim` literal reference answers (default) or `conditions` — what a correct answer must do, when there's no single right wording.datasetDescription· string · optionnel
Description stored on the dataset.
Exemple d'appel{"name": "caliper_datasets_generate", "arguments": {"title": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - caliper_datasets_generate_items≈ 733 tokens
Appends model-written items to an EXISTING dataset, in the style of what's already there (existing items are the few-shot examples; the output shape matches theirs unless overridden). Use to widen coverage when the user says 'more like these' or 'add edge cases'; write them by hand with caliper_datasets_add_items when the scenarios are known. SPENDS workspace inference credit, so it sits behind the approval gate — say so. Existing items and their ratings are untouched.
Paramètres, retour & exemple (10)
Paramètrescount· integer · optionnel
Items to add, 1-20. Default 5.shape· string · optionnel · qa | sequence | simulated
What each generated item is: `qa` (one input, the default), `sequence` (2-6 scripted user turns the model answers one at a time, with expectedResponse + expectedBehavior), or `simulated` (a person Caliper plays adaptively: goal, persona, disposition, expectedBehavior). outputsMode applies to `qa` only.datasetId· string · requis
Dataset to extend, from caliper_datasets_list.workspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.approvalId· string · optionnel
Approval id from a prior needs_confirmation response. Omit on the first call.description· string · optionnel
What to bias toward, e.g. 'angry customers', 'ambiguous refund questions'.disposition· string · optionnel
With shape `simulated`: how every generated person behaves — a preset id (genuine, pressure, confused, impatient, vague, non-native) or free text. Omit to let the generator vary it from person to person.outputsMode· string · optionnel · none | expected | captured
What each generated item carries beyond the input: `expected` (golden answers — eval-ready, the default), `none` (inputs only — for a spec others fill in), `captured` (sample answers to rate in a review).anchorItemId· string · optionnel
An item id (from caliper_datasets_get) the new items should resemble most.expectedStyle· string · optionnel · verbatim | conditions
With outputsMode `expected`: `verbatim` literal reference answers (default) or `conditions` — what a correct answer must do, when there's no single right wording.
Exemple d'appel{"name": "caliper_datasets_generate_items", "arguments": {"datasetId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - caliper_datasets_get≈ 320 tokens
One dataset with a page of its items — read this BEFORE editing items (caliper_datasets_update_item needs the item id) and before extending coverage, so you don't add cases that already exist. Items come `limit` at a time (default 25) from `offset`; `total` is the full count. Long fields are cut at ~800 characters with a truncation marker. Get the datasetId from caliper_datasets_list.
Paramètres, retour & exemple (4)
Paramètreslimit· integer · optionnel
Items per page, 1-100. Default 25.offset· integer · optionnel
Items to skip. Default 0.datasetId· string · requis
Dataset id, from caliper_datasets_list.workspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.
Exemple d'appel{"name": "caliper_datasets_get", "arguments": {"datasetId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - caliper_datasets_list≈ 155 tokens
Lists datasets in the active workspace. Returns summaries (id, name, item count); items are not included.
Paramètres, retour & exemple (1)
Paramètresworkspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.
Exemple d'appel{"name": "caliper_datasets_list", "arguments": {"workspace": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - caliper_datasets_remove_item≈ 262 tokens
Drops one item. Ratings and run results keyed to it are orphaned (kept in history, gone from the dataset). A dataset must keep at least one item. May return `needs_confirmation`.
Paramètres, retour & exemple (4)
ParamètresitemId· string · requis
Item id, from caliper_datasets_get.datasetId· string · requis
Dataset id.workspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.approvalId· string · optionnel
Approval id from a prior needs_confirmation response. Omit on the first call.
Exemple d'appel{"name": "caliper_datasets_remove_item", "arguments": {"itemId": "texte", "datasetId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - caliper_datasets_update≈ 386 tokens
Changes a dataset's title, description, or visibility. Pass only what changes; items are untouched (use caliper_datasets_add_items / caliper_datasets_update_item / caliper_datasets_remove_item for those). May return `needs_confirmation`.
Paramètres, retour & exemple (6)
Paramètrestitle· string · optionnel
New name.datasetId· string · requis
Dataset id, from caliper_datasets_list.workspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.approvalId· string · optionnel
Approval id from a prior needs_confirmation response. Omit on the first call.visibility· string · optionnel · PRIVATE | WORKSPACE | SHARED
Who can see it: PRIVATE (only the user), WORKSPACE (every member, the default), or SHARED (specific people, granted afterwards). Say 'make it private' → PRIVATE.description· ? · optionnel
New description; null clears it.
Exemple d'appel{"name": "caliper_datasets_update", "arguments": {"datasetId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - caliper_datasets_update_item≈ 858 tokens
Rewrites one item's content, keeping its id (ratings and eval results keyed to it stay attached). The item's KIND can't change — a Q&A item stays Q&A, a chat item stays chat, a sequence stays a sequence — so pass the same shape you read from caliper_datasets_get. Raw items, and chat items captured with tool calls in them, can't be edited from here. May return `needs_confirmation`.
Paramètres, retour & exemple (5)
Paramètresitem· object · requis
The full replacement item, same four shapes as caliper_datasets_create.itemId· string · requis
Item id, from caliper_datasets_get.datasetId· string · requis
Dataset id.workspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.approvalId· string · optionnel
Approval id from a prior needs_confirmation response. Omit on the first call.
Exemple d'appel{"name": "caliper_datasets_update_item", "arguments": {"item": {}, "itemId": "texte", "datasetId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - caliper_evals_create≈ 785 tokens
Binds a dataset + rubric to something under test as a repeatable eval — THE LAST SETUP STEP before scoring. Two targets: a Workbench flow (pass flowId; Caliper runs inference itself, then caliper_evals_run scores it), or 'external' (target: 'external'; the user's own model runs elsewhere and their script submits outputs through the public API, usually from CI — see the docs guide 'Run evals in CI'). For an external eval, hand back the eval id and tell the user to create a workspace API key with the ci_evals preset in their workspace settings; keys can't be minted from here. flowStage 'draft' evals the live draft (pre-publish); 'published' (default) evals the latest published revision at run time, or one pinned with flowRevisionId. Reuse an existing rubric from caliper_rubrics_list when one already scores this job.
Paramètres, retour & exemple (13)
Paramètrestitle· string · requis
Eval name (2-120 chars).flowId· string · optionnel
Workbench flow id to evaluate. Required unless target is 'external'.target· string · optionnel · workbench_flow | external
'workbench_flow' (default; needs flowId) or 'external' (the user's own model; outputs arrive through the public API).rubricId· string · requis
Rubric the judge scores with.datasetId· string · requis
Dataset of test items.flowStage· string · optionnel · draft | published
Which stage to run against. Use 'draft' while iterating pre-publish. Default 'published'.workspace· string · optionnel
Workspace slug override.approvalId· string · optionnel
Approval id from a prior needs_confirmation response. Omit on the first call.scenarioId· string · optionnel
Workbench-flow evals: run every item as this scenario (one of the flow's, from workbench_flows_scenarios_list), so the flow's variables hold that person's values. A run can pick another with caliper_evals_run's scenarioId. Without one, variables run empty unless an item sets them.visibility· string · optionnel · PRIVATE | WORKSPACE | SHARED
Who can see it: PRIVATE (only the user), WORKSPACE (every member, the default), or SHARED (specific people, granted afterwards). Say 'make it private' → PRIVATE.description· string · optionnelexternalLabel· string · optionnel
External evals only: what produces the outputs, e.g. 'CI' or 'prod pipeline'. Free text, shown on the eval.flowRevisionId· string · optionnel
Published-stage evals only: pin to one published revision (id from workbench_flows_revisions_list). Omit to always eval the latest published version at run time.
Exemple d'appel{"name": "caliper_evals_create", "arguments": {"title": "texte", "rubricId": "texte", "datasetId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - caliper_evals_delete≈ 220 tokens
Deletes an eval and stops its schedule. Run history is kept but no longer reachable from the eval. May return `needs_confirmation`.
Paramètres, retour & exemple (3)
ParamètresevalId· string · requis
Eval id, from caliper_evals_list.workspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.approvalId· string · optionnel
Approval id from a prior needs_confirmation response. Omit on the first call.
Exemple d'appel{"name": "caliper_evals_delete", "arguments": {"evalId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - caliper_evals_get≈ 255 tokens
One eval: what it targets (Workbench flow + stage, or external), its dataset and rubric ids, the rubric criteria it scores with (the snapshot taken at creation), schedule + runOnPublish + regression settings, run counts, latest score, and `binding` health (datasetOk / flowOk false = a run would fail at resolution — say so before proposing caliper_evals_run). Get the evalId from caliper_evals_list or caliper_flow_performance.
Paramètres, retour & exemple (2)
ParamètresevalId· string · requis
Eval id.workspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.
Exemple d'appel{"name": "caliper_evals_get", "arguments": {"evalId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - caliper_evals_list≈ 165 tokens
Lists evals in the active workspace with their target config (which Workbench flow, which dataset/rubric). Use to find the evalId for caliper_evals_run.
Paramètres, retour & exemple (1)
Paramètresworkspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.
Exemple d'appel{"name": "caliper_evals_list", "arguments": {"workspace": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - caliper_evals_run≈ 417 tokens
Queues a new run of an eval — inference over the dataset, then LLM-judge scoring. THE VERIFY STEP of the improvement loop: after an approved workbench_flows_edit_text, run the eval again and report the score delta vs the previous run. Runs take a while — but you're brought back into THIS conversation automatically with the scores the moment it finishes, so tell the user it's queued and that you'll follow up here; never poll or ask them to check back. Costs workspace LLM budget, so it sits behind the approval gate: may return `needs_confirmation`.
Paramètres, retour & exemple (5)
Paramètreslabel· string · optionnel
Short label for the run, e.g. 'after refund-policy fix'.evalId· string · requis
Eval to run.workspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.approvalId· string · optionnel
Approval id from a prior needs_confirmation envelope.scenarioId· ? · optionnel
Run as this scenario instead of the eval's own (one of the flow's, from workbench_flows_scenarios_list); null runs with none. Omit to use the eval's. Running the same eval as two scenarios compares how the flow does for each person.
Exemple d'appel{"name": "caliper_evals_run", "arguments": {"evalId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - caliper_evals_runs_cancel≈ 319 tokens
Stops a run that is still PENDING / RUNNING / SCORING — the brake on a run that's spending more than expected or was started by mistake. The queue stops at once; an item already handed to the flow finishes on its own timeout. The run settles as FAILED with a 'cancelled' reason and keeps the items it completed. A run that already finished returns run_not_live. May return `needs_confirmation`.
Paramètres, retour & exemple (4)
ParamètresrunId· string · requis
Run id, from caliper_evals_run or caliper_evals_runs_list.evalId· string · requis
Eval the run belongs to.workspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.approvalId· string · optionnel
Approval id from a prior needs_confirmation response. Omit on the first call.
Exemple d'appel{"name": "caliper_evals_runs_cancel", "arguments": {"runId": "texte", "evalId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - caliper_evals_runs_get≈ 412 tokens
One run: status, overall score, and by default the ten lowest-scoring items with their per-criterion scores and the judge's reasoning (`items: all` for every item, `none` for totals only). THE ANSWER to 'why did the score drop' — read this, then name the criterion that slipped and quote the reasoning on the lowest items. Works for runs Caliper ran and for runs submitted from CI (triggeredBy 'ci', usually labeled with a pull request number). Still no polling loops; read it when the user asks.
Paramètres, retour & exemple (5)
Paramètresitems· string · optionnel · worst | all | none
Which items to include. `worst` (default) = the lowest-scoring `limit` items, the ones that explain a drop; `all` = every item (large); `none` = the run's totals only.limit· integer · optionnel
How many items for `worst`, default 10.runId· string · requis
Run id, from caliper_evals_runs_list or caliper_evals_run.evalId· string · requis
Eval the run belongs to.workspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.
Exemple d'appel{"name": "caliper_evals_runs_get", "arguments": {"runId": "texte", "evalId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - caliper_evals_runs_item_execution≈ 372 tokens
What the flow actually DID on one run item: every step in order (what it said, which tools it called with what arguments, what came back) and the final answer, plus status, duration, and cost. Read this when a low score needs explaining beyond the judge's reasoning — a wrong tool call or an empty tool result is usually the cause, and the fix is different from a prompt fix. Pass the run item's `id` (NOT `itemId`) from caliper_evals_runs_get. Items whose outputs were supplied from outside (external evals) have no trace and return not_found. Steps are capped for transport; the run page in Caliper has the full record.
Paramètres, retour & exemple (4)
ParamètresrunId· string · requis
Run id.evalId· string · requis
Eval the run belongs to.runItemId· string · requis
The run item's `id` from caliper_evals_runs_get (not its dataset itemId).workspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.
Exemple d'appel{"name": "caliper_evals_runs_item_execution", "arguments": {"runId": "texte", "evalId": "texte", "runItemId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - caliper_evals_runs_list≈ 256 tokens
Recent runs for one eval, newest first: status (PENDING/RUNNING/SCORING/DONE/FAILED), overall score once DONE, label, and timestamps. THE CHECK-BACK for caliper_evals_run: when the user asks how the run went, read this — cite the run id and score, and compare against the PREVIOUS run's score for the delta. Still don't poll in a loop; check when the user asks or when reporting.
Paramètres, retour & exemple (2)
ParamètresevalId· string · requis
Eval whose runs to list.workspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.
Exemple d'appel{"name": "caliper_evals_runs_list", "arguments": {"evalId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - caliper_evals_update≈ 782 tokens
Changes an eval's title, description, visibility, schedule (interval + time anchor), runOnPublish (queue a run whenever the flow publishes), regressionThreshold (score drop vs the previous run that triggers an alert; null = off), or scenarioId (the scenario runs use). Pass only what changes. The dataset, rubric snapshot, and target are fixed at creation — create a new eval to change those. Scheduled and on-publish runs spend credit on their own, so state that plainly when turning them on. May return `needs_confirmation`.
Paramètres, retour & exemple (13)
Paramètrestitle· string · optionnel
New name.evalId· string · requis
Eval id, from caliper_evals_list.workspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.approvalId· string · optionnel
Approval id from a prior needs_confirmation response. Omit on the first call.scenarioId· ? · optionnel
Workbench-flow evals: the scenario every run uses unless a run picks another (one of the flow's, from workbench_flows_scenarios_list); null clears it.visibility· string · optionnel · PRIVATE | WORKSPACE | SHARED
Who can see it: PRIVATE (only the user), WORKSPACE (every member, the default), or SHARED (specific people, granted afterwards). Say 'make it private' → PRIVATE.description· ? · optionnel
New description; null clears it.runOnPublish· boolean · optionnel
Run whenever the targeted flow publishes a version.scheduleTime· ? · optionnel
Daily/weekly anchor, HH:MM 24-hour in scheduleTimezone. Null = one interval from now.scheduleInterval· ? · optionnel
Run cadence; null clears the schedule. Each scheduled run spends credit — say so.scheduleTimezone· ? · optionnel
IANA timezone for scheduleTime, e.g. America/Chicago.scheduleDayOfWeek· ? · optionnel
Weekly only: 0 = Sunday … 6 = Saturday.regressionThreshold· ? · optionnel
Score drop vs the previous run that raises an alert, on the 0–1 score scale (0.1 = 10 points); null turns alerts off.
Exemple d'appel{"name": "caliper_evals_update", "arguments": {"evalId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - caliper_flow_performance≈ 306 tokens
How a Workbench flow is ACTUALLY doing, with receipts: every Caliper eval targeting the flow, recent runs with scores, the latest run decomposed into per-criterion averages, the score delta vs the previous run, and the worst-scoring items WITH the judge's reasoning. Use this BEFORE claiming a flow works or proposing changes — and cite the runId + scores when you do. The worst items are diagnostic: failures clustered around missing company facts suggest a knowledge gap (consider proposing a Compass interview with the workflow owner) rather than a prompt problem.
Paramètres, retour & exemple (2)
ParamètresflowId· string · requis
Workbench flow id to report on.workspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.
Exemple d'appel{"name": "caliper_flow_performance", "arguments": {"flowId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - caliper_rubrics_create≈ 640 tokens
Creates the scoring rubric an eval's LLM judge uses — 1-10 criteria, each scored on a numeric scale (default 1-5), judged pass/fail (kind pass_fail), or checked in code with no judge (kind check: contains, not_contains, matches a regex, valid_json, max_chars, equals_expected). Write criteria about the FLOW'S JOB (accuracy to source material, tone, refusal behavior), not generic 'quality'.
Paramètres, retour & exemple (6)
Paramètrestitle· string · requis
Rubric name (2-120 chars).criteria· array · requisworkspace· string · optionnel
Workspace slug override.approvalId· string · optionnel
Approval id from a prior needs_confirmation response. Omit on the first call.visibility· string · optionnel · PRIVATE | WORKSPACE | SHARED
Who can see it: PRIVATE (only the user), WORKSPACE (every member, the default), or SHARED (specific people, granted afterwards). Say 'make it private' → PRIVATE.description· string · optionnel
Exemple d'appel{"name": "caliper_rubrics_create", "arguments": {"title": "texte", "criteria": []}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - caliper_rubrics_delete≈ 226 tokens
Deletes a rubric. Existing evals keep their snapshot of it and keep running; nothing new can bind to it. May return `needs_confirmation`.
Paramètres, retour & exemple (3)
ParamètresrubricId· string · requis
Rubric id, from caliper_rubrics_list.workspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.approvalId· string · optionnel
Approval id from a prior needs_confirmation response. Omit on the first call.
Exemple d'appel{"name": "caliper_rubrics_delete", "arguments": {"rubricId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - caliper_rubrics_get≈ 229 tokens
One rubric with its criteria — each criterion's name, what the judge looks for, and the score scale. Read this to explain a score (which criterion slipped and what it asks for) or before caliper_rubrics_update. Get the rubricId from caliper_rubrics_list or an eval's rubricId.
Paramètres, retour & exemple (2)
ParamètresrubricId· string · requis
Rubric id.workspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.
Exemple d'appel{"name": "caliper_rubrics_get", "arguments": {"rubricId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - caliper_rubrics_list≈ 196 tokens
Lists the rubrics in the active workspace (id, name, description, criterion count). Check here BEFORE caliper_rubrics_create — reuse an existing rubric's id in caliper_evals_create when one already scores the same job. Read a rubric's criteria with caliper_rubrics_get.
Paramètres, retour & exemple (1)
Paramètresworkspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.
Exemple d'appel{"name": "caliper_rubrics_list", "arguments": {"workspace": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - caliper_rubrics_update≈ 732 tokens
Changes a rubric's title, description, visibility, or replaces its criteria wholesale (pass the FULL list — criteria get fresh ids). Evals snapshot the rubric when they're created, so an existing eval keeps scoring with the criteria it started with; say so, and offer to create a new eval when the criteria change materially. May return `needs_confirmation`.
Paramètres, retour & exemple (7)
Paramètrestitle· string · optionnel
New name.criteria· array · optionnel
Replacement criteria (1-10) — the whole list, not a diff.rubricId· string · requis
Rubric id, from caliper_rubrics_list.workspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.approvalId· string · optionnel
Approval id from a prior needs_confirmation response. Omit on the first call.visibility· string · optionnel · PRIVATE | WORKSPACE | SHARED
Who can see it: PRIVATE (only the user), WORKSPACE (every member, the default), or SHARED (specific people, granted afterwards). Say 'make it private' → PRIVATE.description· ? · optionnel
New description; null clears it.
Exemple d'appel{"name": "caliper_rubrics_update", "arguments": {"rubricId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - caliper_source_feeds_list≈ 220 tokens
Datasets this source keeps adding to as conversations arrive: which dataset, for what (review, eval, spec), the pick it matches, sampling, how many have landed, and whether it's still running or why it stopped.
Paramètres, retour & exemple (2)
ParamètressourceId· string · requis
Source id, from caliper_sources_list or search_workspace.workspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.
Exemple d'appel{"name": "caliper_source_feeds_list", "arguments": {"sourceId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - caliper_source_feeds_stop≈ 264 tokens
Stops a source from adding new conversations to a dataset. What it already added stays. Get the feedId from caliper_source_feeds_list. May return `needs_confirmation`.
Paramètres, retour & exemple (4)
ParamètresfeedId· string · requis
Live dataset id, from caliper_source_feeds_list.sourceId· string · requis
Source id, from caliper_sources_list or search_workspace.workspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.approvalId· string · optionnel
Approval id from a prior needs_confirmation response. Omit on the first call.
Exemple d'appel{"name": "caliper_source_feeds_stop", "arguments": {"feedId": "texte", "sourceId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - caliper_sources_list≈ 222 tokens
Apps sending their agent's traces to Caliper — from their own code, OpenTelemetry, or a published Workbench flow — busiest first: name, how it sends, traces in the last 14 days (per day), and the tools its agent calls most with the share of traces using each. Start here when the user asks how their agent behaves on real traffic; then caliper_sources_over_time for one source.
Paramètres, retour & exemple (1)
Paramètresworkspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.
Exemple d'appel{"name": "caliper_sources_list", "arguments": {"workspace": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - caliper_sources_over_time≈ 323 tokens
One source day by day: traces, failures, tool calls, lookups that found nothing, tokens, cost, and speed (meanMs; p50/p95 as 'answered within' bucket edges); each tool with its calls and the share of each day's traces that used it; the documents lookups landed on most; models used. Use it to answer 'how often is it calling web search and is that changing' — compare the first and last weeks and name the day it moved. Follow with caliper_traces_list on that day or tool to show the conversations behind it.
Paramètres, retour & exemple (3)
Paramètresdays· integer · optionnel
How many days back, default 30.sourceId· string · requis
Source id, from caliper_sources_list or search_workspace.workspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.
Exemple d'appel{"name": "caliper_sources_over_time", "arguments": {"sourceId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - caliper_sources_to_dataset≈ 618 tokens
Saves the conversations behind a pick (a day, a tool, a document, failures — the same narrowing as caliper_traces_list) into a new dataset (newDatasetName) or an existing one (datasetId), newest first up to `limit`. `purpose` decides what each item keeps: review = the agent's reply, tool calls included, for people to rate; eval = the reply becomes the expected answer; spec = only the questions, for people to answer. Set keepAdding to make it live: new matching conversations keep arriving (every one, or 1 in 10 / 1 in 100), up to 1,000. Then offer the next step — caliper_evals_create, or a review in Caliper. May return `needs_confirmation`.
Paramètres, retour & exemple (12)
Paramètresday· string · optionnel
One UTC day, YYYY-MM-DD.tool· string · optionnel
Only traces that called this tool.limit· integer · optionnel
Most recent N, default 100.purpose· string · requis · review | eval | spec
review | eval | spec.document· string · optionnel
Only traces whose lookups hit this document.sourceId· string · requis
Source id, from caliper_sources_list or search_workspace.datasetId· string · optionnel
Add to this dataset…workspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.approvalId· string · optionnel
Approval id from a prior needs_confirmation response. Omit on the first call.errorsOnly· boolean · optionnel
Only failed traces.keepAdding· ? · optionnel
Keep adding new matches as they arrive, taking one in this many (1 = every one).newDatasetName· string · optionnel
…or start one with this name.
Exemple d'appel{"name": "caliper_sources_to_dataset", "arguments": {"purpose": "review", "sourceId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - caliper_starters_install≈ 262 tokens
Copies one starter into the workspace as a new dataset and a new rubric the user owns and can edit. Returns both ids; the next step is caliper_evals_create binding them to the flow (or target 'external'). Needs caliper:datasets:write and caliper:evals:write.
Paramètres, retour & exemple (3)
Paramètresslug· string · requis · prompt-injection | system-prompt-leaking | over-refusal | personal-data | bias-under-ambiguity
Starter slug from caliper_starters_list.workspace· string · optionnel
Workspace slug override.approvalId· string · optionnel
Approval id from a prior needs_confirmation response. Omit on the first call.
Exemple d'appel{"name": "caliper_starters_install", "arguments": {"slug": "prompt-injection"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - caliper_starters_list≈ 236 tokens
The starter sets Caliper ships: prompt injection, system-prompt leaking, over-refusal, personal-data handling, bias under ambiguity. Each is a small original dataset (single messages AND multi-turn build-ups: false memory, fabricated earlier turns, slow escalation) paired with an anchored rubric. Suggest one when a user wants to check an assistant for these and has no cases yet; install with caliper_starters_install. Say plainly that a starter is a smoke test (the items are public), not a safety score — their own cases are where the real signal is.
Paramètres, retour & exemple (0)
Exemple d'appel{"name": "caliper_starters_list", "arguments": {}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - caliper_traces_get≈ 266 tokens
One trace: what came in, what went out, and every step in order — model calls (model, tokens, cost, reasoning), tool calls (arguments and result), lookups (query and documents with scores), anything else — each with timing and status. Long values are cut at 2,000 characters. Use it to explain why one conversation went the way it did.
Paramètres, retour & exemple (3)
ParamètrestraceId· string · requis
Trace id, from caliper_traces_list.sourceId· string · requis
Source id, from caliper_sources_list or search_workspace.workspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.
Exemple d'appel{"name": "caliper_traces_get", "arguments": {"traceId": "texte", "sourceId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - caliper_traces_list≈ 350 tokens
The traces behind a point on a source's chart, newest first, 50 a page: the question and answer (cut short), tools called, time, tokens, cost, status. Narrow by day, tool, document, or failures; page with `before` (the nextBefore from the last page). Open one with caliper_traces_get.
Paramètres, retour & exemple (7)
Paramètresday· string · optionnel
One UTC day, YYYY-MM-DD.tool· string · optionnel
Only traces that called this tool.before· string · optionnel
Paging: the nextBefore from the previous page.document· string · optionnel
Only traces whose lookups hit this document.sourceId· string · requis
Source id, from caliper_sources_list or search_workspace.workspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.errorsOnly· boolean · optionnel
Only failed traces.
Exemple d'appel{"name": "caliper_traces_list", "arguments": {"sourceId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - comments_create≈ 409 tokens
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 result on the flow being debated, a summary on a long thread). Mention people via mentionedUserIds (from workspace member ids) to ring their notification bell; never mention someone who didn't ask to be pulled in.
Paramètres, retour & exemple (7)
Paramètresbody· string · requisrootId· string · optionnel
Reply into this thread; omit to start a new one.entityId· string · requisworkspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.approvalId· string · optionnelentityKind· string · requis · workbench_flow | compass_page | compass_opportunity | caliper_review | caliper_dataset | caliper_rubric | caliper_eval | caliper_spec
What the thread hangs on.mentionedUserIds· array · optionnel
Exemple d'appel{"name": "comments_create", "arguments": {"body": "texte", "entityId": "texte", "entityKind": "workbench_flow"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - comments_list≈ 306 tokens
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 threads are where disagreement lives before it becomes a decision.
Paramètres, retour & exemple (3)
ParamètresentityId· string · requisworkspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.entityKind· string · requis · workbench_flow | compass_page | compass_opportunity | caliper_review | caliper_dataset | caliper_rubric | caliper_eval | caliper_spec
What the thread hangs on.
Exemple d'appel{"name": "comments_list", "arguments": {"entityId": "texte", "entityKind": "workbench_flow"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - comments_resolve≈ 231 tokens
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 settled — and say what settled it in a reply first. Reopening is for new evidence.
Paramètres, retour & exemple (4)
ParamètresrootId· string · requisresolved· boolean · requisworkspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.approvalId· string · optionnel
Exemple d'appel{"name": "comments_resolve", "arguments": {"rootId": "texte", "resolved": true}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - compass_change_effects_set≈ 548 tokens
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, automate (reviewMinutes: what a person still spends checking), parallelize (its wait comes off the critical path), relax_gate (keepShare: share of the wait left, default 0.25), assist (keepShare: share of hands-on time left, default 0.5), reassign (toSubjectPageId). Eliminating or automating every step of a sub-workflow collapses the step that is that sub-workflow. Then project with compass_workflow_rollup changeIds. May return `needs_confirmation`.
Paramètres, retour & exemple (4)
Paramètreseffects· array · requisworkspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.approvalId· string · optionnel
Approval id from a prior needs_confirmation response, after the user has approved. Omit on the first call.opportunityId· string · requis
The change's key (e.g. ACME-12) or id.
Exemple d'appel{"name": "compass_change_effects_set", "arguments": {"effects": [], "opportunityId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - compass_changes_upsert≈ 531 tokens
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 change updates that change (label, description, status, tags, experiment, workflow — omitted fields are left alone); any other url creates a change with that link. Run it again with the same urls to keep Compass in step; nothing duplicates. Statuses are by name (compass_statuses_list). Returns one result per item — created / updated with the change's key, or failed with why; a failed item doesn't stop the rest. Summarize what you're about to bring in before calling. May return `needs_confirmation` — one approval covers the whole batch.
Paramètres, retour & exemple (3)
Paramètresitems· array · requisworkspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.approvalId· string · optionnel
Approval id from a prior needs_confirmation response, after the user has approved.
Exemple d'appel{"name": "compass_changes_upsert", "arguments": {"items": []}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - compass_gaps_create≈ 383 tokens
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 it matters (what answering it unblocks), and how you'd resolve it (ask the user / interview a specific person / connect a source). No approval needed — noting your own uncertainty isn't acting on the user's behalf. Attach it to a subject (subjectType/subjectId) when it's ABOUT a specific page or person.
Paramètres, retour & exemple (6)
Paramètresquestion· string · requis
The open question, plainly ('Who approves refunds over $500?').rationale· string · optionnel
Why it matters / what answering it unblocks.subjectId· string · optionnel
Id of the subject.workspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.subjectType· string · optionnel
What it's about, e.g. compass_page.suggestedResolution· string · optionnel
How to resolve it: 'ask the user', 'interview Dana', 'connect Drive'.
Exemple d'appel{"name": "compass_gaps_create", "arguments": {"question": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - compass_gaps_list≈ 290 tokens
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 before asking the user something you may already have flagged, and compose interview briefs from a subject's open questions.
Paramètres, retour & exemple (4)
Paramètresstatus· string · optionnel · OPEN | INTERVIEW_SENT | ANSWERED | DISMISSED
Filter by lifecycle stage. Default OPEN.subjectId· string · optionnel
Only gaps ABOUT this subject id.workspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.subjectType· string · optionnel
Only gaps ABOUT this subject type (e.g. compass_page).
Exemple d'appel{"name": "compass_gaps_list", "arguments": {"status": "OPEN", "subjectId": "texte", "workspace": "texte", "subjectType": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - compass_gaps_resolve≈ 346 tokens
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 their answers land (from an interview, a doc, or the user) so it always reflects what's still unknown. Gaps you raised close without a card; a question a person wrote needs their approval.
Paramètres, retour & exemple (5)
ParamètresgapId· string · requis
Id of the gap (from compass_gaps_list).status· string · requis · ANSWERED | DISMISSED
ANSWERED (you learned it) or DISMISSED (irrelevant).workspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.approvalId· string · optionnel
Re-call with the approvalId from a needs_confirmation response after the user approves.resolution· string · optionnel
The answer / note, when marking ANSWERED.
Exemple d'appel{"name": "compass_gaps_resolve", "arguments": {"gapId": "texte", "status": "ANSWERED"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - compass_gaps_update≈ 343 tokens
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_gaps_resolve, not this. Gap ids come from compass_gaps_list. May return `needs_confirmation`.
Paramètres, retour & exemple (6)
ParamètresgapId· string · requis
Id of the gap (from compass_gaps_list).question· string · optionnel
New wording of the question.rationale· string · optionnel
Why it matters / what answering it unblocks.workspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.approvalId· string · optionnel
Approval id from a prior needs_confirmation response, after the user has approved. Omit on the first call.suggestedResolution· string · optionnel
How to resolve it: 'ask the user', 'interview Dana', 'connect Drive'.
Exemple d'appel{"name": "compass_gaps_update", "arguments": {"gapId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - compass_inbox_list≈ 364 tokens
The Compass Inbox in one read: finished interviews awaiting review (transcript in, not yet turned into pages), AI-proposed opportunities awaiting accept / dismiss, and the caller's pending approval cards for Compass writes. THE place to answer 'what needs me?' for the map. Also `fillIn`: what the map is missing to say who's responsible for what (priorities with no owner, business units with no lead, people and roles in no unit, priorities with no workflow behind them); not counted in `total`. Next moves: compass_interviews_get to read a transcript, then propose pages from it with compass_pages_create; compass_opportunities_accept or compass_opportunities_delete for a proposal. For fillIn, ask the user who owns or leads it, or which unit someone sits in, then compass_links_create with kind owns (person or role → priority or unit) or part_of (person, role or unit → unit); never guess an owner.
Paramètres, retour & exemple (1)
Paramètresworkspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.
Exemple d'appel{"name": "compass_inbox_list", "arguments": {"workspace": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - compass_interview_invite≈ 428 tokens
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 voice — short, human, says why THEIR knowledge matters and that it takes ~15 minutes, no account needed. The approval card shows the exact subject + message before anything sends. Limit: the invite plus ONE reminder; a third ask is the user's conversation to have. Completion arrives as a notification with draft-page counts — don't poll.
Paramètres, retour & exemple (6)
Paramètresemail· string · requis
The interviewee's email address.message· string · requis
The body, written in the requesting user's voice. Greeting + link + signature are added automatically — write only the middle.subject· string · requis
Email subject, e.g. '15 minutes on how refunds actually work?'workspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.approvalId· string · optionnel
Approval id from a prior needs_confirmation response, after the user has approved. Omit on the first call.interviewId· string · requis
Interview id from compass_interviews_create.
Exemple d'appel{"name": "compass_interview_invite", "arguments": {"email": "texte", "message": "texte", "subject": "texte", "interviewId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - compass_interview_targets≈ 292 tokens
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 contact email + role from their PERSON page and their latest interview (skip someone who just gave one — interview fatigue is real). Empty result = the map doesn't know an owner: ASK THE USER who runs this, create the PERSON page + owns link from the answer, and the map gets smarter. Use before compass_interviews_create to pick the interviewee.
Paramètres, retour & exemple (2)
ParamètrespageId· string · requis
The page the knowledge gap is about.workspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.
Exemple d'appel{"name": "compass_interview_targets", "arguments": {"pageId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - compass_interviews_create≈ 664 tokens
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 flows back into Compass as reviewable draft pages. THE KNOWLEDGE-GAP MOVE: when caliper_flow_performance shows failures clustered on missing company facts (the judge says the flow invented a policy, missed a rule, didn't know who owns something), the fix is usually not a prompt edit — it's asking the human who actually knows. Write a focusPrompt that names the SPECIFIC gaps (cite the eval run id), pick the owner of the relevant workflow as interviewee when the map knows one, and hand the user the invite link to forward. May return `needs_confirmation` — tell the user who you want to interview and why, then wait.
Paramètres, retour & exemple (7)
Paramètresanonymous· boolean · optionnel
The guest is told it's anonymous and never asked who they are; no name or email is kept, so leave intervieweeName and intervieweeEmail out, and the link isn't emailed from here. Use when the user asks for anonymous interviews.workspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.approvalId· string · optionnel
Approval id from a prior needs_confirmation response, after the user has approved. Omit on the first call.focusPrompt· string · requis
The interviewer's aim (≤2000 chars), never shown to the guest: why the team is asking, in one sentence; 2–3 things to come away knowing, each describable from experience (who does a step, what happens when it goes wrong, how long it waits, why a check exists), aimed at what the map doesn't know; and what the answers feed. No opinion or preference questions.contextPageIds· array · optionnel
Compass page ids the interviewer gets as briefing context (e.g. the workflow page whose flow underperformed).intervieweeName· string · optionnel
Who this invite is for, when known.intervieweeEmail· string · optionnel
Their email, when known — enables compass_interview_invite to send the link directly (with approval).
Exemple d'appel{"name": "compass_interviews_create", "arguments": {"focusPrompt": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - compass_interviews_get≈ 258 tokens
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 transcript is the source you work from, and your compass skill has the rules for typing and splitting what's in it. Ids come from compass_interviews_list or compass_inbox_list.
Paramètres, retour & exemple (2)
Paramètresworkspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.interviewId· string · requis
Interview id (from compass_interviews_list).
Exemple d'appel{"name": "compass_interviews_get", "arguments": {"interviewId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - compass_interviews_list≈ 235 tokens
Every stakeholder interview in the workspace, newest first: who was invited, status (INVITED / IN_PROGRESS / COMPLETED), focus, message count, whether the transcript was already reviewed (documentPageId set), and the invite URL while the link is still live. Check this before inviting someone again — interview fatigue is real — and to answer 'who have we already asked?'. Read one in full with compass_interviews_get.
Paramètres, retour & exemple (1)
Paramètresworkspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.
Exemple d'appel{"name": "compass_interviews_list", "arguments": {"workspace": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - compass_interviews_revoke≈ 275 tokens
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 their mind, or the link leaked. Idempotent. Ids come from compass_interviews_list. May return `needs_confirmation`.
Paramètres, retour & exemple (3)
Paramètresworkspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.approvalId· string · optionnel
Approval id from a prior needs_confirmation response, after the user has approved. Omit on the first call.interviewId· string · requis
Interview id (from compass_interviews_list).
Exemple d'appel{"name": "compass_interviews_revoke", "arguments": {"interviewId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - compass_links_create≈ 1128 tokens
Creates a typed, directed edge between two pages — the knowledge graph's connective tissue. Canonical directions: PERSON or ROLE owns WORKFLOW/SYSTEM/PRIORITY, PERSON or ROLE involved_in WORKFLOW, PERSON holds ROLE, WORKFLOW uses SYSTEM, SYSTEM uses SYSTEM, PAIN_POINT affects WORKFLOW/SYSTEM/PERSON/ROLE, DOCUMENT documents anything, PRIORITY contributes_to PRIORITY (a priority that ladders up to a bigger one; each ladders up to at most one, and choosing a new one moves it; a priority has one owner the same way), UNIT part_of UNIT and ROLE or PERSON part_of UNIT (the org chart: one parent each; a UNIT's lead owns it, one owner), relates_to as fallback. Prefer attaching responsibilities to the ROLE and linking the PERSON to it with holds — the role outlasts whoever is in it. Pass validFrom / validTo when the source says when it was true ('took over approvals in March'), and sourceKind + sourceId for who said so (the interview or page you learned it from). Idempotent on an open (from, to, kind) edge — re-creating one returns it. May return `needs_confirmation`; tell the user what you're proposing, wait for their approval, then re-call with the approvalId.
Paramètres, retour & exemple (11)
Paramètreskind· string · requis · owns | involved_in | holds | uses | serves | delivers | affects | documents
Edge type, in canonical direction.note· string · optionnel
≤500-char qualifier when the kind alone undersells it.source· string · optionnel · USER | AI_ACCEPTED
Provenance label. Defaults AI_ACCEPTED (agent writing under live human direction); pass USER for human-driven scripts.validTo· ? · optionnel
When it stopped being true (YYYY-MM-DD). Only for a relationship that has already ended — recording history.sourceId· string · optionnel
Id of the interview, email thread, Prism report or page named by sourceKind.toPageId· string · requis
Edge target page id.validFrom· ? · optionnel
When the relationship started being true (YYYY-MM-DD). Omit when unknown.workspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.approvalId· string · optionnel
Approval id from a prior needs_confirmation response, after the user has approved. Omit on the first call.fromPageId· string · requis
Edge source page id.sourceKind· string · optionnel · interview | page | user | email_thread | prism_report
Who says this is true: an interview, an email thread, a Prism desk-research report (prism_report), a page (a DOCUMENT, or the PERSON who told you), or the user.
Exemple d'appel{"name": "compass_links_create", "arguments": {"kind": "owns", "toPageId": "texte", "fromPageId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - compass_links_delete≈ 317 tokens
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. When a relationship WAS true and has stopped (the person left the team, moved roles), end it with compass_links_update `validTo` instead, so the history stays. Link ids come from compass_page_links_list. Re-creating the same edge later revives it. May return `needs_confirmation`.
Paramètres, retour & exemple (3)
ParamètreslinkId· string · requis
Id of the link (from compass_page_links_list).workspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.approvalId· string · optionnel
Approval id from a prior needs_confirmation response, after the user has approved. Omit on the first call.
Exemple d'appel{"name": "compass_links_delete", "arguments": {"linkId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - compass_links_update≈ 847 tokens
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 connection typed wrongly — 'Dana doesn't own billing, she's involved in it'. Use validTo to END one that used to be true — 'Dana handed approvals to Sam in March' ends Dana's edge in March (then create Sam's from March); the old edge stays as history. Don't delete a relationship that ended; end it. Link ids come from compass_page_links_list. Fails with conflict when the new reading already exists between the same two pages (delete this one instead). May return `needs_confirmation`.
Paramètres, retour & exemple (7)
Paramètreskind· string · optionnel · owns | involved_in | holds | uses | serves | delivers | affects | documents
New edge type, in canonical direction.note· string · optionnel
New qualifier note (≤500 chars); empty string clears it.linkId· string · requis
Id of the link (from compass_page_links_list).validTo· ? · optionnel
When it stopped being true (YYYY-MM-DD) — ends the relationship; null reopens it.validFrom· ? · optionnel
When it started being true (YYYY-MM-DD); null clears it.workspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.approvalId· string · optionnel
Approval id from a prior needs_confirmation response, after the user has approved. Omit on the first call.
Exemple d'appel{"name": "compass_links_update", "arguments": {"linkId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - compass_map_view≈ 449 tokens
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 whose shape is its type — people are figures, audiences are crowds, workflows are gears lying on the ground, systems are database drums, offerings are price tags, pain points are warning signs, documents are standing sheets of paper, values are shields, priorities are flags — sized by how many other pages connect to them, placed near what they link to, with pages connected to nothing parked to one side, and routes drawn between linked pages. A coloured ring on the ground around a page shows the changes touching it by stage (blue undecided, amber not started, green in progress, violet done; thicker = more), with a key in the top-left corner. Use this when the user asks about the shape of their map, where the problems are, what connects to what, or anything spatial. The text part counts the pages of each type, the links, and how many pages are unconnected, plus `mapUrl`. The image is for you to look at; do NOT put it in your reply as a markdown image (the chat can't show it). When the user should see the map, link `mapUrl` — e.g. `[Open your map](mapUrl)` — and describe what you saw.
Paramètres, retour & exemple (1)
Paramètresworkspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.
Exemple d'appel{"name": "compass_map_view", "arguments": {"workspace": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - compass_opportunities_accept≈ 393 tokens
The review verb for the Inbox: promotes an AI-PROPOSED opportunity (from compass_opportunities_propose or the opportunity scout) into the workspace's own pipeline. compass_opportunities_set_status does NOT do this — a proposal stays in the Inbox until accepted. Optional `status` decides its lane in the same step (BACKLOG to park it, EXPERIMENTING to start it); omitted, it lands in NEW. Fails with not_proposed when the row isn't an AI proposal. Ids come from compass_inbox_list / compass_opportunities_list. May return `needs_confirmation` — name the proposal and wait.
Paramètres, retour & exemple (4)
Paramètresstatus· string · optionnel · NEW | QUALIFYING | BACKLOG | EXPERIMENTING | SETTLED | REJECTED
Lane to place it in on accept (default NEW).workspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.approvalId· string · optionnel
Approval id from a prior needs_confirmation response, after the user has approved. Omit on the first call.opportunityId· string · requis
The AI-proposed opportunity's id.
Exemple d'appel{"name": "compass_opportunities_accept", "arguments": {"opportunityId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - compass_opportunities_create≈ 468 tokens
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 otherwise. It lands in the board's first status unless you name another (compass_statuses_list). Set `experiment` only when the user wants it measured against the Ledger. May return `needs_confirmation` — summarize and wait for approval.
Paramètres, retour & exemple (9)
Paramètrestags· array · optionnel
Tags to file it under.label· string · requis
≤200 chars, the change in one line.links· array · optionnel
Where the work also lives — issue, ticket, PR or doc URLs.workspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.approvalId· string · optionnel
Approval id from a prior needs_confirmation response, after the user has approved. Omit on the first call.experiment· boolean · optionnel
Measure it against the Ledger. Default false.statusName· string · optionnel
Start in this status (a name from compass_statuses_list).description· string · optionnel
What the change is, and why it's worth doing.workflowPageId· string · optionnel
Workflow page to anchor to, when one fits.
Exemple d'appel{"name": "compass_opportunities_create", "arguments": {"label": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - compass_opportunities_delete≈ 310 tokens
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 duplicate or a mistake, the remove verb. To conclude a real experiment without evidence, prefer compass_opportunities_set_status REJECTED — that keeps the record. Ids come from compass_opportunities_list. May return `needs_confirmation`.
Paramètres, retour & exemple (3)
Paramètresworkspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.approvalId· string · optionnel
Approval id from a prior needs_confirmation response, after the user has approved. Omit on the first call.opportunityId· string · requis
The change's key (e.g. ACME-12) or id, from compass_opportunities_list.
Exemple d'appel{"name": "compass_opportunities_delete", "arguments": {"opportunityId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - compass_opportunities_list≈ 352 tokens
The workspace's changes — fixes, chores, new steps, experiments. Each carries `statusName` (the workspace's own word for where it is) and `statusCategory` (TRIAGE undecided, BACKLOG not started, ACTIVE in progress, DONE, CANCELED dropped), plus the older lane key in `status`. `experiment: true` marks a change measured against the Ledger: `ledgerEntryId` null means no expectation registered; `ledger.verdict` carries confirmed/missed after settlement. Scores (value/feasibility/risk) and a workflow anchor are optional. Filter by lane key in `status` or by workflowPageId; compass_statuses_list has the status names.
Paramètres, retour & exemple (3)
Paramètresstatus· string · optionnel · NEW | QUALIFYING | BACKLOG | EXPERIMENTING | SETTLED | REJECTED
Filter to one lane.workspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.workflowPageId· string · optionnel
Only opportunities anchored to this workflow page.
Exemple d'appel{"name": "compass_opportunities_list", "arguments": {"status": "NEW", "workspace": "texte", "workflowPageId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - compass_opportunities_mark_implemented≈ 352 tokens
The measurement window's boundary: when the user says the experiment's change actually shipped / went live / rolled out, record the landing date. Readings before it are baseline; after it, evidence of effect. Recorded once — it cannot move afterward, so confirm the date. Attaches to the linked Ledger entry as evidence. May return `needs_confirmation`.
Paramètres, retour & exemple (5)
Paramètresat· string · optionnel
ISO date the change landed — omit for today.note· string · optionnel
What shipped, if worth recording.workspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.approvalId· string · optionnel
Approval id from a prior needs_confirmation response, after the user has approved. Omit on the first call.opportunityId· string · requis
The change's key (e.g. ACME-12) or id, from compass_opportunities_list.
Exemple d'appel{"name": "compass_opportunities_mark_implemented", "arguments": {"opportunityId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - compass_opportunities_propose≈ 405 tokens
File an AI-PROPOSED opportunity into the workspace's review queue — the scouting verb (the opportunity-scout routine's main move). Unlike compass_opportunities_create this needs NO approval: the proposal itself is the human gate — it lands in the Compass Inbox and the cockpit's Needs-you for accept/dismiss. Check compass_opportunities_list first so you never duplicate an idea. Anchor to a workflow page when one fits; score value/feasibility/risk 1–5.
Paramètres, retour & exemple (8)
Paramètreslabel· string · requis
≤200 chars, the opportunity in one line.reasoning· string · optionnel
One or two sentences on why you're proposing this.riskScore· integer · optionnelworkspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.valueScore· integer · optionneldescription· string · requis
What it is and why it's worth trying, grounded in the map.workflowPageId· string · optionnel
Workflow page to anchor to, when one fits.feasibilityScore· integer · optionnel
Exemple d'appel{"name": "compass_opportunities_propose", "arguments": {"label": "texte", "description": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - compass_opportunities_register_expectation≈ 674 tokens
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 — never backfill an expectation to match an outcome. Bind a metric (ledger_metrics_list) + comparator + target when the expectation is measurable; readings then land on the entry as evidence automatically. One expectation per opportunity — revise by superseding in Ledger. May return `needs_confirmation`.
Paramètres, retour & exemple (9)
Paramètrestarget· number · optionnel
Target value, in the metric's unit (hours for time).deadline· string · optionnel
ISO date the expectation is due by.metricId· string · optionnel
Ledger metric to bind (requires target). From ledger_metrics_list.workspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.approvalId· string · optionnel
Approval id from a prior needs_confirmation response, after the user has approved. Omit on the first call.comparator· string · optionnel · >= | <= | > | < | =fromRollup· object · optionnel
Instead of metricId: measure it off the change's workflow roll-up — a step's (nodeId) or the whole workflow's hands-on time, waiting, labor, or hard cost, per run or per month. Creates a daily-fed metric with the last 30 days rebuilt from the map's history, so the before is on record. Needs a target; comparator defaults to <=.expectation· string · requis
One sentence — what we expect this to change.opportunityId· string · requis
The change's key (e.g. ACME-12) or id, from compass_opportunities_list.
Exemple d'appel{"name": "compass_opportunities_register_expectation", "arguments": {"expectation": "texte", "opportunityId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - compass_opportunities_set_status≈ 430 tokens
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 / EXPERIMENTING / SETTLED / REJECTED) still work and land on that lane's default status. Only changes marked as experiments follow the Ledger: when an experiment enters an In progress status with no registered expectation, offer compass_opportunities_register_expectation; when it enters Done with its Ledger entry still open, offer ledger_entries_settle. Other changes just move. May return `needs_confirmation`.
Paramètres, retour & exemple (5)
Paramètresstatus· string · optionnel · NEW | QUALIFYING | BACKLOG | EXPERIMENTING | SETTLED | REJECTED
A lane key. Use this or `statusName`.workspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.approvalId· string · optionnel
Approval id from a prior needs_confirmation response, after the user has approved. Omit on the first call.statusName· string · optionnel
A status name from compass_statuses_list. Use this or `status`.opportunityId· string · requis
The change's key (e.g. ACME-12) or id, from compass_opportunities_list.
Exemple d'appel{"name": "compass_opportunities_set_status", "arguments": {"opportunityId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - compass_opportunities_update≈ 789 tokens
Corrects an opportunity's content: label, description, priority, what done means, the 1–5 value / feasibility / risk scores, the owner (a PERSON page), notes, tags, workflow anchor, external link, visibility. Fields you omit are untouched; the lane is NOT here — move it with compass_opportunities_set_status. Opportunity ids come from compass_opportunities_list. May return `needs_confirmation` — say what you're changing and wait.
Paramètres, retour & exemple (18)
Paramètrestags· array · optionnel
New tag set — replaces existing tags.label· string · optionnel
New one-line label (2–200 chars).assignee· ? · optionnel
The workspace member doing the work, by email or user id; null unassigns. They're notified.doneWhen· string · optionnel
What's true when it's done, that someone else could check (≤1,000 chars).priority· ? · optionnel
How soon it matters; null clears it, and the map's suggestion shows again.riskScore· integer · optionnelworkspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.approvalId· string · optionnel
Approval id from a prior needs_confirmation response, after the user has approved. Omit on the first call.experiment· boolean · optionnel
Measure it against the Ledger (expectation when it starts, verdict when it's done).valueScore· integer · optionnelvisibility· string · optionnel · PRIVATE | WORKSPACE | SHARED
Who can see it: PRIVATE (only the user), WORKSPACE (every member, the default), or SHARED (specific people, granted afterwards). Say 'make it private' → PRIVATE.description· string · optionnel
New description (≤5,000 chars).externalUrl· ? · optionnel
Where the doing happens off-platform (URL); null clears.ownerPageId· ? · optionnel
PERSON page id who owns the work; null clears.opportunityId· string · requis
The change's key (e.g. ACME-12) or id, from compass_opportunities_list.workflowPageId· ? · optionnel
Workflow page to anchor to; null un-anchors.feasibilityScore· integer · optionnelqualitativeNotes· string · optionnel
Free-form notes (≤20,000 chars) — replaces the current notes.
Exemple d'appel{"name": "compass_opportunities_update", "arguments": {"opportunityId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - compass_page_links_list≈ 259 tokens
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 adding to it. Current connections only, unless includeEnded — then also relationships that have ended (validTo in the past), for questions like who handled this before.
Paramètres, retour & exemple (3)
ParamètrespageId· string · requis
The page id.workspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.includeEnded· boolean · optionnel
Also return connections that have ended.
Exemple d'appel{"name": "compass_page_links_list", "arguments": {"pageId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - compass_pages_create≈ 502 tokens
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 instead. May return `needs_confirmation` — if so, tell the user what you're proposing, wait for their approval, then re-call with the approvalId. Only record what the human has actually told you.
Paramètres, retour & exemple (7)
Paramètresbody· string · optionnel
Markdown body shaped to the type (steps for WORKFLOW, role/contact sections for PERSON, etc.).tags· array · optionnel
Optional tags.type· string · requis
Page type for this subject. PERSON = a specific individual; ROLE = a job, separate from whoever holds it (people hold roles); VALUE = something the business won't sacrifice; PRIORITY = an outcome it's pushing toward; AUDIENCE = who the work is for; OFFERING = what the business delivers.title· string · requis
≤80 chars, sentence case, no filler verbs.workspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.approvalId· string · optionnel
Approval id from a prior needs_confirmation response, after the user has approved. Omit on the first call.visibility· string · optionnel · PRIVATE | WORKSPACE | SHARED
Who can see it: PRIVATE (only the user), WORKSPACE (every member, the default), or SHARED (specific people, granted afterwards). Say 'make it private' → PRIVATE.
Exemple d'appel{"name": "compass_pages_create", "arguments": {"type": "texte", "title": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - compass_pages_delete≈ 308 tokens
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 to REMOVE a page you or an extraction created wrongly, or one the user says no longer belongs on the map; to fix a wrong title or body, use compass_pages_update instead. Page ids come from compass_pages_list / compass_pages_search. May return `needs_confirmation` — name the page and wait for approval.
Paramètres, retour & exemple (3)
ParamètrespageId· string · requis
Id of the page to delete.workspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.approvalId· string · optionnel
Approval id from a prior needs_confirmation response, after the user has approved. Omit on the first call.
Exemple d'appel{"name": "compass_pages_delete", "arguments": {"pageId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - compass_pages_get≈ 209 tokens
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 with `napkin_boards_view` (its boardId) before discussing it.
Paramètres, retour & exemple (2)
ParamètrespageId· string · requis
The page id (from compass_pages_list).workspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.
Exemple d'appel{"name": "compass_pages_get", "arguments": {"pageId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - compass_pages_list≈ 352 tokens
Lists pages in the active workspace's Compass compendium. Optional `type` filter narrows to one node type (WORKFLOW, PERSON, ROLE, SYSTEM, PAIN_POINT, DOCUMENT, VALUE, PRIORITY, AUDIENCE, OFFERING). Returns summaries, 50 at a time (`limit` / `offset`, `total` and `nextOffset` in the result) — fetch one with `compass_pages_get` for the full body. When you know what you're looking for, `compass_pages_search` is the better first call.
Paramètres, retour & exemple (4)
Paramètrestype· string · optionnel
Narrow to a specific page type (WORKFLOW, PERSON, ROLE, SYSTEM, PAIN_POINT, DOCUMENT, VALUE, PRIORITY, AUDIENCE, OFFERING).limit· integer · optionnel
Page size, default 50. Prefer compass_pages_search when you know what you're looking for.offset· integer · optionnel
Skip this many, for the next page.workspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.
Exemple d'appel{"name": "compass_pages_list", "arguments": {"type": "texte", "limit": 1, "offset": 1, "workspace": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - compass_pages_restore≈ 281 tokens
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 pageId from the earlier compass_pages_delete, or from the Compass trash). Fails with not_found when the page is already live or never existed. May return `needs_confirmation`.
Paramètres, retour & exemple (3)
ParamètrespageId· string · requis
Id of the deleted page.workspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.approvalId· string · optionnel
Approval id from a prior needs_confirmation response, after the user has approved. Omit on the first call.
Exemple d'appel{"name": "compass_pages_restore", "arguments": {"pageId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - compass_pages_search≈ 339 tokens
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 before creating or linking. Returns summaries with a 300-char body snippet — fetch full text with `compass_pages_get`.
Paramètres, retour & exemple (5)
Paramètresq· string · requis
Search term. Use the most distinctive word or phrase for the subject ('Zendesk', 'invoice approval') — not full sentences.type· string · optionnel
Narrow to one page type.limit· integer · optionnel
Results per page, 1-25. Default 10.offset· integer · optionnel
Pagination offset. Default 0.workspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.
Exemple d'appel{"name": "compass_pages_search", "arguments": {"q": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - compass_pages_update≈ 576 tokens
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 creating a duplicate. Fetch the current page with `compass_pages_get` first and preserve what the human wrote; title / body / tags replace the field wholesale, while `headerFields` MERGES over the current ones (send only the keys you're changing — 'set the owner' leaves status alone). Page ids come from compass_pages_list. May return `needs_confirmation` — tell the user what you're changing, wait for approval, then re-call with the approvalId.
Paramètres, retour & exemple (9)
Paramètresbody· string · optionnel
New Markdown body — replaces the whole body.tags· array · optionnel
New tag set — replaces existing tags.title· string · optionnel
New title (≤200 chars).pageId· string · requis
Id of the page to edit.workspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.approvalId· string · optionnel
Approval id from a prior needs_confirmation response, after the user has approved. Omit on the first call.visibility· string · optionnel · PRIVATE | WORKSPACE | SHARED
Who can see it: PRIVATE (only the user), WORKSPACE (every member, the default), or SHARED (specific people, granted afterwards). Say 'make it private' → PRIVATE.description· string · optionnel
New one-line gallery summary (≤2,000 chars).headerFields· object · optionnel
Partial header fields for the page's type (PERSON: role, email, …; WORKFLOW: owner, status, …) — merged over the current values; the server validates the merged result against the type.
Exemple d'appel{"name": "compass_pages_update", "arguments": {"pageId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - compass_priority_steps_find≈ 275 tokens
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 holds a priority back. Proposals wait for a person to keep them on the priority's page or in the Inbox, except in workflows someone tied to it (a serves link), where they're kept at once. Steps already tied or proposed aren't proposed again, so it's safe to run as the map grows. Use it after a priority is named and workflows are mapped, or when someone asks what moves a priority.
Paramètres, retour & exemple (2)
ParamètrespageId· string · requis
The PRIORITY or VALUE page id.workspace· string · optionnel
Workspace slug. Ignored for workspace API keys.
Exemple d'appel{"name": "compass_priority_steps_find", "arguments": {"pageId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - compass_process_diagram_ensure≈ 382 tokens
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 diagram verbatim (node ids kept, so changes anchored to a step still point at it) and leaves the body. Then edit the steps with napkin_diagrams_update using the returned diagramId. One diagram per workflow holds every step anyone has described — when two people describe the same process differently, add the steps to this one diagram rather than making a second. A step that is itself a workflow is a node whose meta ref is { type: 'page', id: <that workflow's page id> }. compass_pages_get returns processDiagramId when one exists. May return `needs_confirmation`.
Paramètres, retour & exemple (3)
ParamètrespageId· string · requis
The WORKFLOW page id.workspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.approvalId· string · optionnel
Approval id from a prior needs_confirmation response, after the user has approved. Omit on the first call.
Exemple d'appel{"name": "compass_process_diagram_ensure", "arguments": {"pageId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - compass_scenario_changes≈ 224 tokens
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. Pass their ids to compass_workflow_rollup's changeIds to project the workflow after them.
Paramètres, retour & exemple (2)
ParamètrespageId· string · requis
The WORKFLOW page id.workspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.
Exemple d'appel{"name": "compass_scenario_changes", "arguments": {"pageId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - compass_statuses_list≈ 236 tokens
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 progress (ACTIVE), Done (DONE), Dropped (CANCELED). Groups are stable across workspaces; names aren't, so use the names when talking to people and the groups when reasoning about progress. Move a change with compass_opportunities_set_status.
Paramètres, retour & exemple (1)
Paramètresworkspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.
Exemple d'appel{"name": "compass_statuses_list", "arguments": {"workspace": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - compass_step_claims_list≈ 269 tokens
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 (sourceKind + sourceLabel), when it was true (validFrom/validTo), and origin — AI_PROPOSED claims are waiting for a person to review. Claims that disagree coexist; each keeps its source.
Paramètres, retour & exemple (3)
ParamètresnodeId· string · optionnel
Narrow to one step.pageId· string · requis
The WORKFLOW page id.workspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.
Exemple d'appel{"name": "compass_step_claims_list", "arguments": {"pageId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - compass_step_claims_propose≈ 1241 tokens
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_steps), a page (subjectPageId: a ROLE or PERSON, or an AUDIENCE when a customer or partner does the step; for uses a SYSTEM or DOCUMENT; for impacts a PRIORITY; for holds_to a VALUE), and a relation: owns (accountable for it), does (does the work), approves (signs off), consulted (asked for input), does_not_do (says they don't do it — an answer, not a gap), uses (the step is done in this SYSTEM, or with this DOCUMENT; a step a system runs on its own gets uses and no doer), impacts (the step moves this PRIORITY: where the priority is won or lost; pass limits: true on the one step holding it back most), holds_to (the business lives this VALUE at the step). Propose who and what in together, in one call per workflow. Claims land as proposals for a person to accept in Compass; they don't count until then. Always say who said it: sourceKind 'interview' + the interview id, 'email_thread' + the thread id, 'prism_report' + the desk-research report id, or 'page' + the DOCUMENT or PERSON page id. Prefer the ROLE when the person speaks for their role, the PERSON when it's specific to them. Record a disagreement as its own claim rather than skipping it. When someone says a step happens that isn't in the diagram, add the step with napkin_diagrams_update first. Re-proposing an existing claim from the same source returns it.
Paramètres, retour & exemple (5)
Paramètresclaims· array · requispageId· string · requis
The WORKFLOW page id.sourceId· string · optionnel
The interview, email thread, Prism report or page id, for those kinds.workspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.sourceKind· string · optionnel · interview | page | user | email_thread | prism_report
Who says so: 'interview', 'email_thread', 'prism_report', 'page', or 'user' (the person you're talking with).
Exemple d'appel{"name": "compass_step_claims_propose", "arguments": {"claims": [], "pageId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - compass_step_measures_propose≈ 1355 tokens
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. Each item is either a `measure` or a `gate` on a step (nodeId from compass_workflow_steps): - measure.metric `working`: hands-on minutes per run (low/high). - measure.metric `waiting`: minutes the work sits idle before or inside the step — ask about this separately; it's usually most of the waste. - measure.metric `hardCost`: money that isn't anyone's time (amount, currency, per run or month). - measure.metric `frequency` with nodeId null: how often the workflow runs (low/high per day, week, month, or year); with variantId, how often that variant runs. - gate: approval, handoff, rekey (typing the same data into another system), or rework, with returnRate (0–1) when they know how often it sends work back. Pass subjectPageId (a ROLE or PERSON) when the time is one person's or role's — it prices the time through that role's rate. Always say who said it. Proposals count once someone accepts them in Compass.
Paramètres, retour & exemple (5)
Paramètresitems· array · requispageId· string · requis
The WORKFLOW page id.sourceId· string · optionnel
The interview, email thread, Prism report or page id, for those kinds.workspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.sourceKind· string · optionnel · interview | page | user | email_thread | prism_report
Exemple d'appel{"name": "compass_step_measures_propose", "arguments": {"items": [], "pageId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - compass_step_suggestions_build≈ 338 tokens
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 itself (who does it, its times, systems, write-up, attachments, interview notes) and its checklist; a shim named for the decision; or a task whose sentence is the steps. Use this, not workbench_flows_scaffold, whenever the work came from a step suggestion. Returns what was built and, for a flow, what the draft still needs. Fails if something's already built for it.
Paramètres, retour & exemple (4)
ParamètrespageId· string · requis
The WORKFLOW page id the suggestion is on.workspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.approvalId· string · optionnelsuggestionId· string · requis
The suggestion id, from compass_step_suggestions_list.
Exemple d'appel{"name": "compass_step_suggestions_build", "arguments": {"pageId": "texte", "suggestionId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - compass_step_suggestions_list≈ 335 tokens
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 shim, or a task), whether it does the step or helps (reach), why, and what it would take (checklist, each item met or not). state OPEN is waiting for a person; APPLIED made a change (opportunityId), and `built` is what was built for it in Workbench, if anything. Pass changeId instead of pageId to get the one suggestion a change came from. To build one, use compass_step_suggestions_build — not workbench_flows_scaffold.
Paramètres, retour & exemple (3)
ParamètrespageId· string · optionnel
The WORKFLOW page id.changeId· string · optionnel
A change (opportunity) id: the suggestion it came from.workspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.
Exemple d'appel{"name": "compass_step_suggestions_list", "arguments": {"pageId": "texte", "changeId": "texte", "workspace": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - compass_transformations_get≈ 253 tokens
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, or what it needs; what changes; what it does to the priority; time freed; and the change made from it, if any. Also the recommended level, or `settled` when the work is good as it is. state 'running' means a read is under way; null means none has been read (compass_transformations_read starts one).
Paramètres, retour & exemple (2)
Paramètresworkspace· string · optionnel
Workspace slug. Ignored for workspace API keys.priorityPageId· string · requis
The PRIORITY page id.
Exemple d'appel{"name": "compass_transformations_get", "arguments": {"priorityPageId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - compass_transformations_make_change≈ 284 tokens
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 flows for what the level says to build (`builds`, each `drafting` until ready). Only a level that fits, once per level. May return `needs_confirmation`.
Paramètres, retour & exemple (4)
Paramètreslevel· integer · requis
1 Assist, 2 Automate, 3 Re-form, 4 Invert, 5 Dissolve.workspace· string · optionnel
Workspace slug. Ignored for workspace API keys.approvalId· string · optionnel
Approval id from a prior needs_confirmation envelope.priorityPageId· string · requis
The PRIORITY page id.
Exemple d'appel{"name": "compass_transformations_make_change", "arguments": {"level": 1, "priorityPageId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - compass_transformations_read≈ 196 tokens
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 left to finish. Check back with compass_transformations_get.
Paramètres, retour & exemple (2)
Paramètresworkspace· string · optionnel
Workspace slug. Ignored for workspace API keys.priorityPageId· string · requis
The PRIORITY page id.
Exemple d'appel{"name": "compass_transformations_read", "arguments": {"priorityPageId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - compass_transformations_respond≈ 363 tokens
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 it out, a system that isn't ready, work still done on paper, and so on. Compass works out what it means in the background: a label for the level, facts kept on the steps they're about (every later reading of those workflows sees them), and open questions to confirm. Then it reads the priority again. Use it whenever a conversation settles something about a level, so it lands on the priority's page, not only in this chat.
Paramètres, retour & exemple (4)
Paramètressaid· string · requis
What's true about the level, as the person said it.level· integer · requis
1 Assist, 2 Automate, 3 Re-form, 4 Invert, 5 Dissolve.workspace· string · optionnel
Workspace slug. Ignored for workspace API keys.priorityPageId· string · requis
The PRIORITY page id.
Exemple d'appel{"name": "compass_transformations_respond", "arguments": {"said": "texte", "level": 1, "priorityPageId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - compass_workflow_learning≈ 442 tokens
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 replaced), withdrawn, or accepted from a proposal — each with its source. This is when we LEARNED things; when they were true is each claim's validFrom/validTo. Use it to brief someone on what changed in the picture, or to see what an interview added.
Paramètres, retour & exemple (3)
Paramètressince· ? · optionnel
Only what was learned on or after this date.pageId· string · requis
The WORKFLOW page id.workspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.
Exemple d'appel{"name": "compass_workflow_learning", "arguments": {"pageId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - compass_workflow_rollup≈ 817 tokens
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 range, with every step's share and its gates (approvals, handoffs, re-keying, rework). A step that is itself a workflow uses that workflow's roll-up unless it has its own estimate. `coverage` says how many steps are timed — always say how much of the total rests on estimates before quoting it, and never present a range as one number. `unpricedRoles` are roles doing timed work with no hourly rate; their time counts and its cost doesn't. Where the waiting dwarfs the hands-on time, or a gate rarely sends anything back, is usually where the improvement is. `at` reads the estimates as of a date; `variantId` rolls up one variant.
Paramètres, retour & exemple (6)
Paramètresat· ? · optionnel
How things were on this date (YYYY-MM-DD). Default today.pageId· string · requis
The WORKFLOW page id.knownAt· ? · optionnel
Count only what had been said by this date — the picture as we knew it then.changeIds· array · optionnel
Project the workflow as these changes would leave it (ids from compass_scenario_changes). Compare with a call without them: before vs after, what stays human, overlapping changes.variantId· string · optionnel
A variant id from compass_workflow_steps.workspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.
Exemple d'appel{"name": "compass_workflow_rollup", "arguments": {"pageId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - compass_workflow_steps≈ 377 tokens
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, does, approves, is consulted on, or doesn't do it, and `uses`: the systems or documents it's done in. `unknown: true` means nothing that counts says who does the step or what it's done in — those are the questions worth asking in an interview. A step with `uses` and nobody on it is one a system runs; don't ask who does it. `disputed` lists roles or people with conflicting claims; ask about those rather than picking a side. `proposals` counts claims waiting for review. `variants` are named subsets of the steps ("rush job", "enterprise client"); each step lists the variants it belongs to. Returns no steps when the workflow has no diagram yet (compass_process_diagram_ensure makes one).
Paramètres, retour & exemple (2)
ParamètrespageId· string · requis
The WORKFLOW page id.workspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.
Exemple d'appel{"name": "compass_workflow_steps", "arguments": {"pageId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - entity_tags_browse≈ 258 tokens
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: everything filed under it across every tool, each with its kind, id, title, and path. Use it to reuse existing labels instead of inventing near-duplicates, and to answer 'show me everything about X' when X is a label.
Paramètres, retour & exemple (2)
Paramètrestag· string · optionnel
A tag to expand into its items. Omit to list tags.workspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.
Exemple d'appel{"name": "entity_tags_browse", "arguments": {"tag": "texte", "workspace": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - entity_tags_get≈ 352 tokens
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 before entity_tags_set so you replace the full set knowingly, and to answer 'what is this filed under'. Entities the user can't see are omitted.
Paramètres, retour & exemple (3)
Paramètresids· array · requisworkspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.entityKind· string · requis · workbench_flow | workbench_task | workbench_kb | compass_page | compass_opportunity | caliper_dataset | caliper_rubric | caliper_eval
Which kind the ids belong to.
Exemple d'appel{"name": "entity_tags_get", "arguments": {"ids": [], "entityKind": "workbench_flow"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - entity_tags_set≈ 413 tokens
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 additive. Tags are lowercase letters, numbers, spaces, and hyphens; prefer labels already in use (entity_tags_browse) so the workspace's vocabulary stays small. The id comes from the kind's list/get tool or search_workspace.
Paramètres, retour & exemple (5)
Paramètrestags· array · requisentityId· string · requisworkspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.approvalId· string · optionnel
Approval id from a prior needs_confirmation response. Omit on the first call.entityKind· string · requis · workbench_flow | workbench_task | workbench_kb | compass_page | compass_opportunity | caliper_dataset | caliper_rubric | caliper_eval
Exemple d'appel{"name": "entity_tags_set", "arguments": {"tags": [], "entityId": "texte", "entityKind": "workbench_flow"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - get_doc≈ 161 tokens
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 authentication required.
Paramètres, retour & exemple (1)
Paramètresslug· string · requis
Page slug. Accepts 'compass/api', '/compass/api', or 'docs/compass/api'.
Exemple d'appel{"name": "get_doc", "arguments": {"slug": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - get_post≈ 154 tokens
Fetch the full Markdown body of one Distributed Cognition essay by slug (from `list_posts`). Link the public URL when citing it to the user. No authentication required.
Paramètres, retour & exemple (1)
Paramètresslug· string · requis
Essay slug, e.g. from `list_posts`.
Exemple d'appel{"name": "get_post", "arguments": {"slug": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - ledger_entries_add_evidence≈ 487 tokens
Records what happened against an open decision — a manual observation the user reports ('the pilot team says triage feels faster'), an implementation note, or a reference to a Caliper run. Evidence is what settlement later reads, so attach it as it arrives and cite it in the lesson. Metric readings attach themselves via ledger_metrics_record_reading — don't duplicate them here. Fails with conflict on superseded entries. Ids come from ledger_entries_list. May return `needs_confirmation`.
Paramètres, retour & exemple (7)
Paramètresdata· object · optionnel
Structured detail worth keeping with the summary.kind· string · optionnel · caliper_eval_run | manual | metric_reading | implementation | task_run | verbatim | source
Usually `manual`; `caliper_eval_run` with refId for a run; `implementation` when the change shipped.refId· string · optionnel
Source record id (a Caliper run id, …) when there is one.entryId· string · requis
The entry the evidence is about.summary· string · requis
What happened, in one or two sentences.workspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.approvalId· string · optionnel
Approval id from a prior needs_confirmation envelope.
Exemple d'appel{"name": "ledger_entries_add_evidence", "arguments": {"entryId": "texte", "summary": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - ledger_entries_create≈ 1320 tokens
Records a memory entry. Every entry is a TITLE (`summary`: one short plain sentence) over a BODY (`rationale`: the detail, markdown welcome) — never put the detail in the title. Three kinds: `decision` — a change being made now; PRE-REGISTRATION IS THE POINT, so `prediction` (what we expect) must be written NOW, before any evidence exists, and never backfilled to match an outcome. `lesson` — a distilled belief the team already holds (`lesson` text required, no prediction). `observation` — a durable fact worth remembering (no prediction): something already true, never something planned. Ideas, pitches, backlog items, and upcoming work are NOT entries — a dated piece of work that carries out a decision is a plan item (ledger_plan_add on that decision), and a running list you keep across runs belongs in a Napkin doc or sheet. When a user states something durable about their business in conversation, offer to capture it as a lesson or observation. When a user shares MEETING NOTES, propose the decisions you find with ledger_entries_draft so they keep or drop each one in Ledger; use this tool for an entry they've asked you to record. Link the Compass pages the entry touches so future consult-before-acting finds it. May return `needs_confirmation` — summarize the entry and wait for approval.
Paramètres, retour & exemple (8)
Paramètreskind· string · optionnel · decision | lesson | observation | belief
decision = a change with a pre-registered expectation; lesson = a belief arriving already settled; observation = a fact that is already true (not a plan, idea, or pitch).lesson· string · optionnel
What we learned — required for kind=lesson, optional for kind=observation, forbidden on decisions (their lesson is written at settlement).summary· string · requis
The entry's TITLE: one short plain sentence naming what we did (decision) or the fact itself (lesson, observation). Plain text, no markdown, at most 280 characters — e.g. "Newsletter moves to a biweekly cadence". Everything longer goes in rationale.rationale· string · optionnel
The entry's BODY: the detail under the title — why, context, lists, steps. Markdown is fine here and renders as formatted text.workspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.approvalId· string · optionnel
Approval id from a prior needs_confirmation envelope.prediction· object · optionnel
Decisions ONLY. What we expect: a list of `claims` plus one shared `deadline`, or `freeform` for room decisions nothing can settle. A claim either REACHES a value (comparator + target, e.g. CTA clicks >= 400) or HOLDS one (`hold`, e.g. newsletter reads no more than 5% below the 28 days before this). Name every number the change is expected to move AND every number it shouldn't cost — a decision that claims only what it hopes will rise gets to pick its own evidence. Set `watch: true` on a number worth following that the decision isn't committing to. When the change aims at part of an event metric ("new users in Germany"), narrow the claim with `slice` ({ country: ["DE"] }) using label values from ledger_metrics_get — a claim on an event metric settles on the total counted since landing (reach) or events per day (hold).compassPageIds· array · optionnel
Where — Compass page ids this decision touches.
Exemple d'appel{"name": "ledger_entries_create", "arguments": {"summary": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - ledger_entries_draft≈ 1052 tokens
Writes up to 50 entries as DRAFTS: proposals that stay out of the record until a person confirms each one in Ledger's Drafts view. Use it for entries you found rather than were told — decisions in meeting notes, or a team's past changes read from its tracker, pull requests or launch posts (set `fromHistory: true`). For history: take each claim from what the source said AT THE TIME, set `landedAt` to when it shipped, attach the source URL, and leave `rollout` as full unless the source says otherwise. These read as low confidence because they were written down after the fact; say so plainly rather than overstating them. Tell the person how many drafts are waiting and that they review them under Decisions → Drafts. May return `needs_confirmation`.
Paramètres, retour & exemple (4)
Paramètresdrafts· array · requisworkspace· string · optionnel
Workspace slug. Ignored for workspace API keys.approvalId· string · optionnelfromHistory· boolean · optionnel
True when the drafts come from a team's past work, not the conversation.
Exemple d'appel{"name": "ledger_entries_draft", "arguments": {"drafts": []}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - ledger_entries_get≈ 219 tokens
One entry's full anatomy — the six fields, attached evidence (Caliper runs, measurements, observations), and the supersede chain (what replaced it, or what it replaced). Cite entry ids when telling the user about prior related decisions.
Paramètres, retour & exemple (2)
ParamètresentryId· string · requis
Entry id (from ledger_entries_list).workspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.
Exemple d'appel{"name": "ledger_entries_get", "arguments": {"entryId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - ledger_entries_list≈ 521 tokens
The workspace's memory: decisions (changes with pre-registered expectations), lessons (distilled beliefs), and observations (captured facts). CONSULT BEFORE ACTING — before proposing a flow change, prompt edit, or process decision, filter by the Compass page it touches (compassPageId) and check whether prior attempts exist and how they settled. Filter status=open for unsettled expectations awaiting evidence (each carries a derived `lapsed` flag — true when its deadline has passed; surface lapsed ones when the user asks what needs attention); kind=lesson for what the team already believes.
Paramètres, retour & exemple (7)
Paramètresq· string · optionnel
Free-text search across an entry's summary, rationale, and lesson (case-insensitive). Use it to find the entry about a topic before acting.kind· string · optionnel · decision | lesson | observation | belief
Filter by species: decision (pre-registered expectations), lesson (distilled beliefs), observation (captured facts).cursor· string · optionnel
Pagination cursor from a prior page.origin· string · optionnel · manual | workbench | caliper | compass | prism | room | assistant | import
Filter by who wrote it (manual, workbench, …).status· string · optionnel · draft | open | settled | superseded
Filter by lifecycle state (open = awaiting evidence).workspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.compassPageId· string · optionnel
Compass page id — every decision touching that workflow / system / person.
Exemple d'appel{"name": "ledger_entries_list", "arguments": {"q": "texte", "kind": "decision", "cursor": "texte", "origin": "manual", "status": "draft", "workspace": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - ledger_entries_retract≈ 296 tokens
Takes an entry out of the curated ledger — THE remedy when you recorded something wrong (a decision that wasn't made, a duplicate, a fact the user corrects). Reversible from Ledger and fully audited, so it is safe to offer as soon as the user says 'that's not right'. Not for overturning a settled claim the team once believed — a human supersedes that. Fails with conflict if already retracted. Ids come from ledger_entries_list. May return `needs_confirmation`.
Paramètres, retour & exemple (3)
ParamètresentryId· string · requis
The entry to retract.workspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.approvalId· string · optionnel
Approval id from a prior needs_confirmation envelope.
Exemple d'appel{"name": "ledger_entries_retract", "arguments": {"entryId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - ledger_entries_settle≈ 415 tokens
The ritual moment: evidence has landed, the expectation closes, the lesson is written. Only propose settlement when attached evidence actually answers the prediction — check `ledger_entries_get` first and cite the evidence in the lesson. `lesson` (what we now believe) is required and permanent; settlement happens exactly once. May return `needs_confirmation`.
Paramètres, retour & exemple (5)
Paramètreslesson· string · requis
What we now believe — the distilled, citable lesson.entryId· string · requis
The open entry to settle.verdict· string · optionnel · confirmed | mixed | missed
Did the pre-registered expectation hold? `confirmed` every claim came out as hoped, `missed` none did, `mixed` some did and some didn't. Mixed is not a softer miss — "it worked and it cost us something" is usually the most informative result a change can produce, so use it rather than rounding to either side. Only when the entry carries an expectation and the evidence gives a clear answer.workspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.approvalId· string · optionnel
Exemple d'appel{"name": "ledger_entries_settle", "arguments": {"lesson": "texte", "entryId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - ledger_entries_update≈ 845 tokens
Corrects an entry in place — its title (summary), body (rationale), the pre-registered prediction of an OPEN decision (null clears it), or its facet (filing category; editable even after settlement). Works on open decisions, and on lessons, observations, and beliefs (they carry no expectation, so fixing their wording is fine any time). Use to fix a typo, swapped fields, or a misrecorded detail. Never edits kind or lesson. Fails with conflict on a settled decision — its claim is corrected by a human superseding it in Ledger — and on superseded or retracted entries. Entry ids come from ledger_entries_list. May return `needs_confirmation`.
Paramètres, retour & exemple (7)
Paramètresfacet· ? · optionnel
Filing facet; empty string = unassigned.entryId· string · requis
The entry to edit: an open decision, or a lesson / observation / belief.summary· string · optionnel
New title: one short plain sentence, no markdown, at most 280 characters.rationale· string · optionnel
New body: the detail under the title; markdown is fine.workspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.approvalId· string · optionnel
Approval id from a prior needs_confirmation envelope.prediction· ? · optionnel
Replacement expectation (claims + deadline, or freeform), or null to clear it. Correcting a misrecorded expectation is fine; rewriting one to match what happened is not.
Exemple d'appel{"name": "ledger_entries_update", "arguments": {"entryId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - ledger_feed_sources_list≈ 190 tokens
The connected servers this workspace exposes to you, with the id a feed needs. Their tools appear to you namespaced as `ext__<name>__<tool>` — call one directly to see what it returns before proposing a feed. A server the workspace has switched off for you is not listed and cannot be fed from here.
Paramètres, retour & exemple (1)
Paramètresworkspace· string · optionnel
Workspace slug. Omit to use the pinned workspace.
Exemple d'appel{"name": "ledger_feed_sources_list", "arguments": {"workspace": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - ledger_feeds_backfill≈ 326 tokens
Run the same frozen instruction over a past range, so a metric has history instead of starting the day it was set up. Offer this whenever you create a feed — a chart with a year behind it is worth far more than one that begins today, and an expectation can be judged against what normal looked like. Works when the source returns a series; a source that only ever reports 'right now' will write one point. Safe to repeat: overlapping ranges dedupe. Keep ranges to a few hundred points; a run that fills up says so. May return `needs_confirmation`.
Paramètres, retour & exemple (5)
Paramètresid· string · requis
Feed id, from ledger_feeds_list.to· string · optionnel
End of the range. Defaults to now.from· string · requis
Start of the range, ISO date or instant.workspace· string · optionnel
Workspace slug. Omit to use the pinned workspace.approvalId· string · optionnel
Exemple d'appel{"name": "ledger_feeds_backfill", "arguments": {"id": "texte", "from": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - ledger_feeds_create≈ 546 tokens
Freeze a tool call as a metric's standing source: it runs on the cadence you give and records what it finds, with no model involved. `metric` takes an id or a snake_case slug; an unknown slug starts tracking that metric. Confirm the mapping with ledger_feeds_preview first. Tell the user they can backfill history afterwards with ledger_feeds_backfill. May return `needs_confirmation`.
Paramètres, retour & exemple (10)
Paramètreslabel· string · optionnel
Short name for the feed, e.g. "Weekly signups".metric· string · requis
Metric id, or a snake_case slug to start tracking.mapping· object · requisschedule· object · requistoolArgs· object · optionneltoolName· string · requis
The tool's own name on that server.workspace· string · optionnel
Workspace slug. Omit to use the pinned workspace.approvalId· string · optionnelwindowHours· integer · optionnel
How far back each run looks. Sensible per-cadence default.integrationId· string · requis
From ledger_feed_sources_list.
Exemple d'appel{"name": "ledger_feeds_create", "arguments": {"metric": "texte", "mapping": {}, "schedule": {}, "toolName": "texte", "integrationId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - ledger_feeds_delete≈ 188 tokens
Remove a feed. The readings it already wrote stay — the series is the record and outlives the instruction. Prefer pausing with ledger_feeds_update when the user might want it back. May return `needs_confirmation`.
Paramètres, retour & exemple (3)
Paramètresid· string · requis
Feed id, from ledger_feeds_list.workspace· string · optionnel
Workspace slug. Omit to use the pinned workspace.approvalId· string · optionnel
Exemple d'appel{"name": "ledger_feeds_delete", "arguments": {"id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - ledger_feeds_list≈ 194 tokens
The standing instructions for how metrics' numbers arrive — which tool each one calls, how often, and how the last run went. Check before proposing a feed so you don't duplicate one, and consult when a user asks why a metric is stale: a feed with a failing last run is usually the answer.
Paramètres, retour & exemple (2)
ParamètresmetricId· string · optionnel
Narrow to one metric (id or slug).workspace· string · optionnel
Workspace slug. Omit to use the pinned workspace.
Exemple d'appel{"name": "ledger_feeds_list", "arguments": {"metricId": "texte", "workspace": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - ledger_feeds_preview≈ 510 tokens
Call a connected server's tool once and see what a mapping would pull out of the response — nothing is written and no feed is created. Send no `mapping` for a first look: you get a sample of the response plus the paths that hold numbers. Then send a mapping to confirm it finds the readings you expect. Always do this before ledger_feeds_create; proposing a feed whose mapping you haven't seen work is how a metric fills up with the wrong number. May return `needs_confirmation`.
Paramètres, retour & exemple (7)
Paramètresmapping· object · optionnel
How to read the number. Omit on the first look.toolArgs· object · optionnel
Arguments, exactly as the tool wants them. Use {{from}} / {{to}} (ISO instants) or {{date}} (YYYY-MM-DD) where a time range goes — those are substituted per run, and are what let one feed also backfill.toolName· string · requis
The tool's own name on that server — NOT the ext__ namespaced form you call it by.workspace· string · optionnel
Workspace slug. Omit to use the pinned workspace.approvalId· string · optionnelwindowHours· integer · optionnel
How far back the preview's window reaches. Default 24.integrationId· string · requis
From ledger_feed_sources_list.
Exemple d'appel{"name": "ledger_feeds_preview", "arguments": {"toolName": "texte", "integrationId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - ledger_feeds_run≈ 224 tokens
Run a feed immediately over its own window and record what it finds. Use it right after creating one to prove the mapping works — a run that comes back `empty` names the path that missed, which is what you fix with ledger_feeds_update. Does not move the feed's schedule. Re-running is safe: readings dedupe per time bucket. May return `needs_confirmation`.
Paramètres, retour & exemple (3)
Paramètresid· string · requis
Feed id, from ledger_feeds_list.workspace· string · optionnel
Workspace slug. Omit to use the pinned workspace.approvalId· string · optionnel
Exemple d'appel{"name": "ledger_feeds_run", "arguments": {"id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - ledger_feeds_update≈ 456 tokens
Change a feed's arguments, mapping, cadence, or pause it. Reach for this when a feed's last run reports `empty` (the response shape moved, so the mapping needs a new path) or `error`. Changing the mapping changes what the number means, so say what you're changing and why. May return `needs_confirmation`.
Paramètres, retour & exemple (10)
Paramètresid· string · requis
Feed id, from ledger_feeds_list.label· string · optionnelenabled· boolean · optionnel
false pauses it; the definition and history are kept.mapping· object · optionnelschedule· object · optionneltoolArgs· object · optionneltoolName· string · optionnelworkspace· string · optionnel
Workspace slug. Omit to use the pinned workspace.approvalId· string · optionnelwindowHours· integer · optionnel
Exemple d'appel{"name": "ledger_feeds_update", "arguments": {"id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - ledger_metric_presets_adopt≈ 304 tokens
Creates the named presets as real metrics the workspace owns, tagged from the catalog. Safe to repeat: a preset the workspace already has comes back `already_present` rather than creating a second series, and a workspace's own renames and targets are never overwritten. Adopt only what the user agreed to — a metric nobody reads is noise on the Metrics tab, and eight thoughtful ones beat forty. Tell them the metrics start empty and the next step is a feed (ledger_feeds_create) or a first reading. May return `needs_confirmation`.
Paramètres, retour & exemple (3)
Paramètresslugs· array · requis
Preset slugs from ledger_metric_presets_list.workspace· string · optionnel
Workspace slug. Ignored for workspace API keys.approvalId· string · optionnel
Exemple d'appel{"name": "ledger_metric_presets_adopt", "arguments": {"slugs": []}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - ledger_metric_presets_list≈ 380 tokens
Ready-made metrics a business can start tracking, each with a unit, a cadence, which direction is good, a business surface (facet), and cross-cutting tags. Reach for this when a workspace has few or no metrics, when someone asks what they should be measuring, or when a decision needs a number to settle against and none exists. Filter by `facet` (where it lives in the business) or `tag` (what kind of number it is). Suggest a SMALL set — three to six that fit what you know about this business — and say in one sentence why each one, rather than listing the catalog. Adopt with ledger_metric_presets_adopt. These are starting points: a workspace renames and retargets them freely afterwards.
Paramètres, retour & exemple (2)
Paramètrestag· string · optionnel · revenue | growth | retention | efficiency | quality | speed | cost | risk
Cross-cutting bucket, e.g. retention, cost, speed.facet· string · optionnel · product | pricing | gtm | sales | people | ops | tooling | finance
Business surface, matching the Ledger facet taxonomy.
Exemple d'appel{"name": "ledger_metric_presets_list", "arguments": {"tag": "revenue", "facet": "product"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - ledger_metric_starters_adopt≈ 303 tokens
Creates a starter's metrics at their levels and links them. Pass `slugs` to keep only some of its metrics; links are made only where both ends exist. Safe to repeat and safe after a different starter: metrics the workspace already has are left as they are and get linked into the tree. Adopt only what the user agreed to. Tell them the metrics start empty and the next step is connecting a source (ledger_feeds_create) or a first reading. May return `needs_confirmation`.
Paramètres, retour & exemple (4)
Paramètresslugs· array · optionnel
The starter's metrics to keep. Omit for all of them.starter· string · requis
Starter slug from ledger_metric_starters_list.workspace· string · optionnel
Workspace slug. Ignored for workspace API keys.approvalId· string · optionnel
Exemple d'appel{"name": "ledger_metric_starters_adopt", "arguments": {"starter": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - ledger_metric_starters_list≈ 226 tokens
Starter trees by shape of business or team (subscription software, services firm, online store, sales team, service operation). Each lists its metrics with a level (outcome / driver / activity) and the links between them (which number moves which). Reach for this before ledger_metric_presets_list when a workspace has no metrics yet or asks how its numbers fit together: pick the starter that matches what you know about the business, describe its tree in a sentence or two, and offer to adopt it with ledger_metric_starters_adopt, dropping any metric that doesn't fit.
Paramètres, retour & exemple (0)
Exemple d'appel{"name": "ledger_metric_starters_list", "arguments": {}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - ledger_metrics_archive≈ 301 tokens
Takes a metric out of the gallery (`archived: true`) or puts it back (`false`). Readings stay, and entries that settled against it still read correctly — this is the cleanup for a metric minted once and abandoned, or one the workspace stopped watching. `metricId` accepts the id or slug from ledger_metrics_list. May return `needs_confirmation`.
Paramètres, retour & exemple (4)
Paramètresarchived· boolean · requis
true to archive, false to restore.metricId· string · requis
Metric id or slug (from ledger_metrics_list).workspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.approvalId· string · optionnel
Approval id from a prior needs_confirmation envelope.
Exemple d'appel{"name": "ledger_metrics_archive", "arguments": {"archived": true, "metricId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - ledger_metrics_create≈ 598 tokens
Create a metric — a number the workspace watches (triage time, weekly signups, cost per run). Check ledger_metrics_list first; names are unique per workspace. When a user says they want to track or measure something, offer this. May return `needs_confirmation`.
Paramètres, retour & exemple (8)
Paramètresicon· string · optionnel · chart-line | dollar-sign | banknote | landmark | piggy-bank | wallet | coins | receipt
The thing the number counts, e.g. phone for calls, landmark for profit.name· string · requis
e.g. "Triage time".unit· string · optionnel
Display unit — "min", "%", "$", "tickets/day".level· string · optionnel · outcome | driver | activity
outcome = what the business is judged on; driver = moves an outcome; activity = daily work.drives· array · optionnel
Ids of existing metrics this one moves.workspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.approvalId· string · optionneldescription· string · optionnel
What the number means and where it comes from.
Exemple d'appel{"name": "ledger_metrics_create", "arguments": {"name": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - ledger_metrics_get≈ 484 tokens
One metric's definition (unit, kind, direction, target, cadence) plus its readings newest first and the open decisions bound to it. Use before answering 'how is X trending?' or before recording a reading against it. `metricId` accepts the id or the snake_case slug from ledger_metrics_list. For an event metric whose readings carry labels, `labels` lists each label and its values, largest total first. Pass `slice` to get the series for part of it ("new users in DE"), or `by` to split the series by one label ("new users by country"); either returns `series`, summed per `bucket`.
Paramètres, retour & exemple (5)
Paramètresby· string · optionnel
Event metrics only. A label name to split the series by.slice· object · optionnel
Event metrics only. Per label, the values to keep: { country: ["DE", "AT"] } keeps readings from DE or AT; several labels must all match. Names and values come from `labels`.bucket· string · optionnel · day | week | month
Series bucket when `slice` or `by` is set. Default week.metricId· string · requis
Metric id or slug (from ledger_metrics_list).workspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.
Exemple d'appel{"name": "ledger_metrics_get", "arguments": {"metricId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - ledger_metrics_list≈ 190 tokens
The numbers the workspace watches — each with unit, latest reading, and how many open decisions are bound to it. Consult when a user mentions a number that sounds like a tracked metric, and before recording a reading.
Paramètres, retour & exemple (1)
Paramètresworkspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.
Exemple d'appel{"name": "ledger_metrics_list", "arguments": {"workspace": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - ledger_metrics_record_reading≈ 663 tokens
Record one observation of a tracked metric. `metricId` accepts a metric id OR its snake_case slug from ledger_metrics_list; an unknown one is a not_found error — check ledger_metrics_list, create it with ledger_metrics_create, or pass `createIfMissing: true` to mint a "measure" metric at that slug in the same call (an "event" metric when the reading carries `labels`). The reading automatically lands as evidence on every open decision whose prediction is bound to this metric — so when a user reports a number ("triage is down to 12 minutes"), offer to record it. For event-kind metrics, omit `value` to count one occurrence. May return `needs_confirmation`.
Paramètres, retour & exemple (9)
Paramètresat· string · optionnel
ISO timestamp the reading is for. Defaults to now; set it when backfilling an earlier reading.key· string · optionnel
Idempotency key (e.g. "2026-w32") — a repeat write with the same key returns the original reading instead of doubling the series. Use for scheduled/recurring recordings. The key is per set of labels, so one key per day can cover every country.note· string · optionnel
Where the number came from, if worth recording.value· number · optionnel
The observed value, in the metric's unit. Omit for event-kind metrics to record one occurrence.labels· object · optionnel
Event metrics only. What this count is broken down by, e.g. { country: "DE", plan: "pro" } — snake_case names, string values. Lets the metric be read and claimed by slice later. Refused on a measure.metricId· string · requis
Metric id or slug (from ledger_metrics_list).workspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.approvalId· string · optionnelcreateIfMissing· boolean · optionnel
Mint the metric when the slug is unknown. Default false — an unknown slug is an error, so a typo can't quietly start a second series.
Exemple d'appel{"name": "ledger_metrics_record_reading", "arguments": {"metricId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - ledger_metrics_update≈ 857 tokens
Corrects a metric's name, unit, description, kind (measure / event), direction (which way is good), target, cadence, icon, level, or the metrics it drives (its place in the metric tree). Readings are untouched. Only what you pass changes. The slug is not editable here — external writers address metrics by slug. Fails with conflict when a rename collides with a live metric. `metricId` is the id from ledger_metrics_list. May return `needs_confirmation`.
Paramètres, retour & exemple (13)
Paramètresicon· ? · optionnel
The mark the metric wears in every tool: the thing it counts (phone for calls, landmark for profit). "" goes back to the catalog's icon.kind· string · optionnel · measure | event
measure = a value each reading; event = a count of occurrences.name· string · optionnelunit· string · optionnel
"min", "%", "$", "tickets/day".level· ? · optionnel
outcome = what the business is judged on; driver = a number that moves an outcome; activity = daily work. "" unplaces it.drives· array · optionnel
Ids of the metrics this one moves. Replaces the current set; pass the full list. Loops are refused.target· ? · optionnel
Goal value in the metric's unit; null clears.cadence· string · optionnel · | daily | weekly | monthly | quarterly
How often a reading is expected.metricId· string · requis
Metric id (from ledger_metrics_list).direction· string · optionnel · up | down | none
up = higher is better, down = lower is better, none.workspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.approvalId· string · optionnel
Approval id from a prior needs_confirmation envelope.description· string · optionnel
Exemple d'appel{"name": "ledger_metrics_update", "arguments": {"metricId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - ledger_plan_add≈ 594 tokens
Adds a plan item to an OPEN decision (the work that carries it out: a post, a launch step, an email). Omit entryId for a standalone date (a holiday, an event you're only watching). Items are all-day unless you pass startTime with timeZone (and optionally endTime), for a webinar, a scheduled post, or a launch at noon. If the date costs money or time and comes with an expectation, record it as a decision with ledger_entries_create instead. Use repeatWeeklyUntil for a weekly cadence: it writes one row per week (max 60), each movable on its own. Fails with conflict once the decision is settled. May return `needs_confirmation`.
Paramètres, retour & exemple (13)
Paramètresurl· string · optionnel
Where the work lives (draft, deck, published post).note· string · optionneltags· array · optionnel
What kind of work it is: blog, video, social, event… Reuse the workspace's existing tags (see ledger_plan_list).dueOn· string · requis
A calendar day, YYYY-MM-DD.title· string · requisendTime· string · optionnel
Same-day end, after startTime.entryId· string · optionnel
The open decision this carries out.timeZone· string · optionnel
IANA zone the time is in (America/Chicago). Required with startTime; use the user's own zone.startTime· string · optionnel
Omit for an all-day item. 24-hour HH:MM in timeZone.workspace· string · optionnel
Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.approvalId· string · optionnel
Approval id from a prior needs_confirmation envelope.ownerUserId· string · optionnel
A workspace member's user id.repeatWeeklyUntil· string · optionnel
Also add a copy every 7 days through this day.
Exemple d'appel{"name": "ledger_plan_add", "arguments": {"dueOn": "texte", "title": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]}
+ 169 autres outils (affichage limité à 120).
C'est votre serveur ?
Revendiquez-le sur l'espace créateur (preuve GitHub, domaine ou npm) pour afficher le badge « propriétaire vérifié » et lancer un pentest comportemental à la demande afin d'obtenir le badge « Vérifié ».