Every response below was captured against a server seeded with the spec’s conformance trace on
team
fixture: 17 steps, root_status: error, one three-attempt step, environment prod. The
token’s team-set is demo and fixture. Each bound below is the one that tool’s schema
carries, which install separates into server-reported and fixed.
Shared arguments
Five of the seven tools on this page taketeam and environment:
vexlo_check_trace_status and vexlo_find_related_traces scope themselves through the ids they
are handed. vexlo_get_function and
vexlo_get_function_examples take the same two, so this section defines
them for the whole site.
team is an array of team ids; omit it for every team the token can see. An id outside the
token’s team-set is dropped, and the response says which:
No live session carries a service pin, since a service-pinned read token never finishes
startup. So a misspelled service name
and a real, empty one look identical until
vexlo_check_coverage answers. On every paginated
tool the last page carries next_cursor: null rather than omitting it.
vexlo_search_traces
Returns root status, completeness, step and error counts, tags, and duration per trace. Never step-level detail, never captured values. Narrow before wideninglimit: at the ceiling of 100,
one page costs more tokens than a whole trace’s shape. The default of 10 is below the API’s own
50, which the ladder measures at 7,127 tokens for the search alone.
matched_tag_keys appears on a row only when tagValue was set and tagKey was not: naming
the key suppresses the field. A running row omits root_function, root_status, and
duration_ms rather than emptying them, withholding all three until the root attempt lands.
vexlo_check_trace_status
TakestraceIds, 1 to 100, and nothing else: no other filter applies here. The tool sends
?limit=<count of ids>, so limit reads 2 below. Rows are the shape search returns:
not_returned is the tool’s own field: the ids asked for minus the ids returned, omitted when
every id came back. An id lands there because no such trace exists or because it
belongs to a team this token cannot see, two cases the API keeps indistinguishable.
next_cursor is always null, since every id named resolves on one page.
vexlo_find_related_traces
The only way to see what else touched one request once this trace’s steps end at its service’s edge. It reports that traces share a tag, never that one called the other; call relationships live onvexlo_get_function.
No
team or environment: the search is scoped to the anchor trace’s own team. The 168-hour
ceiling is the route’s own 7-day cap, which keeps the server’s silent clamp out of reach. An
empty result is ambiguous by construction: nothing else ran, nothing else carries that tag
value, or another trace spells the value under a key this one does not use. Service plays no
part: two traces from one service relate through a shared tag like any others. The window is
anchored to wall-clock now, never to the anchor’s started_at, so a trace older than seven days
is unreachable whatever windowHours says. On an empty result the tool spends one point read on
the anchor to check whether that is the reason:
note is omitted when items is non-empty, and when the anchor falls inside the window. An
item carries trace_id, service, shared_tags, started_at, and root_status, that last
absent while its own root runs.
vexlo_list_functions
One row per function, ranked byobserved_count descending, each row that function’s aggregate
across every caller. Names and counts only: no caller or callee edges, no examples.
is_entry_point says the function has been observed opening a trace. A row carries team only
when the read resolved to one team; where it is absent the row sums every team in scope, so pass
one team id to attribute observed_count and error_count.
vexlo_list_tags
Arguments:team, environment (named values only), service (single name), and limit and
cursor with the same computed bounds as vexlo_list_functions. A tag only one service emits
has not been seen crossing a service boundary in this team’s traces.
vexlo_check_coverage
The one place to learn which service and environment names exist for a team; there is no list-services route. Arguments:team,
environment, service. No limit or cursor: the route is never paginated.
environment when the query filtered by one. marked_functions_seen counts only
marked functions: a low number means little of the service is marked, never that the service
does little.
vexlo_check_health
Disk and value-store budget, retention, and per-service record loss, from the same three argumentsvexlo_check_coverage takes.
status: "degraded" and mode: "shape_only" with HTTP
503, which this tool returns as data, not a failure
(errors, rate limits, retries explains how). In that mode a value
handle elsewhere reads as unavailable for newly captured data, not as nothing captured. The
team-level stubs_swept_24h field the route sends is absent from this result.
What each response above cost
Measured over the one-line text each tool returned; the blocks above arejq . renderings of
it.
Token costs has the full ladder, including these tools’ widest pages.
