{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_2ay37xjbt6xv","handle":"zerowidth-caliper","url":"https://wellknown.network/agents/zerowidth-caliper","links":{"self":"https://wellknown.network/agents/zerowidth-caliper/record.json","html":"https://wellknown.network/agents/zerowidth-caliper","markdown":"https://wellknown.network/agents/zerowidth-caliper/record.md","api":"https://wellknown.network/api/v1/agents/zerowidth-caliper","status":"https://wellknown.network/api/v1/agents/zerowidth-caliper/status","claim":"https://wellknown.network/agents/zerowidth-caliper/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/zerowidth-caliper/claim.json","badge":"https://wellknown.network/agents/zerowidth-caliper/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/zerowidth-caliper/history","tools":"https://wellknown.network/api/v1/agents/zerowidth-caliper/tools"},"ard":{"identifier":"urn:air:api.zerowidth.ai:server:zerowidth-caliper","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"ZeroWidth Caliper","summary":"Build datasets and rubrics, then run evals that score your AI in Caliper.","description":"Build datasets and rubrics, then run evals that score your AI in Caliper.","publisher":{"name":"ai.zerowidth","url":null},"homepage":"https://zerowidth.ai/docs/overview/mcp#connect-to-one-product","repository":null,"version":"1.0.0","license":null,"protocols":["mcp"],"tags":[],"pricing":null,"endpoints":[{"url":"https://api.zerowidth.ai/mcp/x/caliper","type":"mcp_streamable_http","auth":null,"probeable":true}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-10-07T14:20:28.67034Z","publishedAt":"2026-10-07T14:20:28.67034Z","registryName":"ai.zerowidth/caliper"},"attribution":{"kind":"mcp_registry","name":"mcp_registry","summary":"mcp_registry","version":"mcp_registry","description":"mcp_registry","homepageUrl":"mcp_registry","publisherName":"mcp_registry"}},"derived":{"capabilities":[{"slug":"content.writing","name":"Writing & Editing","confidence":1,"provenance":"derived"},{"slug":"ai.evaluation","name":"Evaluation & Benchmarks","confidence":1,"provenance":"derived"},{"slug":"code.documentation","name":"Code Documentation","confidence":0.583,"provenance":"derived"},{"slug":"security.scanning","name":"Security Scanning","confidence":0.583,"provenance":"derived"},{"slug":"knowledge.reasoning","name":"Reasoning & Planning","confidence":0.54,"provenance":"derived"},{"slug":"documents.invoice-processing","name":"Invoice Processing","confidence":0.525,"provenance":"derived"},{"slug":"knowledge.knowledge-graph","name":"Knowledge Graphs","confidence":0.525,"provenance":"derived"}],"categories":["ai","code","content","documents","knowledge","security"],"language":"en"},"observed":{"status":"live","statusReason":"Responded 2h ago.","lastOkAt":"2026-10-23T06:25:50.707Z","lastProbedAt":"2026-10-23T06:25:50.707Z","statusComputedAt":"2026-10-23T06:28:51.267Z","reliability30d":{"probes":52,"successRate":1,"p50Ms":315,"basis":"service","measures":{"availability":"availability","latency":"response time","tools":"tool surface observed","summary":"Checks reached the service itself."},"checks":{"total":52,"ok":52,"authBoundaryOk":0,"serviceOk":52,"note":"Counted from the observation rows for the window, checks of the server only (HTTP, A2A card, MCP initialize). ok = authBoundaryOk + serviceOk. `probes` is the sum of daily rollups and includes registry checks, so it can differ from `total`."}},"latestObservations":[{"at":"2026-10-23T06:25:50.707Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":214,"error":null,"detail":{"tools":[{"name":"search_docs","description":"Search ZeroWidth product documentation. Returns matching pages with title, slug, public URL, and a query-relevant snippet. Use this when the user asks about a Z"},{"name":"get_doc","description":"Fetch the full Markdown body of a specific docs page by its slug. Use this after `search_docs` when the user needs the complete content of a page. No authentica"},{"name":"list_docs","description":"Enumerate all available docs pages, optionally filtered by product (e.g. 'compass', 'legal', 'overview'). Use this to discover what slugs exist before calling `"},{"name":"caliper_datasets_get","description":"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"},{"name":"caliper_datasets_update","description":"Changes a dataset's title, description, or visibility. Pass only what changes; items are untouched (use caliper_datasets_add_items / caliper_datasets_update_ite"},{"name":"caliper_datasets_delete","description":"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 cali"},{"name":"caliper_datasets_update_item","description":"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 it"},{"name":"caliper_datasets_remove_item","description":"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 `ne"},{"name":"caliper_datasets_generate","description":"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 fl"},{"name":"caliper_datasets_generate_items","description":"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 the"},{"name":"caliper_rubrics_list","description":"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 "},{"name":"caliper_rubrics_get","description":"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 w"},{"name":"caliper_rubrics_update","description":"Changes a rubric's title, description, visibility, or replaces its criteria wholesale (pass the FULL list — criteria get fresh ids). Evals snapshot the rubric w"},{"name":"caliper_rubrics_delete","description":"Deletes a rubric. Existing evals keep their snapshot of it and keep running; nothing new can bind to it. May return `needs_confirmation`."},{"name":"caliper_evals_get","description":"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)"},{"name":"caliper_evals_runs_item_execution","description":"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, "},{"name":"caliper_evals_update","description":"Changes an eval's title, description, visibility, schedule (interval + time anchor), runOnPublish (queue a run whenever the flow publishes), regressionThreshold"},{"name":"caliper_evals_delete","description":"Deletes an eval and stops its schedule. Run history is kept but no longer reachable from the eval. May return `needs_confirmation`."},{"name":"caliper_evals_runs_cancel","description":"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"},{"name":"caliper_sources_list","description":"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 "},{"name":"caliper_sources_over_time","description":"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); ea"},{"name":"caliper_traces_list","description":"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"},{"name":"caliper_traces_get","description":"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 (quer"},{"name":"caliper_source_feeds_list","description":"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,"},{"name":"caliper_sources_to_dataset","description":"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 a"},{"name":"caliper_source_feeds_stop","description":"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_confirm"},{"name":"caliper_starters_list","description":"The starter sets Caliper ships: prompt injection, system-prompt leaking, over-refusal, personal-data handling, bias under ambiguity. Each is a small original da"},{"name":"caliper_starters_install","description":"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 bind"},{"name":"caliper_datasets_list","description":"Lists datasets in the active workspace. Returns summaries (id, name, item count); items are not included."},{"name":"caliper_flow_performance","description":"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-criter"},{"name":"caliper_evals_runs_list","description":"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"},{"name":"caliper_evals_runs_get","description":"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 it"},{"name":"caliper_evals_list","description":"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."},{"name":"caliper_evals_run","description":"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_edi"},{"name":"caliper_datasets_create","description":"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)"},{"name":"caliper_datasets_add_items","description":"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. "},{"name":"caliper_rubrics_create","description":"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"},{"name":"caliper_evals_create","description":"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 "},{"name":"comments_list","description":"Lists the comment threads on one workspace entity (open first, then resolved) with authors and timestamps. Read this before weighing in on contested work — the "},{"name":"comments_create","description":"Posts a comment on a workspace entity — a new thread, or a reply when rootId is given. Use it to leave findings where the discussion already lives (an eval resu"},{"name":"comments_resolve","description":"Sets a comment thread's resolved state (rootId = the thread's root comment id). Resolve ONLY when the human asked or the thread's question is demonstrably settl"},{"name":"search_workspace","description":"Finds anything in the workspace in one call — uploaded files (searching the text inside them), folders, Workbench flows, shims, knowledge bases and tasks, Compa"},{"name":"entity_tags_get","description":"Returns the tags on a batch of entities of one kind — the labels galleries organize by. Ids come from the kind's list/get tool or from search_workspace. Use it "},{"name":"entity_tags_browse","description":"Without a tag: every tag in use across the workspace with how many entities carry it, most-used first — the vocabulary the team already organizes by. With a tag"},{"name":"entity_tags_set","description":"Replaces the FULL tag set on one entity (an empty list clears it). Read the current tags with entity_tags_get first and pass the merged list — this is not addit"}],"toolCount":45,"toolsHash":"f57a3410b8c9e7f81a8ebcf398f4b689f5f258232006e7106ee51f36ad49c4f0","serverName":"zerowidth-mcp","capabilities":["tools","resources"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-22T23:28:22.852Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":550,"error":null,"detail":{"tools":[{"name":"search_docs","description":"Search ZeroWidth product documentation. Returns matching pages with title, slug, public URL, and a query-relevant snippet. Use this when the user asks about a Z"},{"name":"get_doc","description":"Fetch the full Markdown body of a specific docs page by its slug. Use this after `search_docs` when the user needs the complete content of a page. No authentica"},{"name":"list_docs","description":"Enumerate all available docs pages, optionally filtered by product (e.g. 'compass', 'legal', 'overview'). Use this to discover what slugs exist before calling `"},{"name":"caliper_datasets_get","description":"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"},{"name":"caliper_datasets_update","description":"Changes a dataset's title, description, or visibility. Pass only what changes; items are untouched (use caliper_datasets_add_items / caliper_datasets_update_ite"},{"name":"caliper_datasets_delete","description":"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 cali"},{"name":"caliper_datasets_update_item","description":"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 it"},{"name":"caliper_datasets_remove_item","description":"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 `ne"},{"name":"caliper_datasets_generate","description":"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 fl"},{"name":"caliper_datasets_generate_items","description":"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 the"},{"name":"caliper_rubrics_list","description":"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 "},{"name":"caliper_rubrics_get","description":"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 w"},{"name":"caliper_rubrics_update","description":"Changes a rubric's title, description, visibility, or replaces its criteria wholesale (pass the FULL list — criteria get fresh ids). Evals snapshot the rubric w"},{"name":"caliper_rubrics_delete","description":"Deletes a rubric. Existing evals keep their snapshot of it and keep running; nothing new can bind to it. May return `needs_confirmation`."},{"name":"caliper_evals_get","description":"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)"},{"name":"caliper_evals_runs_item_execution","description":"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, "},{"name":"caliper_evals_update","description":"Changes an eval's title, description, visibility, schedule (interval + time anchor), runOnPublish (queue a run whenever the flow publishes), regressionThreshold"},{"name":"caliper_evals_delete","description":"Deletes an eval and stops its schedule. Run history is kept but no longer reachable from the eval. May return `needs_confirmation`."},{"name":"caliper_evals_runs_cancel","description":"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"},{"name":"caliper_sources_list","description":"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 "},{"name":"caliper_sources_over_time","description":"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); ea"},{"name":"caliper_traces_list","description":"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"},{"name":"caliper_traces_get","description":"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 (quer"},{"name":"caliper_source_feeds_list","description":"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,"},{"name":"caliper_sources_to_dataset","description":"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 a"},{"name":"caliper_source_feeds_stop","description":"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_confirm"},{"name":"caliper_starters_list","description":"The starter sets Caliper ships: prompt injection, system-prompt leaking, over-refusal, personal-data handling, bias under ambiguity. Each is a small original da"},{"name":"caliper_starters_install","description":"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 bind"},{"name":"caliper_datasets_list","description":"Lists datasets in the active workspace. Returns summaries (id, name, item count); items are not included."},{"name":"caliper_flow_performance","description":"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-criter"},{"name":"caliper_evals_runs_list","description":"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"},{"name":"caliper_evals_runs_get","description":"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 it"},{"name":"caliper_evals_list","description":"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."},{"name":"caliper_evals_run","description":"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_edi"},{"name":"caliper_datasets_create","description":"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)"},{"name":"caliper_datasets_add_items","description":"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. "},{"name":"caliper_rubrics_create","description":"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"},{"name":"caliper_evals_create","description":"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 "},{"name":"comments_list","description":"Lists the comment threads on one workspace entity (open first, then resolved) with authors and timestamps. Read this before weighing in on contested work — the "},{"name":"comments_create","description":"Posts a comment on a workspace entity — a new thread, or a reply when rootId is given. Use it to leave findings where the discussion already lives (an eval resu"},{"name":"comments_resolve","description":"Sets a comment thread's resolved state (rootId = the thread's root comment id). Resolve ONLY when the human asked or the thread's question is demonstrably settl"},{"name":"search_workspace","description":"Finds anything in the workspace in one call — uploaded files (searching the text inside them), folders, Workbench flows, shims, knowledge bases and tasks, Compa"},{"name":"entity_tags_get","description":"Returns the tags on a batch of entities of one kind — the labels galleries organize by. Ids come from the kind's list/get tool or from search_workspace. Use it "},{"name":"entity_tags_browse","description":"Without a tag: every tag in use across the workspace with how many entities carry it, most-used first — the vocabulary the team already organizes by. With a tag"},{"name":"entity_tags_set","description":"Replaces the FULL tag set on one entity (an empty list clears it). Read the current tags with entity_tags_get first and pass the merged list — this is not addit"}],"toolCount":45,"toolsHash":"f57a3410b8c9e7f81a8ebcf398f4b689f5f258232006e7106ee51f36ad49c4f0","serverName":"zerowidth-mcp","capabilities":["tools","resources"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-22T16:29:44.850Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":274,"error":null,"detail":{"tools":[{"name":"search_docs","description":"Search ZeroWidth product documentation. Returns matching pages with title, slug, public URL, and a query-relevant snippet. Use this when the user asks about a Z"},{"name":"get_doc","description":"Fetch the full Markdown body of a specific docs page by its slug. Use this after `search_docs` when the user needs the complete content of a page. No authentica"},{"name":"list_docs","description":"Enumerate all available docs pages, optionally filtered by product (e.g. 'compass', 'legal', 'overview'). Use this to discover what slugs exist before calling `"},{"name":"caliper_datasets_get","description":"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"},{"name":"caliper_datasets_update","description":"Changes a dataset's title, description, or visibility. Pass only what changes; items are untouched (use caliper_datasets_add_items / caliper_datasets_update_ite"},{"name":"caliper_datasets_delete","description":"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 cali"},{"name":"caliper_datasets_update_item","description":"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 it"},{"name":"caliper_datasets_remove_item","description":"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 `ne"},{"name":"caliper_datasets_generate","description":"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 fl"},{"name":"caliper_datasets_generate_items","description":"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 the"},{"name":"caliper_rubrics_list","description":"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 "},{"name":"caliper_rubrics_get","description":"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 w"},{"name":"caliper_rubrics_update","description":"Changes a rubric's title, description, visibility, or replaces its criteria wholesale (pass the FULL list — criteria get fresh ids). Evals snapshot the rubric w"},{"name":"caliper_rubrics_delete","description":"Deletes a rubric. Existing evals keep their snapshot of it and keep running; nothing new can bind to it. May return `needs_confirmation`."},{"name":"caliper_evals_get","description":"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)"},{"name":"caliper_evals_runs_item_execution","description":"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, "},{"name":"caliper_evals_update","description":"Changes an eval's title, description, visibility, schedule (interval + time anchor), runOnPublish (queue a run whenever the flow publishes), regressionThreshold"},{"name":"caliper_evals_delete","description":"Deletes an eval and stops its schedule. Run history is kept but no longer reachable from the eval. May return `needs_confirmation`."},{"name":"caliper_evals_runs_cancel","description":"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"},{"name":"caliper_sources_list","description":"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 "},{"name":"caliper_sources_over_time","description":"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); ea"},{"name":"caliper_traces_list","description":"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"},{"name":"caliper_traces_get","description":"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 (quer"},{"name":"caliper_source_feeds_list","description":"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,"},{"name":"caliper_sources_to_dataset","description":"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 a"},{"name":"caliper_source_feeds_stop","description":"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_confirm"},{"name":"caliper_starters_list","description":"The starter sets Caliper ships: prompt injection, system-prompt leaking, over-refusal, personal-data handling, bias under ambiguity. Each is a small original da"},{"name":"caliper_starters_install","description":"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 bind"},{"name":"caliper_datasets_list","description":"Lists datasets in the active workspace. Returns summaries (id, name, item count); items are not included."},{"name":"caliper_flow_performance","description":"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-criter"},{"name":"caliper_evals_runs_list","description":"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"},{"name":"caliper_evals_runs_get","description":"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 it"},{"name":"caliper_evals_list","description":"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."},{"name":"caliper_evals_run","description":"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_edi"},{"name":"caliper_datasets_create","description":"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)"},{"name":"caliper_datasets_add_items","description":"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. "},{"name":"caliper_rubrics_create","description":"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"},{"name":"caliper_evals_create","description":"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 "},{"name":"comments_list","description":"Lists the comment threads on one workspace entity (open first, then resolved) with authors and timestamps. Read this before weighing in on contested work — the "},{"name":"comments_create","description":"Posts a comment on a workspace entity — a new thread, or a reply when rootId is given. Use it to leave findings where the discussion already lives (an eval resu"},{"name":"comments_resolve","description":"Sets a comment thread's resolved state (rootId = the thread's root comment id). Resolve ONLY when the human asked or the thread's question is demonstrably settl"},{"name":"search_workspace","description":"Finds anything in the workspace in one call — uploaded files (searching the text inside them), folders, Workbench flows, shims, knowledge bases and tasks, Compa"},{"name":"entity_tags_get","description":"Returns the tags on a batch of entities of one kind — the labels galleries organize by. Ids come from the kind's list/get tool or from search_workspace. Use it "},{"name":"entity_tags_browse","description":"Without a tag: every tag in use across the workspace with how many entities carry it, most-used first — the vocabulary the team already organizes by. With a tag"},{"name":"entity_tags_set","description":"Replaces the FULL tag set on one entity (an empty list clears it). Read the current tags with entity_tags_get first and pass the merged list — this is not addit"}],"toolCount":45,"toolsHash":"f57a3410b8c9e7f81a8ebcf398f4b689f5f258232006e7106ee51f36ad49c4f0","serverName":"zerowidth-mcp","capabilities":["tools","resources"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-22T10:34:20.051Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":243,"error":null,"detail":{"tools":[{"name":"search_docs","description":"Search ZeroWidth product documentation. Returns matching pages with title, slug, public URL, and a query-relevant snippet. Use this when the user asks about a Z"},{"name":"get_doc","description":"Fetch the full Markdown body of a specific docs page by its slug. Use this after `search_docs` when the user needs the complete content of a page. No authentica"},{"name":"list_docs","description":"Enumerate all available docs pages, optionally filtered by product (e.g. 'compass', 'legal', 'overview'). Use this to discover what slugs exist before calling `"},{"name":"caliper_datasets_get","description":"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"},{"name":"caliper_datasets_update","description":"Changes a dataset's title, description, or visibility. Pass only what changes; items are untouched (use caliper_datasets_add_items / caliper_datasets_update_ite"},{"name":"caliper_datasets_delete","description":"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 cali"},{"name":"caliper_datasets_update_item","description":"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 it"},{"name":"caliper_datasets_remove_item","description":"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 `ne"},{"name":"caliper_datasets_generate","description":"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 fl"},{"name":"caliper_datasets_generate_items","description":"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 the"},{"name":"caliper_rubrics_list","description":"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 "},{"name":"caliper_rubrics_get","description":"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 w"},{"name":"caliper_rubrics_update","description":"Changes a rubric's title, description, visibility, or replaces its criteria wholesale (pass the FULL list — criteria get fresh ids). Evals snapshot the rubric w"},{"name":"caliper_rubrics_delete","description":"Deletes a rubric. Existing evals keep their snapshot of it and keep running; nothing new can bind to it. May return `needs_confirmation`."},{"name":"caliper_evals_get","description":"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)"},{"name":"caliper_evals_runs_item_execution","description":"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, "},{"name":"caliper_evals_update","description":"Changes an eval's title, description, visibility, schedule (interval + time anchor), runOnPublish (queue a run whenever the flow publishes), regressionThreshold"},{"name":"caliper_evals_delete","description":"Deletes an eval and stops its schedule. Run history is kept but no longer reachable from the eval. May return `needs_confirmation`."},{"name":"caliper_evals_runs_cancel","description":"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"},{"name":"caliper_sources_list","description":"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 "},{"name":"caliper_sources_over_time","description":"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); ea"},{"name":"caliper_traces_list","description":"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"},{"name":"caliper_traces_get","description":"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 (quer"},{"name":"caliper_source_feeds_list","description":"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,"},{"name":"caliper_sources_to_dataset","description":"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 a"},{"name":"caliper_source_feeds_stop","description":"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_confirm"},{"name":"caliper_starters_list","description":"The starter sets Caliper ships: prompt injection, system-prompt leaking, over-refusal, personal-data handling, bias under ambiguity. Each is a small original da"},{"name":"caliper_starters_install","description":"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 bind"},{"name":"caliper_datasets_list","description":"Lists datasets in the active workspace. Returns summaries (id, name, item count); items are not included."},{"name":"caliper_flow_performance","description":"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-criter"},{"name":"caliper_evals_runs_list","description":"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"},{"name":"caliper_evals_runs_get","description":"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 it"},{"name":"caliper_evals_list","description":"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."},{"name":"caliper_evals_run","description":"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_edi"},{"name":"caliper_datasets_create","description":"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)"},{"name":"caliper_datasets_add_items","description":"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. "},{"name":"caliper_rubrics_create","description":"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"},{"name":"caliper_evals_create","description":"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 "},{"name":"comments_list","description":"Lists the comment threads on one workspace entity (open first, then resolved) with authors and timestamps. Read this before weighing in on contested work — the "},{"name":"comments_create","description":"Posts a comment on a workspace entity — a new thread, or a reply when rootId is given. Use it to leave findings where the discussion already lives (an eval resu"},{"name":"comments_resolve","description":"Sets a comment thread's resolved state (rootId = the thread's root comment id). Resolve ONLY when the human asked or the thread's question is demonstrably settl"},{"name":"search_workspace","description":"Finds anything in the workspace in one call — uploaded files (searching the text inside them), folders, Workbench flows, shims, knowledge bases and tasks, Compa"},{"name":"entity_tags_get","description":"Returns the tags on a batch of entities of one kind — the labels galleries organize by. Ids come from the kind's list/get tool or from search_workspace. Use it "},{"name":"entity_tags_browse","description":"Without a tag: every tag in use across the workspace with how many entities carry it, most-used first — the vocabulary the team already organizes by. With a tag"},{"name":"entity_tags_set","description":"Replaces the FULL tag set on one entity (an empty list clears it). Read the current tags with entity_tags_get first and pass the merged list — this is not addit"}],"toolCount":45,"toolsHash":"f57a3410b8c9e7f81a8ebcf398f4b689f5f258232006e7106ee51f36ad49c4f0","serverName":"zerowidth-mcp","capabilities":["tools","resources"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-22T03:29:48.317Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":1135,"error":null,"detail":{"tools":[{"name":"search_docs","description":"Search ZeroWidth product documentation. Returns matching pages with title, slug, public URL, and a query-relevant snippet. Use this when the user asks about a Z"},{"name":"get_doc","description":"Fetch the full Markdown body of a specific docs page by its slug. Use this after `search_docs` when the user needs the complete content of a page. No authentica"},{"name":"list_docs","description":"Enumerate all available docs pages, optionally filtered by product (e.g. 'compass', 'legal', 'overview'). Use this to discover what slugs exist before calling `"},{"name":"caliper_datasets_get","description":"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"},{"name":"caliper_datasets_update","description":"Changes a dataset's title, description, or visibility. Pass only what changes; items are untouched (use caliper_datasets_add_items / caliper_datasets_update_ite"},{"name":"caliper_datasets_delete","description":"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 cali"},{"name":"caliper_datasets_update_item","description":"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 it"},{"name":"caliper_datasets_remove_item","description":"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 `ne"},{"name":"caliper_datasets_generate","description":"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 fl"},{"name":"caliper_datasets_generate_items","description":"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 the"},{"name":"caliper_rubrics_list","description":"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 "},{"name":"caliper_rubrics_get","description":"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 w"},{"name":"caliper_rubrics_update","description":"Changes a rubric's title, description, visibility, or replaces its criteria wholesale (pass the FULL list — criteria get fresh ids). Evals snapshot the rubric w"},{"name":"caliper_rubrics_delete","description":"Deletes a rubric. Existing evals keep their snapshot of it and keep running; nothing new can bind to it. May return `needs_confirmation`."},{"name":"caliper_evals_get","description":"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)"},{"name":"caliper_evals_runs_item_execution","description":"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, "},{"name":"caliper_evals_update","description":"Changes an eval's title, description, visibility, schedule (interval + time anchor), runOnPublish (queue a run whenever the flow publishes), regressionThreshold"},{"name":"caliper_evals_delete","description":"Deletes an eval and stops its schedule. Run history is kept but no longer reachable from the eval. May return `needs_confirmation`."},{"name":"caliper_evals_runs_cancel","description":"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"},{"name":"caliper_sources_list","description":"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 "},{"name":"caliper_sources_over_time","description":"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); ea"},{"name":"caliper_traces_list","description":"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"},{"name":"caliper_traces_get","description":"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 (quer"},{"name":"caliper_source_feeds_list","description":"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,"},{"name":"caliper_sources_to_dataset","description":"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 a"},{"name":"caliper_source_feeds_stop","description":"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_confirm"},{"name":"caliper_starters_list","description":"The starter sets Caliper ships: prompt injection, system-prompt leaking, over-refusal, personal-data handling, bias under ambiguity. Each is a small original da"},{"name":"caliper_starters_install","description":"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 bind"},{"name":"caliper_datasets_list","description":"Lists datasets in the active workspace. Returns summaries (id, name, item count); items are not included."},{"name":"caliper_flow_performance","description":"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-criter"},{"name":"caliper_evals_runs_list","description":"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"},{"name":"caliper_evals_runs_get","description":"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 it"},{"name":"caliper_evals_list","description":"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."},{"name":"caliper_evals_run","description":"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_edi"},{"name":"caliper_datasets_create","description":"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)"},{"name":"caliper_datasets_add_items","description":"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. "},{"name":"caliper_rubrics_create","description":"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"},{"name":"caliper_evals_create","description":"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 "},{"name":"comments_list","description":"Lists the comment threads on one workspace entity (open first, then resolved) with authors and timestamps. Read this before weighing in on contested work — the "},{"name":"comments_create","description":"Posts a comment on a workspace entity — a new thread, or a reply when rootId is given. Use it to leave findings where the discussion already lives (an eval resu"},{"name":"comments_resolve","description":"Sets a comment thread's resolved state (rootId = the thread's root comment id). Resolve ONLY when the human asked or the thread's question is demonstrably settl"},{"name":"search_workspace","description":"Finds anything in the workspace in one call — uploaded files (searching the text inside them), folders, Workbench flows, shims, knowledge bases and tasks, Compa"},{"name":"entity_tags_get","description":"Returns the tags on a batch of entities of one kind — the labels galleries organize by. Ids come from the kind's list/get tool or from search_workspace. Use it "},{"name":"entity_tags_browse","description":"Without a tag: every tag in use across the workspace with how many entities carry it, most-used first — the vocabulary the team already organizes by. With a tag"},{"name":"entity_tags_set","description":"Replaces the FULL tag set on one entity (an empty list clears it). Read the current tags with entity_tags_get first and pass the merged list — this is not addit"}],"toolCount":45,"toolsHash":"71711f46042754c71393132393a735e2027b5d4eb796bcc92d724cdca22a43d7","serverName":"zerowidth-mcp","capabilities":["tools","resources"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-21T20:30:06.326Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":281,"error":null,"detail":{"tools":[{"name":"search_docs","description":"Search ZeroWidth product documentation. Returns matching pages with title, slug, public URL, and a query-relevant snippet. Use this when the user asks about a Z"},{"name":"get_doc","description":"Fetch the full Markdown body of a specific docs page by its slug. Use this after `search_docs` when the user needs the complete content of a page. No authentica"},{"name":"list_docs","description":"Enumerate all available docs pages, optionally filtered by product (e.g. 'compass', 'legal', 'overview'). Use this to discover what slugs exist before calling `"},{"name":"caliper_datasets_get","description":"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"},{"name":"caliper_datasets_update","description":"Changes a dataset's title, description, or visibility. Pass only what changes; items are untouched (use caliper_datasets_add_items / caliper_datasets_update_ite"},{"name":"caliper_datasets_delete","description":"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 cali"},{"name":"caliper_datasets_update_item","description":"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 it"},{"name":"caliper_datasets_remove_item","description":"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 `ne"},{"name":"caliper_datasets_generate","description":"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 fl"},{"name":"caliper_datasets_generate_items","description":"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 the"},{"name":"caliper_rubrics_list","description":"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 "},{"name":"caliper_rubrics_get","description":"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 w"},{"name":"caliper_rubrics_update","description":"Changes a rubric's title, description, visibility, or replaces its criteria wholesale (pass the FULL list — criteria get fresh ids). Evals snapshot the rubric w"},{"name":"caliper_rubrics_delete","description":"Deletes a rubric. Existing evals keep their snapshot of it and keep running; nothing new can bind to it. May return `needs_confirmation`."},{"name":"caliper_evals_get","description":"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)"},{"name":"caliper_evals_runs_item_execution","description":"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, "},{"name":"caliper_evals_update","description":"Changes an eval's title, description, visibility, schedule (interval + time anchor), runOnPublish (queue a run whenever the flow publishes), regressionThreshold"},{"name":"caliper_evals_delete","description":"Deletes an eval and stops its schedule. Run history is kept but no longer reachable from the eval. May return `needs_confirmation`."},{"name":"caliper_evals_runs_cancel","description":"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"},{"name":"caliper_sources_list","description":"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 "},{"name":"caliper_sources_over_time","description":"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); ea"},{"name":"caliper_traces_list","description":"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"},{"name":"caliper_traces_get","description":"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 (quer"},{"name":"caliper_source_feeds_list","description":"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,"},{"name":"caliper_sources_to_dataset","description":"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 a"},{"name":"caliper_source_feeds_stop","description":"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_confirm"},{"name":"caliper_starters_list","description":"The starter sets Caliper ships: prompt injection, system-prompt leaking, over-refusal, personal-data handling, bias under ambiguity. Each is a small original da"},{"name":"caliper_starters_install","description":"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 bind"},{"name":"caliper_datasets_list","description":"Lists datasets in the active workspace. Returns summaries (id, name, item count); items are not included."},{"name":"caliper_flow_performance","description":"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-criter"},{"name":"caliper_evals_runs_list","description":"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"},{"name":"caliper_evals_runs_get","description":"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 it"},{"name":"caliper_evals_list","description":"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."},{"name":"caliper_evals_run","description":"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_edi"},{"name":"caliper_datasets_create","description":"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)"},{"name":"caliper_datasets_add_items","description":"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. "},{"name":"caliper_rubrics_create","description":"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"},{"name":"caliper_evals_create","description":"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 "},{"name":"comments_list","description":"Lists the comment threads on one workspace entity (open first, then resolved) with authors and timestamps. Read this before weighing in on contested work — the "},{"name":"comments_create","description":"Posts a comment on a workspace entity — a new thread, or a reply when rootId is given. Use it to leave findings where the discussion already lives (an eval resu"},{"name":"comments_resolve","description":"Sets a comment thread's resolved state (rootId = the thread's root comment id). Resolve ONLY when the human asked or the thread's question is demonstrably settl"},{"name":"search_workspace","description":"Finds anything in the workspace in one call — uploaded files (searching the text inside them), folders, Workbench flows, shims, knowledge bases and tasks, Compa"},{"name":"entity_tags_get","description":"Returns the tags on a batch of entities of one kind — the labels galleries organize by. Ids come from the kind's list/get tool or from search_workspace. Use it "},{"name":"entity_tags_browse","description":"Without a tag: every tag in use across the workspace with how many entities carry it, most-used first — the vocabulary the team already organizes by. With a tag"},{"name":"entity_tags_set","description":"Replaces the FULL tag set on one entity (an empty list clears it). Read the current tags with entity_tags_get first and pass the merged list — this is not addit"}],"toolCount":45,"toolsHash":"71711f46042754c71393132393a735e2027b5d4eb796bcc92d724cdca22a43d7","serverName":"zerowidth-mcp","capabilities":["tools","resources"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-21T10:33:09.914Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":373,"error":null,"detail":{"tools":[{"name":"search_docs","description":"Search ZeroWidth product documentation. Returns matching pages with title, slug, public URL, and a query-relevant snippet. Use this when the user asks about a Z"},{"name":"get_doc","description":"Fetch the full Markdown body of a specific docs page by its slug. Use this after `search_docs` when the user needs the complete content of a page. No authentica"},{"name":"list_docs","description":"Enumerate all available docs pages, optionally filtered by product (e.g. 'compass', 'legal', 'overview'). Use this to discover what slugs exist before calling `"},{"name":"caliper_datasets_get","description":"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"},{"name":"caliper_datasets_update","description":"Changes a dataset's title, description, or visibility. Pass only what changes; items are untouched (use caliper_datasets_add_items / caliper_datasets_update_ite"},{"name":"caliper_datasets_delete","description":"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 cali"},{"name":"caliper_datasets_update_item","description":"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 it"},{"name":"caliper_datasets_remove_item","description":"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 `ne"},{"name":"caliper_datasets_generate","description":"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 fl"},{"name":"caliper_datasets_generate_items","description":"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 the"},{"name":"caliper_rubrics_list","description":"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 "},{"name":"caliper_rubrics_get","description":"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 w"},{"name":"caliper_rubrics_update","description":"Changes a rubric's title, description, visibility, or replaces its criteria wholesale (pass the FULL list — criteria get fresh ids). Evals snapshot the rubric w"},{"name":"caliper_rubrics_delete","description":"Deletes a rubric. Existing evals keep their snapshot of it and keep running; nothing new can bind to it. May return `needs_confirmation`."},{"name":"caliper_evals_get","description":"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)"},{"name":"caliper_evals_runs_item_execution","description":"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, "},{"name":"caliper_evals_update","description":"Changes an eval's title, description, visibility, schedule (interval + time anchor), runOnPublish (queue a run whenever the flow publishes), regressionThreshold"},{"name":"caliper_evals_delete","description":"Deletes an eval and stops its schedule. Run history is kept but no longer reachable from the eval. May return `needs_confirmation`."},{"name":"caliper_evals_runs_cancel","description":"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"},{"name":"caliper_sources_list","description":"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 "},{"name":"caliper_sources_over_time","description":"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); ea"},{"name":"caliper_traces_list","description":"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"},{"name":"caliper_traces_get","description":"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 (quer"},{"name":"caliper_source_feeds_list","description":"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,"},{"name":"caliper_sources_to_dataset","description":"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 a"},{"name":"caliper_source_feeds_stop","description":"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_confirm"},{"name":"caliper_starters_list","description":"The starter sets Caliper ships: prompt injection, system-prompt leaking, over-refusal, personal-data handling, bias under ambiguity. Each is a small original da"},{"name":"caliper_starters_install","description":"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 bind"},{"name":"caliper_datasets_list","description":"Lists datasets in the active workspace. Returns summaries (id, name, item count); items are not included."},{"name":"caliper_flow_performance","description":"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-criter"},{"name":"caliper_evals_runs_list","description":"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"},{"name":"caliper_evals_runs_get","description":"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 it"},{"name":"caliper_evals_list","description":"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."},{"name":"caliper_evals_run","description":"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_edi"},{"name":"caliper_datasets_create","description":"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)"},{"name":"caliper_datasets_add_items","description":"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. "},{"name":"caliper_rubrics_create","description":"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"},{"name":"caliper_evals_create","description":"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 "},{"name":"comments_list","description":"Lists the comment threads on one workspace entity (open first, then resolved) with authors and timestamps. Read this before weighing in on contested work — the "},{"name":"comments_create","description":"Posts a comment on a workspace entity — a new thread, or a reply when rootId is given. Use it to leave findings where the discussion already lives (an eval resu"},{"name":"comments_resolve","description":"Sets a comment thread's resolved state (rootId = the thread's root comment id). Resolve ONLY when the human asked or the thread's question is demonstrably settl"},{"name":"search_workspace","description":"Finds anything in the workspace in one call — uploaded files (searching the text inside them), folders, Workbench flows, shims, knowledge bases and tasks, Compa"},{"name":"entity_tags_get","description":"Returns the tags on a batch of entities of one kind — the labels galleries organize by. Ids come from the kind's list/get tool or from search_workspace. Use it "},{"name":"entity_tags_browse","description":"Without a tag: every tag in use across the workspace with how many entities carry it, most-used first — the vocabulary the team already organizes by. With a tag"},{"name":"entity_tags_set","description":"Replaces the FULL tag set on one entity (an empty list clears it). Read the current tags with entity_tags_get first and pass the merged list — this is not addit"}],"toolCount":45,"toolsHash":"71711f46042754c71393132393a735e2027b5d4eb796bcc92d724cdca22a43d7","serverName":"zerowidth-mcp","capabilities":["tools","resources"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-21T02:26:51.901Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":351,"error":null,"detail":{"tools":[{"name":"search_docs","description":"Search ZeroWidth product documentation. Returns matching pages with title, slug, public URL, and a query-relevant snippet. Use this when the user asks about a Z"},{"name":"get_doc","description":"Fetch the full Markdown body of a specific docs page by its slug. Use this after `search_docs` when the user needs the complete content of a page. No authentica"},{"name":"list_docs","description":"Enumerate all available docs pages, optionally filtered by product (e.g. 'compass', 'legal', 'overview'). Use this to discover what slugs exist before calling `"},{"name":"caliper_datasets_get","description":"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"},{"name":"caliper_datasets_update","description":"Changes a dataset's title, description, or visibility. Pass only what changes; items are untouched (use caliper_datasets_add_items / caliper_datasets_update_ite"},{"name":"caliper_datasets_delete","description":"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 cali"},{"name":"caliper_datasets_update_item","description":"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 it"},{"name":"caliper_datasets_remove_item","description":"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 `ne"},{"name":"caliper_datasets_generate","description":"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 fl"},{"name":"caliper_datasets_generate_items","description":"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 the"},{"name":"caliper_rubrics_list","description":"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 "},{"name":"caliper_rubrics_get","description":"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 w"},{"name":"caliper_rubrics_update","description":"Changes a rubric's title, description, visibility, or replaces its criteria wholesale (pass the FULL list — criteria get fresh ids). Evals snapshot the rubric w"},{"name":"caliper_rubrics_delete","description":"Deletes a rubric. Existing evals keep their snapshot of it and keep running; nothing new can bind to it. May return `needs_confirmation`."},{"name":"caliper_evals_get","description":"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)"},{"name":"caliper_evals_runs_item_execution","description":"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, "},{"name":"caliper_evals_update","description":"Changes an eval's title, description, visibility, schedule (interval + time anchor), runOnPublish (queue a run whenever the flow publishes), regressionThreshold"},{"name":"caliper_evals_delete","description":"Deletes an eval and stops its schedule. Run history is kept but no longer reachable from the eval. May return `needs_confirmation`."},{"name":"caliper_evals_runs_cancel","description":"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"},{"name":"caliper_sources_list","description":"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 "},{"name":"caliper_sources_over_time","description":"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); ea"},{"name":"caliper_traces_list","description":"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"},{"name":"caliper_traces_get","description":"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 (quer"},{"name":"caliper_source_feeds_list","description":"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,"},{"name":"caliper_sources_to_dataset","description":"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 a"},{"name":"caliper_source_feeds_stop","description":"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_confirm"},{"name":"caliper_starters_list","description":"The starter sets Caliper ships: prompt injection, system-prompt leaking, over-refusal, personal-data handling, bias under ambiguity. Each is a small original da"},{"name":"caliper_starters_install","description":"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 bind"},{"name":"caliper_datasets_list","description":"Lists datasets in the active workspace. Returns summaries (id, name, item count); items are not included."},{"name":"caliper_flow_performance","description":"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-criter"},{"name":"caliper_evals_runs_list","description":"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"},{"name":"caliper_evals_runs_get","description":"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 it"},{"name":"caliper_evals_list","description":"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."},{"name":"caliper_evals_run","description":"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_edi"},{"name":"caliper_datasets_create","description":"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)"},{"name":"caliper_datasets_add_items","description":"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. "},{"name":"caliper_rubrics_create","description":"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"},{"name":"caliper_evals_create","description":"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 "},{"name":"comments_list","description":"Lists the comment threads on one workspace entity (open first, then resolved) with authors and timestamps. Read this before weighing in on contested work — the "},{"name":"comments_create","description":"Posts a comment on a workspace entity — a new thread, or a reply when rootId is given. Use it to leave findings where the discussion already lives (an eval resu"},{"name":"comments_resolve","description":"Sets a comment thread's resolved state (rootId = the thread's root comment id). Resolve ONLY when the human asked or the thread's question is demonstrably settl"},{"name":"search_workspace","description":"Finds anything in the workspace in one call — uploaded files (searching the text inside them), folders, Workbench flows, shims, knowledge bases and tasks, Compa"},{"name":"entity_tags_get","description":"Returns the tags on a batch of entities of one kind — the labels galleries organize by. Ids come from the kind's list/get tool or from search_workspace. Use it "},{"name":"entity_tags_browse","description":"Without a tag: every tag in use across the workspace with how many entities carry it, most-used first — the vocabulary the team already organizes by. With a tag"},{"name":"entity_tags_set","description":"Replaces the FULL tag set on one entity (an empty list clears it). Read the current tags with entity_tags_get first and pass the merged list — this is not addit"}],"toolCount":45,"toolsHash":"71711f46042754c71393132393a735e2027b5d4eb796bcc92d724cdca22a43d7","serverName":"zerowidth-mcp","capabilities":["tools","resources"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-20T19:25:06.585Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":379,"error":null,"detail":{"tools":[{"name":"search_docs","description":"Search ZeroWidth product documentation. Returns matching pages with title, slug, public URL, and a query-relevant snippet. Use this when the user asks about a Z"},{"name":"get_doc","description":"Fetch the full Markdown body of a specific docs page by its slug. Use this after `search_docs` when the user needs the complete content of a page. No authentica"},{"name":"list_docs","description":"Enumerate all available docs pages, optionally filtered by product (e.g. 'compass', 'legal', 'overview'). Use this to discover what slugs exist before calling `"},{"name":"caliper_datasets_get","description":"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"},{"name":"caliper_datasets_update","description":"Changes a dataset's title, description, or visibility. Pass only what changes; items are untouched (use caliper_datasets_add_items / caliper_datasets_update_ite"},{"name":"caliper_datasets_delete","description":"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 cali"},{"name":"caliper_datasets_update_item","description":"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 it"},{"name":"caliper_datasets_remove_item","description":"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 `ne"},{"name":"caliper_datasets_generate","description":"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 fl"},{"name":"caliper_datasets_generate_items","description":"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 the"},{"name":"caliper_rubrics_list","description":"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 "},{"name":"caliper_rubrics_get","description":"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 w"},{"name":"caliper_rubrics_update","description":"Changes a rubric's title, description, visibility, or replaces its criteria wholesale (pass the FULL list — criteria get fresh ids). Evals snapshot the rubric w"},{"name":"caliper_rubrics_delete","description":"Deletes a rubric. Existing evals keep their snapshot of it and keep running; nothing new can bind to it. May return `needs_confirmation`."},{"name":"caliper_evals_get","description":"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)"},{"name":"caliper_evals_runs_item_execution","description":"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, "},{"name":"caliper_evals_update","description":"Changes an eval's title, description, visibility, schedule (interval + time anchor), runOnPublish (queue a run whenever the flow publishes), regressionThreshold"},{"name":"caliper_evals_delete","description":"Deletes an eval and stops its schedule. Run history is kept but no longer reachable from the eval. May return `needs_confirmation`."},{"name":"caliper_evals_runs_cancel","description":"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"},{"name":"caliper_sources_list","description":"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 "},{"name":"caliper_sources_over_time","description":"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); ea"},{"name":"caliper_traces_list","description":"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"},{"name":"caliper_traces_get","description":"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 (quer"},{"name":"caliper_source_feeds_list","description":"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,"},{"name":"caliper_sources_to_dataset","description":"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 a"},{"name":"caliper_source_feeds_stop","description":"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_confirm"},{"name":"caliper_starters_list","description":"The starter sets Caliper ships: prompt injection, system-prompt leaking, over-refusal, personal-data handling, bias under ambiguity. Each is a small original da"},{"name":"caliper_starters_install","description":"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 bind"},{"name":"caliper_datasets_list","description":"Lists datasets in the active workspace. Returns summaries (id, name, item count); items are not included."},{"name":"caliper_flow_performance","description":"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-criter"},{"name":"caliper_evals_runs_list","description":"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"},{"name":"caliper_evals_runs_get","description":"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 it"},{"name":"caliper_evals_list","description":"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."},{"name":"caliper_evals_run","description":"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_edi"},{"name":"caliper_datasets_create","description":"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)"},{"name":"caliper_datasets_add_items","description":"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. "},{"name":"caliper_rubrics_create","description":"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"},{"name":"caliper_evals_create","description":"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 "},{"name":"comments_list","description":"Lists the comment threads on one workspace entity (open first, then resolved) with authors and timestamps. Read this before weighing in on contested work — the "},{"name":"comments_create","description":"Posts a comment on a workspace entity — a new thread, or a reply when rootId is given. Use it to leave findings where the discussion already lives (an eval resu"},{"name":"comments_resolve","description":"Sets a comment thread's resolved state (rootId = the thread's root comment id). Resolve ONLY when the human asked or the thread's question is demonstrably settl"},{"name":"search_workspace","description":"Finds anything in the workspace in one call — uploaded files (searching the text inside them), folders, Workbench flows, shims, knowledge bases and tasks, Compa"},{"name":"entity_tags_get","description":"Returns the tags on a batch of entities of one kind — the labels galleries organize by. Ids come from the kind's list/get tool or from search_workspace. Use it "},{"name":"entity_tags_browse","description":"Without a tag: every tag in use across the workspace with how many entities carry it, most-used first — the vocabulary the team already organizes by. With a tag"},{"name":"entity_tags_set","description":"Replaces the FULL tag set on one entity (an empty list clears it). Read the current tags with entity_tags_get first and pass the merged list — this is not addit"}],"toolCount":45,"toolsHash":"71711f46042754c71393132393a735e2027b5d4eb796bcc92d724cdca22a43d7","serverName":"zerowidth-mcp","capabilities":["tools","resources"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-20T12:28:04.096Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":1000,"error":null,"detail":{"tools":[{"name":"search_docs","description":"Search ZeroWidth product documentation. Returns matching pages with title, slug, public URL, and a query-relevant snippet. Use this when the user asks about a Z"},{"name":"get_doc","description":"Fetch the full Markdown body of a specific docs page by its slug. Use this after `search_docs` when the user needs the complete content of a page. No authentica"},{"name":"list_docs","description":"Enumerate all available docs pages, optionally filtered by product (e.g. 'compass', 'legal', 'overview'). Use this to discover what slugs exist before calling `"},{"name":"caliper_datasets_get","description":"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"},{"name":"caliper_datasets_update","description":"Changes a dataset's title, description, or visibility. Pass only what changes; items are untouched (use caliper_datasets_add_items / caliper_datasets_update_ite"},{"name":"caliper_datasets_delete","description":"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 cali"},{"name":"caliper_datasets_update_item","description":"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 it"},{"name":"caliper_datasets_remove_item","description":"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 `ne"},{"name":"caliper_datasets_generate","description":"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 fl"},{"name":"caliper_datasets_generate_items","description":"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 the"},{"name":"caliper_rubrics_list","description":"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 "},{"name":"caliper_rubrics_get","description":"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 w"},{"name":"caliper_rubrics_update","description":"Changes a rubric's title, description, visibility, or replaces its criteria wholesale (pass the FULL list — criteria get fresh ids). Evals snapshot the rubric w"},{"name":"caliper_rubrics_delete","description":"Deletes a rubric. Existing evals keep their snapshot of it and keep running; nothing new can bind to it. May return `needs_confirmation`."},{"name":"caliper_evals_get","description":"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)"},{"name":"caliper_evals_runs_item_execution","description":"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, "},{"name":"caliper_evals_update","description":"Changes an eval's title, description, visibility, schedule (interval + time anchor), runOnPublish (queue a run whenever the flow publishes), regressionThreshold"},{"name":"caliper_evals_delete","description":"Deletes an eval and stops its schedule. Run history is kept but no longer reachable from the eval. May return `needs_confirmation`."},{"name":"caliper_evals_runs_cancel","description":"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"},{"name":"caliper_sources_list","description":"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 "},{"name":"caliper_sources_over_time","description":"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); ea"},{"name":"caliper_traces_list","description":"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"},{"name":"caliper_traces_get","description":"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 (quer"},{"name":"caliper_source_feeds_list","description":"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,"},{"name":"caliper_sources_to_dataset","description":"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 a"},{"name":"caliper_source_feeds_stop","description":"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_confirm"},{"name":"caliper_starters_list","description":"The starter sets Caliper ships: prompt injection, system-prompt leaking, over-refusal, personal-data handling, bias under ambiguity. Each is a small original da"},{"name":"caliper_starters_install","description":"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 bind"},{"name":"caliper_datasets_list","description":"Lists datasets in the active workspace. Returns summaries (id, name, item count); items are not included."},{"name":"caliper_flow_performance","description":"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-criter"},{"name":"caliper_evals_runs_list","description":"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"},{"name":"caliper_evals_runs_get","description":"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 it"},{"name":"caliper_evals_list","description":"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."},{"name":"caliper_evals_run","description":"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_edi"},{"name":"caliper_datasets_create","description":"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)"},{"name":"caliper_datasets_add_items","description":"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. "},{"name":"caliper_rubrics_create","description":"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"},{"name":"caliper_evals_create","description":"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 "},{"name":"comments_list","description":"Lists the comment threads on one workspace entity (open first, then resolved) with authors and timestamps. Read this before weighing in on contested work — the "},{"name":"comments_create","description":"Posts a comment on a workspace entity — a new thread, or a reply when rootId is given. Use it to leave findings where the discussion already lives (an eval resu"},{"name":"comments_resolve","description":"Sets a comment thread's resolved state (rootId = the thread's root comment id). Resolve ONLY when the human asked or the thread's question is demonstrably settl"},{"name":"search_workspace","description":"Finds anything in the workspace in one call — uploaded files (searching the text inside them), folders, Workbench flows, shims, knowledge bases and tasks, Compa"},{"name":"entity_tags_get","description":"Returns the tags on a batch of entities of one kind — the labels galleries organize by. Ids come from the kind's list/get tool or from search_workspace. Use it "},{"name":"entity_tags_browse","description":"Without a tag: every tag in use across the workspace with how many entities carry it, most-used first — the vocabulary the team already organizes by. With a tag"},{"name":"entity_tags_set","description":"Replaces the FULL tag set on one entity (an empty list clears it). Read the current tags with entity_tags_get first and pass the merged list — this is not addit"}],"toolCount":45,"toolsHash":"71711f46042754c71393132393a735e2027b5d4eb796bcc92d724cdca22a43d7","serverName":"zerowidth-mcp","capabilities":["tools","resources"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}}],"tools":[{"name":"search_docs","description":"Search ZeroWidth product documentation. Returns matching pages with title, slug, public URL, and a query-relevant snippet. Use this when the user asks about a Z"},{"name":"get_doc","description":"Fetch the full Markdown body of a specific docs page by its slug. Use this after `search_docs` when the user needs the complete content of a page. No authentica"},{"name":"list_docs","description":"Enumerate all available docs pages, optionally filtered by product (e.g. 'compass', 'legal', 'overview'). Use this to discover what slugs exist before calling `"},{"name":"caliper_datasets_get","description":"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"},{"name":"caliper_datasets_update","description":"Changes a dataset's title, description, or visibility. Pass only what changes; items are untouched (use caliper_datasets_add_items / caliper_datasets_update_ite"},{"name":"caliper_datasets_delete","description":"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 cali"},{"name":"caliper_datasets_update_item","description":"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 it"},{"name":"caliper_datasets_remove_item","description":"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 `ne"},{"name":"caliper_datasets_generate","description":"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 fl"},{"name":"caliper_datasets_generate_items","description":"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 the"},{"name":"caliper_rubrics_list","description":"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 "},{"name":"caliper_rubrics_get","description":"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 w"},{"name":"caliper_rubrics_update","description":"Changes a rubric's title, description, visibility, or replaces its criteria wholesale (pass the FULL list — criteria get fresh ids). Evals snapshot the rubric w"},{"name":"caliper_rubrics_delete","description":"Deletes a rubric. Existing evals keep their snapshot of it and keep running; nothing new can bind to it. May return `needs_confirmation`."},{"name":"caliper_evals_get","description":"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)"},{"name":"caliper_evals_runs_item_execution","description":"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, "},{"name":"caliper_evals_update","description":"Changes an eval's title, description, visibility, schedule (interval + time anchor), runOnPublish (queue a run whenever the flow publishes), regressionThreshold"},{"name":"caliper_evals_delete","description":"Deletes an eval and stops its schedule. Run history is kept but no longer reachable from the eval. May return `needs_confirmation`."},{"name":"caliper_evals_runs_cancel","description":"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"},{"name":"caliper_sources_list","description":"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 "},{"name":"caliper_sources_over_time","description":"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); ea"},{"name":"caliper_traces_list","description":"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"},{"name":"caliper_traces_get","description":"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 (quer"},{"name":"caliper_source_feeds_list","description":"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,"},{"name":"caliper_sources_to_dataset","description":"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 a"},{"name":"caliper_source_feeds_stop","description":"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_confirm"},{"name":"caliper_starters_list","description":"The starter sets Caliper ships: prompt injection, system-prompt leaking, over-refusal, personal-data handling, bias under ambiguity. Each is a small original da"},{"name":"caliper_starters_install","description":"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 bind"},{"name":"caliper_datasets_list","description":"Lists datasets in the active workspace. Returns summaries (id, name, item count); items are not included."},{"name":"caliper_flow_performance","description":"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-criter"},{"name":"caliper_evals_runs_list","description":"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"},{"name":"caliper_evals_runs_get","description":"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 it"},{"name":"caliper_evals_list","description":"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."},{"name":"caliper_evals_run","description":"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_edi"},{"name":"caliper_datasets_create","description":"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)"},{"name":"caliper_datasets_add_items","description":"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. "},{"name":"caliper_rubrics_create","description":"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"},{"name":"caliper_evals_create","description":"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 "},{"name":"comments_list","description":"Lists the comment threads on one workspace entity (open first, then resolved) with authors and timestamps. Read this before weighing in on contested work — the "},{"name":"comments_create","description":"Posts a comment on a workspace entity — a new thread, or a reply when rootId is given. Use it to leave findings where the discussion already lives (an eval resu"},{"name":"comments_resolve","description":"Sets a comment thread's resolved state (rootId = the thread's root comment id). Resolve ONLY when the human asked or the thread's question is demonstrably settl"},{"name":"search_workspace","description":"Finds anything in the workspace in one call — uploaded files (searching the text inside them), folders, Workbench flows, shims, knowledge bases and tasks, Compa"},{"name":"entity_tags_get","description":"Returns the tags on a batch of entities of one kind — the labels galleries organize by. Ids come from the kind's list/get tool or from search_workspace. Use it "},{"name":"entity_tags_browse","description":"Without a tag: every tag in use across the workspace with how many entities carry it, most-used first — the vocabulary the team already organizes by. With a tag"},{"name":"entity_tags_set","description":"Replaces the FULL tag set on one entity (an empty list clears it). Read the current tags with entity_tags_get first and pass the merged list — this is not addit"}],"package":null,"toolSurface":{"id":"ts_9huuqngjuxbq","endpointId":"ep_muwq3zepsyff","hash":"f57a3410b8c9e7f81a8ebcf398f4b689f5f258232006e7106ee51f36ad49c4f0","toolCount":45,"serverName":"zerowidth-mcp","serverVersion":"1.0.0","protocolVersion":"2025-06-18","firstSeenAt":"2026-10-22T10:34:20.049Z","lastSeenAt":"2026-10-23T06:25:50.717Z","observations":4,"toolNames":["search_docs","get_doc","list_docs","caliper_datasets_get","caliper_datasets_update","caliper_datasets_delete","caliper_datasets_update_item","caliper_datasets_remove_item","caliper_datasets_generate","caliper_datasets_generate_items","caliper_rubrics_list","caliper_rubrics_get","caliper_rubrics_update","caliper_rubrics_delete","caliper_evals_get","caliper_evals_runs_item_execution","caliper_evals_update","caliper_evals_delete","caliper_evals_runs_cancel","caliper_sources_list","caliper_sources_over_time","caliper_traces_list","caliper_traces_get","caliper_source_feeds_list","caliper_sources_to_dataset","caliper_source_feeds_stop","caliper_starters_list","caliper_starters_install","caliper_datasets_list","caliper_flow_performance","caliper_evals_runs_list","caliper_evals_runs_get","caliper_evals_list","caliper_evals_run","caliper_datasets_create","caliper_datasets_add_items","caliper_rubrics_create","caliper_evals_create","comments_list","comments_create","comments_resolve","search_workspace","entity_tags_get","entity_tags_browse","entity_tags_set"],"distinctSurfaces":6},"endpointFacts":[{"id":"ep_muwq3zepsyff","url":"https://api.zerowidth.ai/mcp/x/caliper","type":"mcp_streamable_http","factsCheckedAt":"2026-10-22T03:29:48.411Z","auth":{"observedAt":"2026-10-22T03:29:48.582Z","authRequired":false,"scheme":null,"resourceMetadata":null,"authorizationServer":null,"conformance":{"dpop":false,"rfc8414":false,"rfc9728":false,"pkceS256":false,"clientIdMetadataDocument":false,"dynamicClientRegistration":false}},"tls":{"observedAt":"2026-10-22T03:29:48.598Z","protocol":"TLSv1.3","chainValid":true,"chainError":null,"hostMatches":true,"subject":"api.zerowidth.ai","issuer":{"commonName":"WR3","organization":"Google Trust Services"},"validFrom":"2026-09-20T12:44:00.000Z","validTo":"2026-12-19T13:38:14.000Z","daysToExpiry":57,"sanCount":1,"fingerprint256":"F5:D5:C9:D2:D4:FC:C0:C3:A8:31:57:BB:67:B5:17:13:8F:B1:61:A7:9E:54:76:D3:D8:3B:79:50:5E:17:44:FB"}}]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"mcp_registry","key":"ai.zerowidth/caliper","url":"https://registry.modelcontextprotocol.io/v0/servers/ai.zerowidth%2Fcaliper","firstSeenAt":"2026-10-09T00:19:26.247Z","fetchedAt":"2026-10-21T05:20:11.000Z","normalizedAt":"2026-10-21T05:20:11.000Z"}]},"firstSeenAt":"2026-10-09T00:19:26.247Z","updatedAt":"2026-10-23T06:30:51.486Z"}