Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

ZeroWidth Caliper

REMOTE · API.ZEROWIDTH.AI

Build datasets and rubrics, then run evals that score your AI in Caliper.

Available components

+3 this week 73 Trust /100

Last scanned (22 hours ago)

Scores higher than 64% of remote servers

Reachable. Last reached 23 Oct 2026.

Category Testing and QA

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →

Endpoint Security57
Transport & Reachability100
Schema Quality & AI Usability86
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (excellent).Pass
  • Tool/resource definitions use about 12802 tokens (~71/item across 179 items; 45 tools + 134 resources), lean.Pass
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management50
  • Stability observed for 15 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage97
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 92% of tool parameters carry a description.Partial
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • All 4 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
  • An AI judge read all 46 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 22 Oct 26 +1
    • Tool “search_docs” rewrote its description, which is the text the model reads security
  • 20 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 37 to 40. That category is still filling its 30-day observation window: 11 days of observed history at the previous scan, 12 at this one. The score rises as the window fills, whether or not the server changes.

  • 18 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 30 to 33. That category is still filling its 30-day observation window: 9 days of observed history at the previous scan, 10 at this one. The score rises as the window fills, whether or not the server changes.

  • 17 Oct 26 0
    • Tool “search_workspace” rewrote its description, which is the text the model reads security
    • “search_workspace” added an optional parameter “folderId” cosmetic
    • “search_workspace” reworded the description of “kinds” cosmetic
    • “search_workspace” reworded the description of “q” cosmetic
  • 16 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

  • 15 Oct 26 0
    • Server version: 0.0.0 → 1.0.0 functional
  • 14 Oct 26 +1
    • Tool “caliper_datasets_add_items” rewrote its description, which is the text the model reads security
    • Tool “caliper_datasets_create” rewrote its description, which is the text the model reads security
    • Tool “caliper_datasets_update_item” rewrote its description, which is the text the model reads security
    • Tool “caliper_evals_update” rewrote its description, which is the text the model reads security
    • New resource “prism/synthetic-panels” functional
    • “caliper_evals_create” added an optional parameter “scenarioId” cosmetic
    • “caliper_evals_run” added an optional parameter “scenarioId” cosmetic
    • “caliper_evals_update” added an optional parameter “scenarioId” cosmetic
    • “caliper_datasets_update_item” reworded the description of “item” cosmetic
  • 13 Oct 26 +1
    • Judged manipulation: unverified → pass ▲ security
    • “caliper_evals_update” reworded the description of “regressionThreshold” cosmetic
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 23 Oct 2026 · Probed https://api.zerowidth.ai/mcp/x/caliper

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=api.zerowidth.ai CN=WR3,O=Google Trust Services,C=US 20 Sept 2026 19 Dec 2026 RSA 2048 SHA256-RSA ef3f24a330d02ed80992778a6ead44bf
SANs: api.zerowidth.ai
CN=WR3,O=Google Trust Services,C=US (CA) CN=GTS Root R1,O=Google Trust Services LLC,C=US 13 Dec 2023 20 Feb 2029 RSA 2048 SHA256-RSA 7ff005a91568d63abc22861684aa4b5a
CN=GTS Root R1,O=Google Trust Services LLC,C=US (CA) CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE 19 Jun 2020 28 Jan 2028 RSA 4096 SHA256-RSA 77bd0d6cdb36f91aea210fc4f058d30d

Background: What to check on a remote MCP endpoint →

DNSSEC insecure

Validation of api.zerowidth.ai. — Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
ai. present 3799 8 Verified
zerowidth.ai. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication No authorisation required

The endpoint answered without asking for a token. Anyone who knows the URL can reach it.

Result No authorisation required
HTTP status 200

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://api.zerowidth.ai/mcp/x/caliper Verified 200
http (plaintext) http://api.zerowidth.ai/mcp/x/caliper HTTPS enforced
MCP tools · 45 exposed · ~9,202 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
caliper_datasets_add_items ~156

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.

NameTypeReqDescription
approvalIdstring–Approval id from a prior needs_confirmation response. Omit on the first call.
datasetIdstringyesId of the dataset to extend.
itemsarrayyesItems to append (1-100).
workspacestring–Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.

No output schema declared.

No examples provided.

caliper_datasets_create ~422

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.

NameTypeReqDescription
approvalIdstring–Approval id from a prior needs_confirmation response. Omit on the first call.
descriptionstring–What this dataset covers.
itemsarrayyesTest items (1-100).
titlestringyesDataset name (2-120 chars).
visibilitystring–Who can see it: PRIVATE (only the user), WORKSPACE (every member, the default), or SHARED (specific people, granted afterwards). Say 'make it private' → PRIVATE.
workspacestring–Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.

