witness
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| session_overviewB | Session metadata: app URL, duration, counts of says/marks/errors/requests, file list |
| list_segmentsA | Speech anchor index — every spoken segment with suspects, dead clicks and shot/dom refs. Segments are mechanically cut, NOT confirmed issues: merge adjacent ones or split as the semantics require. READ THIS FIRST. |
| segment_detailA | One speech segment's evidence bundle: verbatim speech, suspect elements, dead clicks, errors, and the exact shots/dom snapshots to inspect. n = segment number (1-based) |
| list_saysC | All spoken feedback fragments with timestamps — the issue anchors |
| session_mdC | The rendered evidence timeline (SAY blocks + attached events) |
| events_aroundB | Raw events within a time window. t_ms = timeline ms, radius_ms default 3000, kinds = comma list (click,req,res,console,error,mut,mark,nav,say,scroll,shot) |
| get_errorsB | All console errors, page errors and HTTP responses >= 400 |
| get_shotC | A screenshot image. path is relative to the session dir, e.g. shots/011-mark.jpg |
| get_dom_stateA | DOM snapshot HTML nearest to a timeline ms (snapshots at nav/mark/every 30s). Returns path + html |
| get_bodyC | Captured HTTP response body. path relative to session dir, e.g. bodies/r3.json |
| get_asrB | Current live speech-recognition engine for future recordings (auto|doubao-web|doubao-ime|sr|off) |
| set_asrA | Switch the live ASR engine for FUTURE recordings (persists to .witness/config.json). doubao-web = best quality streaming; doubao-ime = sentence timestamps; sr = browser builtin; off = none. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 12 tools
Each tool maps to a distinct evidence artifact (segments, says, errors, shots, DOM, bodies, raw events), and descriptions explicitly route the agent ("READ THIS FIRST" on list_segments, cross-references between list_says and segment_detail). Minor overlap exists between get_errors and events_around(kinds=error), and between session_overview and session_md, but the boundaries are stated clearly enough to avoid misselection.
A readable pattern holds: get_* for fetching artifacts (get_shot, get_dom_state, get_body, get_errors), list_* for indexes, session_* for global metadata. Deviations exist (segment_detail, events_around, session_md) which break the verb_noun convention, but the set is still predictable.
12 tools is squarely in the well-scoped range, with each tool covering a distinct layer of the evidence pipeline (overview, segmentation, raw events, artifacts, config). Nothing feels redundant or padded.
The surface covers the full investigation lifecycle: session metadata, speech anchors, per-segment evidence bundles, timeline rendering, raw events, errors, and artifact retrieval plus ASR get/set. Minor gaps remain—no session-wide search or filtering across all suspects/dead clicks, and no direct listing of available shots/bodies beyond the file list in session_overview.