No output schema declared.

No examples provided.

caliper_datasets_delete ~142

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`.

NameTypeReqDescription
approvalIdstring–Approval id from a prior needs_confirmation response. Omit on the first call.
datasetIdstringyesDataset id, from caliper_datasets_list.
workspacestring–Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.

No output schema declared.

No examples provided.

caliper_datasets_generate ~627

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.

NameTypeReqDescription
approvalIdstring–Approval id from a prior needs_confirmation response. Omit on the first call.
countinteger–Items to generate, 1-50. Default 10.
datasetDescriptionstring–Description stored on the dataset.
descriptionstring–What the target system does / what to cover. Required (≥10 chars) when flowId is omitted; optional guidance otherwise.
dispositionstring–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 per…
expectedStylestring–With outputsMode `expected`: `verbatim` literal reference answers (default) or `conditions` — what a correct answer must do, when there's no single right wording.
flowIdstring–Workbench flow to generate cases for (from workbench_flows_list). Required unless description is given.
outputsModestring–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 rev…
presetIdstring–Framing preset. Default `blank`; the others bias every item toward that attack class.
shapestring–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 Ca…
titlestringyesDataset name.
visibilitystring–Who can see it: PRIVATE (only the user), WORKSPACE (every member, the default), or SHARED (specific people, granted afterwards). Say 'make it private' → PRIVATE.
workspacestring–Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.

No output schema declared.

No examples provided.

caliper_datasets_generate_items ~485

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.

NameTypeReqDescription
anchorItemIdstring–An item id (from caliper_datasets_get) the new items should resemble most.
approvalIdstring–Approval id from a prior needs_confirmation response. Omit on the first call.
countinteger–Items to add, 1-20. Default 5.
datasetIdstringyesDataset to extend, from caliper_datasets_list.
descriptionstring–What to bias toward, e.g. 'angry customers', 'ambiguous refund questions'.
dispositionstring–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 per…
expectedStylestring–With outputsMode `expected`: `verbatim` literal reference answers (default) or `conditions` — what a correct answer must do, when there's no single right wording.
outputsModestring–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 rev…
shapestring–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 Ca…
workspacestring–Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.

No output schema declared.

No examples provided.

caliper_datasets_get ~186

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.

NameTypeReqDescription
datasetIdstringyesDataset id, from caliper_datasets_list.
limitinteger–Items per page, 1-100. Default 25.
offsetinteger–Items to skip. Default 0.
workspacestring–Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.

No output schema declared.

No examples provided.

caliper_datasets_list ~68

Lists datasets in the active workspace. Returns summaries (id, name, item count); items are not included.

NameTypeReqDescription
workspacestring–Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.

No output schema declared.

No examples provided.

caliper_datasets_remove_item ~137

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`.

NameTypeReqDescription
approvalIdstring–Approval id from a prior needs_confirmation response. Omit on the first call.
datasetIdstringyesDataset id.
itemIdstringyesItem id, from caliper_datasets_get.
workspacestring–Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.

No output schema declared.

No examples provided.

caliper_datasets_update ~201

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`.

NameTypeReqDescription
approvalIdstring–Approval id from a prior needs_confirmation response. Omit on the first call.
datasetIdstringyesDataset id, from caliper_datasets_list.
description––New description; null clears it.
titlestring–New name.
visibilitystring–Who can see it: PRIVATE (only the user), WORKSPACE (every member, the default), or SHARED (specific people, granted afterwards). Say 'make it private' → PRIVATE.
workspacestring–Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.

No output schema declared.

No examples provided.

caliper_datasets_update_item ~203

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`.

NameTypeReqDescription
approvalIdstring–Approval id from a prior needs_confirmation response. Omit on the first call.
datasetIdstringyesDataset id.
itemobjectyesThe full replacement item, same four shapes as caliper_datasets_create.
itemIdstringyesItem id, from caliper_datasets_get.
workspacestring–Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.

No output schema declared.

No examples provided.

caliper_evals_create ~560

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.

NameTypeReqDescription
approvalIdstring–Approval id from a prior needs_confirmation response. Omit on the first call.
datasetIdstringyesDataset of test items.
descriptionstring––
externalLabelstring–External evals only: what produces the outputs, e.g. 'CI' or 'prod pipeline'. Free text, shown on the eval.
flowIdstring–Workbench flow id to evaluate. Required unless target is 'external'.
flowRevisionIdstring–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.
flowStagestring–Which stage to run against. Use 'draft' while iterating pre-publish. Default 'published'.
rubricIdstringyesRubric the judge scores with.
scenarioIdstring–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_…
targetstring–'workbench_flow' (default; needs flowId) or 'external' (the user's own model; outputs arrive through the public API).
titlestringyesEval name (2-120 chars).
visibilitystring–Who can see it: PRIVATE (only the user), WORKSPACE (every member, the default), or SHARED (specific people, granted afterwards). Say 'make it private' → PRIVATE.
workspacestring–Workspace slug override.

No output schema declared.

No examples provided.

caliper_evals_delete ~112

Deletes an eval and stops its schedule. Run history is kept but no longer reachable from the eval. May return `needs_confirmation`.

NameTypeReqDescription
approvalIdstring–Approval id from a prior needs_confirmation response. Omit on the first call.
evalIdstringyesEval id, from caliper_evals_list.
workspacestring–Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.

No output schema declared.

No examples provided.

caliper_evals_get ~152

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.

NameTypeReqDescription
evalIdstringyesEval id.
workspacestring–Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.

No output schema declared.

No examples provided.

caliper_evals_list ~82

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.

NameTypeReqDescription
workspacestring–Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.

No output schema declared.

No examples provided.

caliper_evals_run ~271

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`.

NameTypeReqDescription
approvalIdstring–Approval id from a prior needs_confirmation envelope.
evalIdstringyesEval to run.
labelstring–Short label for the run, e.g. 'after refund-policy fix'.
scenarioId––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 h…
workspacestring–Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.

No output schema declared.

No examples provided.

caliper_evals_runs_cancel ~193

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`.

NameTypeReqDescription
approvalIdstring–Approval id from a prior needs_confirmation response. Omit on the first call.
evalIdstringyesEval the run belongs to.
runIdstringyesRun id, from caliper_evals_run or caliper_evals_runs_list.
workspacestring–Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.

No output schema declared.

No examples provided.

caliper_evals_runs_get ~269

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.

NameTypeReqDescription
evalIdstringyesEval the run belongs to.
itemsstring–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.
limitinteger–How many items for `worst`, default 10.
runIdstringyesRun id, from caliper_evals_runs_list or caliper_evals_run.
workspacestring–Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.

No output schema declared.

No examples provided.

caliper_evals_runs_item_execution ~239

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.

NameTypeReqDescription
evalIdstringyesEval the run belongs to.
runIdstringyesRun id.
runItemIdstringyesThe run item's `id` from caliper_evals_runs_get (not its dataset itemId).
workspacestring–Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.

No output schema declared.

No examples provided.

caliper_evals_runs_list ~154

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.

NameTypeReqDescription
evalIdstringyesEval whose runs to list.
workspacestring–Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.

No output schema declared.

No examples provided.

caliper_evals_update ~445

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`.

NameTypeReqDescription
approvalIdstring–Approval id from a prior needs_confirmation response. Omit on the first call.
description––New description; null clears it.
evalIdstringyesEval id, from caliper_evals_list.
regressionThreshold––Score drop vs the previous run that raises an alert, on the 0–1 score scale (0.1 = 10 points); null turns alerts off.
runOnPublishboolean–Run whenever the targeted flow publishes a version.
scenarioId––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.
scheduleDayOfWeek––Weekly only: 0 = Sunday … 6 = Saturday.
scheduleInterval––Run cadence; null clears the schedule. Each scheduled run spends credit — say so.
scheduleTime––Daily/weekly anchor, HH:MM 24-hour in scheduleTimezone. Null = one interval from now.
scheduleTimezone––IANA timezone for scheduleTime, e.g. America/Chicago.
titlestring–New name.
visibilitystring–Who can see it: PRIVATE (only the user), WORKSPACE (every member, the default), or SHARED (specific people, granted afterwards). Say 'make it private' → PRIVATE.
workspacestring–Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.

No output schema declared.

No examples provided.

caliper_flow_performance ~174

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.

NameTypeReqDescription
flowIdstringyesWorkbench flow id to report on.
workspacestring–Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.

No output schema declared.

No examples provided.

caliper_rubrics_create ~211

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'.

NameTypeReqDescription
approvalIdstring–Approval id from a prior needs_confirmation response. Omit on the first call.
criteriaarrayyes–
descriptionstring––
titlestringyesRubric name (2-120 chars).
visibilitystring–Who can see it: PRIVATE (only the user), WORKSPACE (every member, the default), or SHARED (specific people, granted afterwards). Say 'make it private' → PRIVATE.
workspacestring–Workspace slug override.

No output schema declared.

No examples provided.

caliper_rubrics_delete ~118

Deletes a rubric. Existing evals keep their snapshot of it and keep running; nothing new can bind to it. May return `needs_confirmation`.

NameTypeReqDescription
approvalIdstring–Approval id from a prior needs_confirmation response. Omit on the first call.
rubricIdstringyesRubric id, from caliper_rubrics_list.
workspacestring–Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.

No output schema declared.

No examples provided.

caliper_rubrics_get ~123

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.

NameTypeReqDescription
rubricIdstringyesRubric id.
workspacestring–Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.

No output schema declared.

No examples provided.

caliper_rubrics_list ~108

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.

NameTypeReqDescription
workspacestring–Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.

No output schema declared.

No examples provided.

caliper_rubrics_update ~246

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`.

NameTypeReqDescription
approvalIdstring–Approval id from a prior needs_confirmation response. Omit on the first call.
criteriaarray–Replacement criteria (1-10) — the whole list, not a diff.
description––New description; null clears it.
rubricIdstringyesRubric id, from caliper_rubrics_list.
titlestring–New name.
visibilitystring–Who can see it: PRIVATE (only the user), WORKSPACE (every member, the default), or SHARED (specific people, granted afterwards). Say 'make it private' → PRIVATE.
workspacestring–Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.

No output schema declared.

No examples provided.

caliper_source_feeds_list ~111

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.

NameTypeReqDescription
sourceIdstringyesSource id, from caliper_sources_list or search_workspace.
workspacestring–Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.

No output schema declared.

No examples provided.

caliper_source_feeds_stop ~143

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`.

NameTypeReqDescription
approvalIdstring–Approval id from a prior needs_confirmation response. Omit on the first call.
feedIdstringyesLive dataset id, from caliper_source_feeds_list.
sourceIdstringyesSource id, from caliper_sources_list or search_workspace.
workspacestring–Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.

No output schema declared.

No examples provided.

caliper_sources_list ~129

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.

NameTypeReqDescription
workspacestring–Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.

No output schema declared.

No examples provided.

caliper_sources_over_time ~198

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.

NameTypeReqDescription
daysinteger–How many days back, default 30.
sourceIdstringyesSource id, from caliper_sources_list or search_workspace.
workspacestring–Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.

No output schema declared.

No examples provided.

caliper_sources_to_dataset ~378

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`.

NameTypeReqDescription
approvalIdstring–Approval id from a prior needs_confirmation response. Omit on the first call.
datasetIdstring–Add to this dataset…
daystring–One UTC day, YYYY-MM-DD.
documentstring–Only traces whose lookups hit this document.
errorsOnlyboolean–Only failed traces.
keepAdding––Keep adding new matches as they arrive, taking one in this many (1 = every one).
limitinteger–Most recent N, default 100.
newDatasetNamestring–…or start one with this name.
purposestringyesreview | eval | spec.
sourceIdstringyesSource id, from caliper_sources_list or search_workspace.
toolstring–Only traces that called this tool.
workspacestring–Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.

No output schema declared.

No examples provided.

caliper_starters_install ~120

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.

NameTypeReqDescription
approvalIdstring–Approval id from a prior needs_confirmation response. Omit on the first call.
slugstringyesStarter slug from caliper_starters_list.
workspacestring–Workspace slug override.

No output schema declared.

No examples provided.

caliper_starters_list ~125

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.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

caliper_traces_get ~159

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.

NameTypeReqDescription
sourceIdstringyesSource id, from caliper_sources_list or search_workspace.
traceIdstringyesTrace id, from caliper_traces_list.
workspacestring–Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.

No output schema declared.

No examples provided.

caliper_traces_list ~206

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.

NameTypeReqDescription
beforestring–Paging: the nextBefore from the previous page.
daystring–One UTC day, YYYY-MM-DD.
documentstring–Only traces whose lookups hit this document.
errorsOnlyboolean–Only failed traces.
sourceIdstringyesSource id, from caliper_sources_list or search_workspace.
toolstring–Only traces that called this tool.
workspacestring–Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.

No output schema declared.

No examples provided.

comments_create ~184

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.

NameTypeReqDescription
approvalIdstring––
bodystringyes–
entityIdstringyes–
entityKindstringyesWhat the thread hangs on.
mentionedUserIdsarray––
rootIdstring–Reply into this thread; omit to start a new one.
workspacestring–Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.

No output schema declared.

No examples provided.

comments_list ~105

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.

NameTypeReqDescription
entityIdstringyes–
entityKindstringyesWhat the thread hangs on.
workspacestring–Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.

No output schema declared.

No examples provided.

comments_resolve ~118

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.

NameTypeReqDescription
approvalIdstring––
resolvedbooleanyes–
rootIdstringyes–
workspacestring–Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.

No output schema declared.

No examples provided.

entity_tags_browse ~149

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.

NameTypeReqDescription
tagstring–A tag to expand into its items. Omit to list tags.
workspacestring–Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.

No output schema declared.

No examples provided.

entity_tags_get ~130

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.

NameTypeReqDescription
entityKindstringyesWhich kind the ids belong to.
idsarrayyes–
workspacestring–Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.

No output schema declared.

No examples provided.

entity_tags_set ~173

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.

NameTypeReqDescription
approvalIdstring–Approval id from a prior needs_confirmation response. Omit on the first call.
entityIdstringyes–
entityKindstringyes–
tagsarrayyes–
workspacestring–Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.

No output schema declared.

No examples provided.

get_doc ~73

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.

NameTypeReqDescription
slugstringyesPage slug. Accepts 'compass/api', '/compass/api', or 'docs/compass/api'.

No output schema declared.

No examples provided.

list_docs ~75

Enumerate all available docs pages, optionally filtered by product (e.g. 'compass', 'legal', 'overview'). Use this to discover what slugs exist before calling `get_doc`. No authentication required.

NameTypeReqDescription
productstring–Optional product slug filter (e.g. 'compass', 'legal', 'overview').

No output schema declared.

No examples provided.

search_docs ~111

Search ZeroWidth product documentation. Returns matching pages with title, slug, public URL, and a query-relevant snippet. Use this when the user asks about a ZeroWidth product (Compass, Workbench, Caliper, Prism, Ledger, Napkin, the assistant), an API behavior, or a policy. No authentication required — the docs corpus is public.

NameTypeReqDescription
limitinteger–Max number of results. Defaults to 10.
querystringyesSearch query — keywords or natural-language phrase.

No output schema declared.

No examples provided.

search_workspace ~431

Finds anything in the workspace in one call — uploaded files (searching the text inside them), folders, Workbench flows, shims, knowledge bases and tasks, Compass pages and changes, Caliper datasets, evals, rubrics, reviews, specs and sources, Ledger entries, Napkin sketches, decks, docs, sheets, diagrams and interfaces. The same search the person uses in Home. Use it FIRST whenever the user mentions something without saying where it lives ('the SOW', 'the dispatch interviews', 'that invoice'). The query is words in any order: each word must appear in the thing's name, its tags, the names of the folders it's filed under, or the text inside it — so 'northwind sow' finds the SOW filed in the Northwind folder, and 'dispatch interview' finds 'Dispatcher interview 1.md'. Results are ranked best first. Each hit carries its id, kind, path (for a link), folderPath (where it's filed, top-down), tags, and a snippet when the words were found inside it rather than in its name — say where a thing lives using folderPath. A file's id feeds workspace_files_read; other ids feed the kind's *_get tool. Pass folderId to search only inside one folder and everything under it. If nothing comes back, try fewer or different words before telling the user it doesn't exist. Results only include what the user can see, and only kinds this token may read.

NameTypeReqDescription
folderIdstring–Only search inside this folder and the folders under it (ids from workspace_folders_browse or a folder hit).
kindsarray–Restrict to these kinds (file, folder, flow, page, doc, dataset, …). Omit to search everything.
limitinteger––
qstringyesWords, any order, case-insensitive. Fewer words find more.
workspacestring–Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.

No output schema declared.

No examples provided.

Install

How do I install the ZeroWidth Caliper MCP server?

ZeroWidth Caliper is a hosted endpoint at https://api.zerowidth.ai/mcp/x/caliper, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · api.zerowidth.ai

# add to Claude Code
claude mcp add --transport http ai-zerowidth-caliper 'https://api.zerowidth.ai/mcp/x/caliper'
Common questions

What is the ZeroWidth Caliper MCP server?

ZeroWidth Caliper is an MCP server listed in the public MCP registry as ai.zerowidth/caliper. Build datasets and rubrics, then run evals that score your AI in Caliper. This page covers its hosted endpoint (https://api.zerowidth.ai/mcp/x/caliper).

Is the ZeroWidth Caliper MCP server safe to use?

ZeroWidth Caliper scores 73 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the ZeroWidth Caliper MCP server expose?

ZeroWidth Caliper exposes 45 tools: search_docs, get_doc, list_docs, caliper_datasets_get, caliper_datasets_update, and 40 more. Their descriptions and schemas cost roughly 9,202 tokens of context every time the server is loaded.

Does the ZeroWidth Caliper MCP server require authentication?

No. We connected to ZeroWidth Caliper without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

Is the ZeroWidth Caliper MCP server still maintained?

ZeroWidth Caliper is still listed as active in the MCP registry. We last reached this channel on 23 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.